Mjolnir Engine

Mjolnir is a minimalistic, bindless, GPU-driven game engine in Odin + Vulkan 1.3.

Get started

To use Mjolnir, run make shader to compile shaders to SPIR-V and copy the mjolnir/ directory into your project.

Notable features

Build commands

# Build and run in release mode
make run
# Build and run in debug + Vulkan validation
make debug
# Build only
make build         # release
make build-debug   # debug
# Build all shaders
make shader
# Run all tests
odin test . --all-packages
# Run a single test
odin test . --all-packages -define:ODIN_TEST_NAMES=module_name.test_name

Build flags

Flag Default Effect
FRAMES_IN_FLIGHT 2 GPU frame buffering.
RENDER_FPS 60 Target render cadence.
UPDATE_FPS RENDER_FPS Target update cadence.
USE_PARALLEL_UPDATE false Run update on a dedicated thread.
FRAME_LIMIT 0 Cap total frames (0 = unlimited).
REQUIRE_GEOMETRY_SHADER false Required for cubemap point-light shadows.

Debugging tips

Read more

Module intros

Layer Module Doc
1 containers containers
1 geometry geometry
1 gpu gpu
1 animation animation
2 world world
2 render render
2 physics physics
2 navigation navigation
2 ui ui
3 mjolnir engine