Mjolnir Engine

Mjolnir is a minimalistic game engine to help people enjoy game programming

Get Started

To use Mjolnir in your odin code, run make shader to compile shaders to SPIR-V and then copy mjolnir directory to your project and start using mjolnir API. See examples for common use cases.

Notable features

And more in development

Build Commands

# Build and run in release mode
make run
# Build and run in debug mode and vulkan validation
make debug
# Build only (release mode)
make build
# Build only (debug mode)
make build-debug
# Build all shaders
make shader
# Run all tests
odin test . --all-packages
# run a single test called "test_name" inside "module_name"
odin test . --all-packages -define:ODIN_TEST_NAMES=module_name.test_name

Architecture Overview

Core Engine Structure

The engine is organized 3 layers with clear responsibility boundaries. Systems on the same level must not depends on each other directly or indirectly. For example Render module and World module must be able to independently developed by 2 different teams without much communication.

Lower Level Systems:

Higher Level Systems:

Engine System:

For more information, see usage (WIP)

Development Notes

GPU Resource Management

Shader Development

Debugging Tips

Build Flags