Throne of Games
A from-scratch C++26 game engine built on static reflection, rebuilt phase by phase. Its own Vulkan renderer, its own asset pipeline, its own UI framework — and no third-party renderer anywhere in it.
- C++26
- Static reflection (P2996)
- 380k
- Lines of code
- Vulkan
- Its only render backend
- 6 of 12
- Phases, shipping now
Every layer written here
Each phase ends with a proof that runs, not a checklist. These are the layers the first six phases built.
Reflection does the boilerplate
C++26 static reflection replaces the reflection system most engines write by hand. Add a field to a component and it saves and loads with zero boilerplate; serialization, the inspector and script bindings build on it.
Its own Vulkan renderer
Physically based lighting, image-based light, cascaded shadows and tone mapping, validation-clean and inspectable frame by frame in RenderDoc. Edit a shader and the running game updates.
Cooked from the start
The game never reads a source file. Everything is cooked and read through a virtual file system, so packaging is a backend swap — delete the source assets and the game still runs.
Its own UI framework
Documents, a flexbox subset, style sheets and themes, bound to game data by reflection and hot-reloaded. The menus, the dialogue and the debug panels all run on it. There is no Dear ImGui anywhere.
What it stands on
Third-party code is used where it isn't the point — physics, audio, text shaping — and each choice is a written decision record.
- langC++26 on clang-p2996
- buildxmake
- gpuVulkan via volk + VMA
- shadersSlang
- platformSDL3
- physicsJolt
- audiominiaudio
- textHarfBuzz · FreeType · msdfgen
- scriptingC# on .NET 10
- pakszstd · libsodium
- profilingTracy
- targetsWindows x64 · Linux x86_64
From the engine's own captures


Vaelthorn is the first game on the throne
A dark-fantasy RPG with four irreconcilable endings. Its main menu, dialogue and hub already run on the engine.