This is a cross-platform 3D game engine that targets low-end handheld ARM64 Linux devices (such as Anbernic RG35XX H, Powkiddy RGB30 and similar) but the engine also supports the usual x86-64 Windows and Linux.
This engine is most suited for small non open world 3D games with low-poly-ish graphics. This engine is small (fast to learn) and intuitive to use.
Running games made with this engine on
libmali
drivers (which your handheld's OS might use) may cause issues and crashes (for example loading a texture may cause black screen and/or out of memory error) instead prefer to usepanfrost
drivers if your OS provides them. Most of the testing is done on Rocknix which provides an option to change used driver in the settings.
- Node system (Godot-like ECS alternative)
- Handling user input events
- Config management (progress, settings, etc.)
- Type reflection
- Forward renderer using OpenGL ES 3.1
- Dynamic light sources
- GLTF/GLB import
- Profiler
- Post-processing effects
- GUI
- Audio (using SFML)
- Skeletal animations
- Physics engine (using Jolt)
- Dynamic shadows
- Simple editor
- Instancing
- AI and pathfinding
- Particle effects
Documentation for this engine consists of 2 parts: API reference (generated from C++ comments) and the manual (at docs/Manual.md
), we use Doxygen to generate documentation in the HTML format, it includes both API reference and the manual (copied from docs/Manual.md
).
If you're are game developer you generally don't need Doxygen, the only thing that you need is the manual, you can read it at docs/Manual.md
.
Because our Doxygen is configured to turn warnings into errors any missing documentation will make Doxygen fail with an error. We don't run Doxygen locally but instead have it in the CI to monitor in case we missed some docs. If you want to generate documentation locally you need to execute the doxygen
command while being in the docs
directory. Generated documentation will be located at docs/gen/html
, open the index.html
file from this directory to view the documentation.
- Compiler that supports C++20
- CMake
Optional but highly recommended:
- LLVM for clang-format
In order to create new games/projects using this engine we use a special project manager. Read the manual to learn more about it.