Skip to content

Repository files navigation

OpenYAMM

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.

Status

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.

Features

  • 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

Assets

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.

Building

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 -j25

Run:

./build/game/openyamm

Build tests:

cmake --build build --target openyamm_unit_tests -j25
./build/tests/openyamm_unit_tests

Build the editor:

cmake -S . -B build -DOPENYAMM_BUILD_EDITOR=ON
cmake --build build --target openyamm-editor -j25

Run the editor:

./build/editor/openyamm-editor

Nightly Builds

The 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.flatpak

Nightly 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.

Useful CMake Options

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

Repository Layout

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

License

No license has been declared yet.

Screenshots

Gameplay screenshot 1 Gameplay screenshot 2 Gameplay screenshot 3 Gameplay screenshot 4 Gameplay screenshot 5 Gameplay screenshot 6 Gameplay screenshot 7 Gameplay screenshot 8

Editor Screenshots

Editor screenshot 1 Editor screenshot 2

Credits

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

About

OpenYAMM

Resources

Stars

48 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages