A C++23 game engine. Minimal, data-oriented, funky, farfocel!
Authors: Kiju, Tfoedy, Stanisław Dera
Modules
- engine - the engine.
- asscooker - asset pipeline.
- examples - demo programs covering core, data, renderer and more
- tests - unit tests using doctest
- benchmarks - microbenchmarks using nanobench
- docs - Doxygen HTML documentation.
Third-party libraries
See 3rdparty/README.md for details.
- SDL3
- glad
- glm
- cgltf
- stb
- bc7enc
- mikktspace
- imgui
- imguizmo
- doctest
- nanobench
- wyhash
- yyjson
Build
Requirements: C++23 compiler (GCC or Clang), CMake 3.21+, Ninja.
On Linux you also need the SDL3 system dependencies (Wayland, X11, Vulkan, ALSA/PipeWire, etc.). On NixOS use the provided flake - nix develop drops you into a ready shell.
Presets
| Preset | Description |
debug | Debug + ASan + UBSan |
release | Optimized release |
msan | Debug + MSan + UBSan (Clang only) |
tsan | Debug + TSan |
# configure + build
cmake --preset debug
cmake --build --preset debug -j
# or without a preset (plain build dir)
cmake -B build
cmake --build build -j
# docs (requires Doxygen)
cmake --build build --target docs
Sanitizer flags (manual)
cmake --preset debug # ASan + UBSan on by default
cmake --preset msan # MSan + UBSan (Clang only)
cmake --preset tsan # TSan