Everything as code!
A code-first game engine built on OpenGL, empowering you to build everything from scratch with clean, simple code.
PRs and issues are welcome!
2026-10-12: Anyway, it works.
- Skymap
- PBR shader
- Event system
- 3D positional audio with EFX reverb environments
- OBJ file import
- MTL material import (albedo, roughness, metallic, normal maps)
- Submesh support
- Play Audio
- Particle system (CPU simulation, instanced billboard rendering)
| Version | Objects | Model | FPS | VSync |
|---|---|---|---|---|
| 0.1.5 | 1,000,000 | notbox.obj |
1 FPS | ON |
| 0.1.6 | 1,000,000 | notbox.obj |
30 FPS | OFF |
| 0.1.10 | 1,000,000 | notbox.obj |
46 FPS | OFF |
The same scene was used for both benchmarks.
Renderer optimization improved performance from 1 FPS to 30 FPS — approximately 30× faster.
- CPU: AMD Ryzen 7 7800X3D (16) @ 5.05 GHz
- GPU: AMD Radeon RX 9070 XT [Discrete]
- Resolution: 1280×720
- Monitor: 165Hz
You will need the cmake, ninja (or make), and glfw3 (development) packages to build this project. OpenAL Soft is also required; CMake uses an installed OpenAL package or fetches OpenAL Soft automatically.
If you don't install third party libraries using package manager, then CMake installs libraries using FetchContent module through Git.
sudo apt update
sudo apt install cmake ninja-build libglfw3-dev libopenal-dev build-essentialConfigure and build using CMake Presets:
# Configure (Ninja Release)
cmake --preset ninja-release
# Build the core library
cmake --build --preset ninja-release-notengine
# Build the demo executables
cmake --build --preset ninja-release-allRun the built demos:
# Default demo
./build/ninja-release/demo
# Spatial audio test scene
./build/ninja-release/spatial_audio
# Reflection probe test scene (P toggles probe; R recaptures; Space pauses/moves the test reflector)
./build/ninja-release/reflection_probe
# Scene file rendering demo
./build/ninja-release/scene_render
# glTF model demo (Cube)
./build/ninja-release/gltf_model
# glTF scene demo (Sponza)
./build/ninja-release/gltf_scene
# Benchmark
./build/ninja-release/benchmark- skymap: https://ambientcg.com/view?id=DaySkyHDRI001A
- test audio (wav): https://commons.wikimedia.org/wiki/File%3AAudio.wav
- test audio (mp3): https://commons.wikimedia.org/wiki/File%3AUncleSigmund_-_ahhh_(cc0)_(freesound).mp3
- test gltf models: https://github.com/KhronosGroup/glTF-Sample-Models
