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
), generated documentation includes both API reference and the manual (copied from docs/Manual.md
).
In order to generate the documentation you need to have Doxygen installed.
The documentation can be generated by executing 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.
Prerequisites:
First, clone this repository:
git clone <project URL>
cd <project directory name>
git submodule update --init --recursive
Then, if you've never used CMake before:
Create a build
directory next to this file, open created build
directory and type cmd
in Explorer's address bar. This will open up a console in which you need to type this:
cmake -DCMAKE_BUILD_TYPE=Debug .. // for debug mode
cmake -DCMAKE_BUILD_TYPE=Release .. // for release mode
This will generate project files that you will use for development.
To update this repository:
git pull
git submodule update --init --recursive