A cross-platform game engine built from scratch — Metal backend for iOS/macOS, Vulkan backend for Android.
Written in C++23 with no exceptions, no RTTI, and no engine hiding the details from you.
- Renderer abstraction — Metal (iOS/macOS) and Vulkan (Android) behind a unified RHI
- Sokol-style architecture —
markmos_main()as the single cross-platform entry point - Audio via miniaudio
- Memory via rpmalloc
- Job system for multithreaded tasks
- Sprite batching with draw call sorting
- C++23 — no exceptions, no RTTI, no unnecessary abstractions
cd engine
./build-ios.sh./build-ios-sim.shcd engine
./build-android.sh # debug APK
CONFIG=Release ./build-android.sh # release APKengine/
├── core/ # Memory, VFS, job system, utilities
├── render/ # Renderer, shaders, sprite batch
├── rhi/ # Metal/Vulkan backends
├── app/ # Platform entry points (iOS, Android, macOS)
├── thirdparty/ # rpmalloc, miniaudio, simdjson, stb, metal-cpp, VMA
├── shaders/ # GLSL sources (Vulkan)
└── entry/ # Game entry point
MIT


