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!
- Skymap
- PBR shader
- Event system
- OBJ file import
- MTL material import (albedo, roughness, metallic, normal maps)
| 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 | ON |
| 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.
Note: Version 0.1.6 also achieved approximately 30 FPS with VSync disabled, confirming that the performance improvement was not caused by VSync.
- CPU: AMD Ryzen 7 7800X3D (16) @ 5.05 GHz
- GPU: AMD Radeon RX 9070 XT [Discrete]
- Resolution: 1280×720
- Monitor: 144Hz
You will need the cmake, ninja (or make), and glfw3 (development) packages to build this project.
sudo apt update
sudo apt install cmake ninja-build libglfw3-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
# Scene file rendering demo
./build/ninja-release/scene_render
# Benchmark
./build/ninja-release/benchmark