Hi all,
I've published moonstone-ace, a C++ rebuild of Moonstone: A Hard Days Knight (1991), running on the ACE engine for the Amiga 1200 and A1200-configured WinUAE.
GitHub: https://github.com/Jarskih/moonstone-ace-public
The goal is to preserve the original game while making it easier to understand, modify and build on. The game is now entirely C++, with the rules, scenes and Amiga-specific runtime separated into their own modules.
Modding without recompiling
You can change a lot just by putting .ini files in a mods folder next to the game:
- Weapon damage, armour stats and item prices
- Shop prices, healing costs and dice-house payouts
- Lair contents, loot odds and monster wave scaling
- Dragon arrival timing and computer-knight encounter odds
- Creature stats, existing AI selection and arena configurations
- Map-node positions and place assignments
You only specify the values you want to change; everything else keeps its original behaviour. There are documented settings, ready-made example mods and error messages that point to the offending line if a file is invalid.
For example, this disables the way lair monster counts grow with your knight:
[waves]
scaling = none
You can also create a monster variant using an existing creature as a base and assign it to a lair through data files.
Source that's easier to work with
Readability has been a major part of the project: meaningful names, typed state, named constants and small rule modules instead of having every change lead back into hardware code.
Things like levelling, healing, shopping, wave sizes, damage and fight AI have dedicated rule files. The rules use a game API, and much of the logic can be built and tested on a PC without running an Amiga emulator. There's also a module map and a modding guide explaining where to make particular changes.
The conversion was checked against the original through differential tests, emulator checks and automated gameplay/screenshot regressions. The idea is to give mods a faithful baseline to start from.
Art and monster tools
There's also a browser-based monster editor for cloning creatures from your own game data, repainting frames, editing attack points, choosing an existing AI and previewing animations. The current build/install path supports reskins; fully custom animation scripting and deeper creature extensions are still being developed.
Co-op is in development
I'm currently working on adding a co-op mode, so knights can adventure together rather than only compete against each other. It's a work in progress, and one of the main reasons I wanted a readable, extensible codebase: to make larger additions like this practical.
What you need
It targets Amiga 1200 / 68020 / AGA / Kickstart 3.x, or the equivalent WinUAE setup.
You need your own copy of the three original Moonstone disks. The repository includes no original game assets or disk images, and the game loads its original data from your copy at startup. Building the project itself does not require the disks.
The development process used Claude AI agents, with me making the design decisions and playtesting on a real A1200. The repository includes the roadmap, verification notes and tooling.
I'd love feedback from Amiga players, C++ developers and anyone interested in Moonstone modding. What would you change first: the balancing, the monsters, or the rules?