Browse by type
A modern, high-performance game engine built with Vulkan
Website • Discord • Documentation
Lumina is a modern C++ game engine built from the ground up with Vulkan. It is designed for learning and experimentation with real-world engine architecture, demonstrating professional design patterns including a reflection system, an ECS-based gameplay layer, and modern rendering techniques.
[!NOTE] For more detailed information, go to: https://luminagameengine.com
It is well suited for:
Contributions are recognized in several ways, including Steam keys for popular games and public acknowledgment in the Discord community. Lumina improves through the work of motivated contributors who help push the engine forward.
[!CAUTION] Lumina is an educational project under active development. APIs may change, and some features are experimental. If you encounter build issues, please reach out on Discord for assistance.
[!NOTE]
AI Usage
AI has been used selectively for tasks such as static analysis, research, build tooling, and scripting assistance.
The engine itself has been hand-crafted over the course of three years as a passion project. AI is treated as a tool where it provides value, nothing more, nothing less.
Registry.View queries,
C# entity systems, and component reads and writesWorld facade: Physics, Navigation,
Input, Messages, and GameplayTags
Show more screenshots
<img width="800" alt="Lumina screenshot" src="https://github.com/user-attachments/assets/086a1e5e-4d8d-4c98-be81-bc77287fba39" />
<img width="800" alt="Lumina screenshot" src="https://github.com/user-attachments/assets/66d739ca-f257-4350-b2f0-2e10d66f5591" />
<img width="800" alt="Lumina screenshot" src="https://github.com/user-attachments/assets/68e86207-20f2-4200-8649-257738b2855f" />
<img width="800" alt="Lumina screenshot" src="https://github.com/user-attachments/assets/a4c7c497-d975-47d2-a695-5342e11e8f44" />
<img width="800" alt="Lumina screenshot" src="https://github.com/user-attachments/assets/5343eff8-545a-47ca-a858-b2aa4f1fef71" />
https://github.com/user-attachments/assets/3d797479-fc47-4b8f-baf4-87315709d0c2
[!IMPORTANT] The engine's C# layer (LuminaSharp) targets
net10.0. Only Visual Studio 18.0+ (2026) can build that target, VS 2022 (17.x) fails witherror NETSDK1209even if you install the standalone .NET 10 SDK, because VS uses its own bundled MSBuild.Setup.batvalidates this for you and stops with a clear message if anything is missing.[!NOTE] JetBrains Rider is the recommended IDE for Lumina development, but it is not required.
bash
git clone https://github.com/mrdrelliot/luminaengine
cd LuminaEngine
bash
Setup.bat
It downloads one prebuilt dependency bundle
(External.zip, ~671 MB), verifies it against a SHA-256 hash pinned in this
repo (once the maintainer records it, see
DEPENDENCIES.md), persists the LUMINA_DIR environment
variable, configures git hooks, and generates Lumina.slnx.
The bundle contains the .NET 10 runtime (C# scripting), LLVM/Clang 19
(reflection codegen), the Slang shader compiler, RenderDoc, and Tracy. Each
is open source; DEPENDENCIES.md lists every component
with its version, purpose, upstream source, and license, and explains how to
fetch them yourself instead of using the bundle.
To skip the prompt for unattended/CI runs, pass --yes (or set
LUMINA_SETUP_YES=1). If the download fails, manually download
External.zip,
extract it into the LuminaEngine/ folder, then run
GenerateProjectFiles.bat.
Open Lumina.slnx in Visual Studio.
Build and run
Set Lumina as the startup project.
Development or Debug configuration. Debug is significantly
slower but enables full debugger functionality.Editor (default, includes editor tooling) or Game
(runtime only, no editor).Press F5, or use Build -> Run.
Start developing
Open the Sandbox project to experiment.
Templates/Blank/ to create a new project, then run its
GenerateProject.bat to produce a solution.Optional engine features are controlled from a single file,
BuildScripts/BuildConfig.lua. Each feature is
"auto", "on" (force into every configuration) or "off" (strip from every
configuration), and the choices are baked in when you regenerate the solution.
| Feature | What it controls | "auto" default |
|---|---|---|
Tracy |
Tracy CPU/GPU profiler (LUMINA_PROFILE_*) |
Debug + Development; off in Shipping |
Validation |
Vulkan validation + sync layers | Debug only |
Aftermath |
NVIDIA Nsight Aftermath GPU crash dumps | NVIDIA machines, Debug + Development |
VerboseLogging |
LOG_TRACE / LOG_DEBUG / LOG_INFO macros |
Debug + Development; off in Shipping |
"off" is a true strip: e.g. Tracy = "off" drops the Tracy library from the
build entirely and turns every profiling macro into a no-op, and
VerboseLogging = "off" removes LOG_TRACE/DEBUG/INFO (warnings and errors are
always kept). Aftermath auto-enables only when an NVIDIA GPU is detected on the
machine generating the solution.
For a one-off build (e.g. a profiling-free package) you can override any feature on the command line without editing the file, the flag wins:
GenerateProjectFiles.bat --tracy=off --validation=on --verbose-logging=off
Regenerating prints the resolved feature set, e.g.
[Lumina] Build features: Tracy=auto (Debug, Development) Validation=auto (Debug) Aftermath=auto (Debug, Development) VerboseLogging=auto (Debug, Development) [NVIDIA GPU].
[!TIP] -
error NETSDK1209/ "does not support targeting .NET 10.0"? Your Visual Studio is older than 18.0 (2026). Install VS 2026, the standalone .NET 10 SDK alone will not fix this, because VS builds with its own bundled MSBuild. RunSetup.bat(orBuildScripts\CheckPrerequisites.ps1) to verify. - Missing v143 toolset? Install it via Visual Studio Installer -> Individual Components -> MSVC v143 Build Tools. - "Cannot find .generated.h" error? Build again; Visual Studio sometimes needs a second pass to pick up generated files. - C1076 compiler limit reached? Retry the build; this is a known intermittent issue with a font file. - "Application control policy blocked this file"? Disable Windows 11 Smart App Control. - "C# scripting disabled: managed bootstrap missing"? TheLuminaSharpmanaged project didn't build. ReopenLumina.slnxso Visual Studio restores its NuGet packages, then rebuild (theLuminaapp now builds it as a dependency). From the command line, pass-restoreto MSBuild. - Build still failing? Submit an issue or reach out on Discord.[!NOTE]
Setup.batpersistsLUMINA_DIRautomatically viasetx. To set it manually:bash setx LUMINA_DIR "C:\path\to\lumina"[!CAUTION] After pulling or merging, delete
Binaries/andIntermediates/and runGenerateProjectFiles.batto regenerate the solution.
See CONTRIBUTING.md for the complete guidelines.
Contributions are welcome, whether they are bug fixes, features, or documentation improvements.
git checkout -b feature/amazing-feature.git commit -m "Add amazing feature".git push origin feature/amazing-feature.Listed alphabetically.
| Library | Purpose |
|---|---|
| basis_universal | GPU texture compression with runtime transcoding to BC7/ETC/ASTC |
| ConcurrentQueue | Lock-free queue supporting multiple producers and consumers |
| EASTL | EA Standard Template Library optimized for game development |
| EnTT | Fast entity component system with sparse-set storage and signals |
| FastGLTF | High-performance glTF 2.0 parser with full specification support |
| GLFW | Multi-platform window and input library for OpenGL and Vulkan |
| GoogleTest | C++ testing framework with assertions, fixtures, and test discovery |
| ImGui | Immediate-mode GUI for rapid tool development |
| JoltPhysics | Multi-threaded physics engine with continuous collision detection |
| MeshOptimizer | Mesh optimization for vertex cache, overdraw, and buffer compression |
| Miniaudio | Single-file audio playback and capture library |
| .NET Runtime | CoreCLR (.NET 10) bundled as the host for C# (LuminaSharp) scripting |
| Nlohmann JSON | Modern JSON library with STL compatibility |
| NVIDIA Aftermath | GPU crash debugging and post-mortem dump analysis |
| OpenFBX | Lightweight FBX loader for geometry, skeletons, and animation |
| RenderDoc | Graphics debugger integration for frame capture and analysis |
| RPMalloc | Lock-free, thread-caching memory allocator |
| Slang | Modern shader language and compiler with SPIR-V / HLSL output |
| SPDLog | Fast C++ logging library with async mode and multiple sinks |
| stb_image | Single-header image loading library |
| TinyObjLoader | Lightweight OBJ parser with MTL material support |
| Tracy | Real-time frame profiler with |
$ claude mcp add LuminaEngine \
-- python -m otcore.mcp_server <graph>