OpenYAMM is Open Yet Another Might and Magic: a modern C++ reimplementation of Might and Magic VI, VII, and VIII, inspired by MMMerge and built on an engine that started from Might and Magic VIII.
The goal is to keep the original game data and gameplay feel while providing a clean, maintainable, cross-platform engine with modern rendering, audio, UI, save/load, tooling, and editor support.
OpenYAMM is playable across Might and Magic VI, VII, and VIII, including continent travel between the games. Windows, Linux, and Android builds are supported.
Main stories, promotions, quests, mechanics, spells, travel, dialogue, shops, houses, chests, combat, projectiles, inventory, party state, save/load, audio, video, and UI systems are implemented. Development is still active, with ongoing work on polish, compatibility, tooling, and editor workflows.
- C++20 codebase
- SDL3 platform, input, and audio layer
- bgfx renderer
- PhysicsFS asset filesystem
- FFmpeg-backed video playback
- Lua-powered event scripts
- tab-separated gameplay tables
- YAML scene and UI layout data
- unit and regression test coverage for gameplay systems
Development assets are loaded from:
assets_dev/
The default development layout is:
assets_dev/
Anims/
Data/
Music/
Runtime packages can be distributed as ZIP archives under:
assets/
The engine keeps practical original asset formats such as TXT gameplay tables, BMP-style art assets, WAV sound effects, MP3/FLAC music, and OGV video. Legacy archive and video container formats are replaced for runtime use.
Requirements:
- CMake 3.24 or newer
- C++20 compiler
- Lua 5.3 or 5.4 development package
- standard native build tools for your platform
Configure and build:
cmake -S . -B build
cmake --build build --target openyamm -j25Run:
./build/game/openyammBuild tests:
cmake --build build --target openyamm_unit_tests -j25
./build/tests/openyamm_unit_testsBuild the editor:
cmake -S . -B build -DOPENYAMM_BUILD_EDITOR=ON
cmake --build build --target openyamm-editor -j25Run the editor:
./build/editor/openyamm-editorThe Nightly releases GitHub Actions workflow builds unsigned Windows x64 and x86_64 Flatpak packages every day at 03:27 UTC. After both packages pass structural and checksum checks, the workflow updates the rolling nightly prerelease. The same workflow can be run manually, with publishing optionally disabled so the packages remain short-lived workflow artifacts.
Extract the Windows zip and run openyamm.exe. Install or update the Flatpak bundle with:
flatpak install --user --reinstall OpenYAMM-nightly-x86_64.flatpakNightly packages are development snapshots and may be unstable. Back up existing saves before using them. Publishing packaged game assets remains subject to the asset distribution rights noted in the Windows distribution documentation.
OPENYAMM_BUILD_EDITOR=ON Build the editor target
OPENYAMM_BUILD_TOOLS=ON Build asset and data tooling
OPENYAMM_BUILD_TESTS=ON Build unit tests
OPENYAMM_DEV_ASSETS_DIR=... Override the development asset directory
OPENYAMM_USE_SYSTEM_SDL3=ON Use an installed SDL3 package
engine/ shared runtime systems
game/ game application and gameplay systems
editor/ editor application
tools/ asset and data tools
tests/ unit and regression tests
assets_dev/ development asset root
assets_editor_dev/ editor development asset root
res/ README screenshots
No license has been declared yet.
OpenYAMM builds on years of work and research from the Might and Magic community, with thanks due to:
- the OpenEnroth development team
- Rodril and all MMMerge contributors









