This project is developed to learn how renderers and game engines works as well as acting as a base for research/experimentation. The intention is to make my own games using it and also once more mature make it convenient for others to use as well.
It is written in C++ and uses Vulkan as the rendering API.
Currently the project only runs on Windows.
Run git submodule update --init --recursive
to checkout the required submodules.
Run ./generate_workspace.bat
script to generate a Visual Studio 2019 solution.
If you want to generate a solution for another VS version run tools/premake5.exe
manually.
Pre compiled libraries for MSVC x64 Debug and Release are included in the libs/
folder.
Folder | Description |
---|---|
source/utopian/ | Utopian Engine source code |
source/editor/ | Editor source code |
source/demos/marching_cubes/ | A demo using marching cubes to generate a modifiable terrain |
source/demos/raytracing/ | A simple compute shader raytracer |
external/ | Third party submodules and .h files |
libs/ | Pre compiled third party dependencies |
data/ | Textures, models, shaders, scenes etc. |
tools/ | Tools and scripts |
Library | Usage |
---|---|
gli | Loading of .ktx textures |
assimp | Loading of model files |
bullet | Physics simulation |
glslang | Compilation and reflection of shaders |
im3d | Immediate mode 3D gizmos in editor |
imgui | Editor UI |
LegitProfiler | Profiler to visualize GPU performance |
LuaPlus | Lua binding to enable scripting |
stb | Loading of textures |
libktx | Creation and saving of .ktx texture to file |