Raytracing Game Engine
Update 9/13/26: I've decided to stop working on this. Too many performance issues I couldn't resolve, mostly because I lack experience with Vulkan. I figured parts of this like the temporal anti-aliasing or material shader implementations may help someone with their engine.
- SDL3:
release-3.4.4 - Dear ImGui:
v1.92.6-docking - ImNodeFlow:
5c93f4822869223cc1abe5ce5fe51e6bee1f5925 - Jolt Physics:
v5.3.0 - miniaudio:
v0.11.21 - ffmpeg: latest prebuilt
Build Debug (includes debug terminal):
cmake -S . -B build
cmake --build build --config DebugBuild Release:
cmake -S . -B build
cmake --build build --config ReleaseClean:
cmake --build build --config Debug --target cleanRun:
.\build\Debug\Gamma.exeRun Release:
.\build\Release\Gamma.exeNote: on Windows, the engine Release build is configured without a console window.
The CMake target is engine; the produced executable is named from ENGINE_EXE_NAME
(Gamma by default).
.github/workflows/release.yml publishes a Windows x64 zip of the engine to the
Releases tab on every push to master.
The version shown in the engine's bottom bar comes from
project(Gamma VERSION x.y.z ...) in CMakeLists.txt. Bump major.minor there by
hand; CI replaces the patch with the Actions run number so each published build gets
a unique, increasing version and a matching vx.y.z tag. Releases therefore start at
0.1.1, and the 0.1.0 in CMakeLists.txt is what a local developer build reports.
The editor builds the standalone game target when you open Build in the UI.
In Build Settings you can choose:
- Build platform:
Windows (MSVC)orLinux (GCC) - Build type:
DebugorFinal
The staged output is created in the folder you pick in Build Settings.
Windows game builds use the MSVC toolchain from Visual Studio.
Install prerequisites:
- Visual Studio 2022 (or Build Tools 2022) with:
- MSVC v143 - VS 2022 C++ x64/x86 build tools
- Windows 10/11 SDK
- C++ CMake tools for Windows
- Vulkan SDK for Windows (includes glslc)
- CMake 3.24+
- Git
Then in the engine build menu:
- Set Build platform to
Windows (MSVC) - Choose
DebugorFinal - Queue build
The staged Windows executable will be <game-name>.exe in your chosen output folder.
Linux builds are executed from Windows through WSL. Install the following dependencies on your linux distro:
sudo apt update
sudo apt install -y build-essential cmake git libvulkan-dev glslang-tools libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libxtst-dev libxinerama-dev libxkbcommon-dev libwayland-dev wayland-protocols libdecor-0-devIf your staged folder is E:/Projects/test2 and executable name is linuxapp, run:
wsl bash -lc "cd /mnt/e/Projects/test2 && chmod +x linuxapp && ./linuxapp"Path conversion rule:
C:/...->/mnt/c/...
See docs/developer-api.md for a quick reference of all Lua developer functions, summaries, examples, and package notes. Disclaimer these function are WIP and all subject to change!
-
glslc was not foundInstallglslang-toolsin WSL, or ensureglslc/glslangValidatoris in WSLPATH. -
No such file or directoryfromgmake/ missingMakefileThe build cache may be stale. Re-run build from the editor; it auto-recreates incomplete Linux build caches. -
SDL could not find X11 or Wayland development librariesMake sure to install the full dependency list in the Linux section above.