Aeon Games Flagship Game Engine
Check out the development blog for the engine's latest news.
This is the 3rd iteration of the engine, the first one was started circa 1996 and was lost on a hard drive crash, the second one was started circa 2001 and still exists, but is a mess and a patchwork of collected ideas of 15 years of trying to keep up.
THIS IS A WORK IN PROGRESS.
sudo apt-get install -y sed python python3 python-autopep8 python-pep8 python3-pep8 tar wget cmake autoconf automake libtool curl make g++ unzip zlib1g-dev libpng12-dev vim-common qtbase5-dev astyle
wget https://github.com/google/protobuf/archive/v3.1.0.tar.gz
tar -xzvf v3.1.0.tar.gz
cd protobuf-3.1.0
./autogen.sh
./configure
make
sudo make install
sudo ldconfig
cd ..
git clone https://github.com/KhronosGroup/glslang.git
cd glslang
git checkout 8f674e821e1e5f628474b21d7fe21af2e86b5fb4
mkdir build
cd build
cmake -G "Unix Makefiles" ..
make
sudo make install
sudo ldconfig
cd ../..
cd ~/
wget https://vulkan.lunarg.com/sdk/download/1.0.30.0/linux/vulkansdk-linux-x86_64-1.0.30.0.run
chmod a+x vulkansdk-linux-x86_64-1.0.30.0.run
./vulkansdk-linux-x86_64-1.0.30.0.run
echo "VULKAN_SDK=$PWD/VulkanSDK/1.0.30.0/x86_64" >> ~/.bashrc
echo "export VULKAN_SDK" >> ~/.bashrc
echo "export PATH=$PWD/VulkanSDK/1.0.30.0/bin:$PATH" >> ~/.bashrc
echo "export LD_LIBRARY_PATH=$PWD/VulkanSDK/1.0.30.0/lib:$LD_LIBRARY_PATH" >> ~/.bashrc
echo "export VK_LAYER_PATH=$PWD/VulkanSDK/1.0.30.0/etc/explicit_layer.d" >> ~/.bashrc
source ~/.bashrc
sudo ldconfig
sudo apt-get install -y libvulkan-dev
cmake -G "Unix Makefiles" .
make
Building with Visual Studio is somewhat more involved as all dependencies and tools need to be build first. The official way of doing this is to use Microsoft's vcpkg, however if you are proficient at building software you can build each dependency individually or you could just find official Windows distributions and install them. You can also pick and chose on what to build and what to install from a previously build distribution, in fact it is recommended to install the Qt5 sdk rather than build it if you want to save about 4+ hours of your life.
See [Microsoft's vcpkg](https://github.com/Microsoft/vcpkg) README.md for instructions, you can clone the repo anywhere, but I suggest c:\vcpkg to keep it global.
In a command prompt window move to the vcpkg root and run the following command:
.\vcpkg install protobuf zlib libpng glslang spirv-tools
IF and only IF you have time to space and want to debug Qt5 issues, add qt5 to the list:
.\vcpkg install protobuf zlib libpng glslang spirv-tools qt5
Download and install the Vulkan SDK from [the LunarG website](https://vulkan.lunarg.com/sdk/home).
The engine supports OpenGL rendering and use of one API or the other is optional, while you could eventually chose not to build either of the renderers, as it is right now, both must be build.
This is just an oversight rather than a strict policy, and support for disabling modules will be written in the future.
Download and install the [Qt5 SDK](https://www1.qt.io/download-open-source), you may install it anywhere you want, but in general it is a good idea to avoid paths with spaces in it.
If you're using the GUI, make sure that you add the CMAKE_TOOLCHAIN_FILE variable to point to the vcpkg.cmake file. And if you did not build the Qt SDK,
set the variable Qt5_DIR to <Qt5 SDK root>/lib/cmake/Qt5 before pressing the configure and generate buttons.
If you're generating them from the CLI, add the paths to the cmake command:
cmake -DCMAKE_TOOLCHAIN_FILE:filepath=<VCPKG ROOT>/scripts/buildsystems/vcpkg.cmake -DQt5_DIR:path=<Qt SDK Root>/lib/cmake/Qt5 <PATH TO ENGINE SOURCE ROOT>
or
cmake -DCMAKE_TOOLCHAIN_FILE:filepath=<VCPKG ROOT>/scripts/buildsystems/vcpkg.cmake <PATH TO ENGINE SOURCE ROOT>
- Find out how to use google::protobuf::TextFormat::Parser so raw mesh bytes can be printed and parsed in a more human readable way.
- Implement a visual programming language gui for shader program authoring (like blueprints).
Because I've always felt human readability is not worth the price you pay in performace.
They're easier to modify. The idea is that you convert them to binary once you're ready to ship.
PB's text files are a build in feature, anything else would require a tool to either convert to it,
directly to binary protocol buffers or use a proprietary format.
That takes time and Google already solved the problem.
Do feel free to write your own convertion tool though.
I develop on Windows first and then make sure things work properly on Linux. Things sometimes break.
While I do not hold a particular preference towards Windows, there are some things that keep me working on it:
- Visual Studio's Debugger is the best there is. I do know how to use gdb, but I am not as proficient with it as with VS, and I am yet to find a graphical frontend I like for it.
- Most PC gamers are on Windows, that's probably not going to change anytime soon.
- Windows is the OS I spend most time on, I tend to use a lot of open source code that was born on Linux, but most of it has native Windows ports.