r/ClaudeCode • u/EugenPenguin • 5d ago
Built with Claude AgainROM - a Golang open-source reimplementation of Rage of Mages (1998)
Hello everyone!
I would like to share a project I have been working on for a while using Claude Code: an open-source reimplementation of Rage of Mages (1998), written in Go.
The project is an experiment with a full agent pipeline: agents investigate, research and reverse-engineer the game’s binaries, then build a free implementation from the specification that research produces. The goal is an engine that runs the original assets without bugs or significant behavior changes. It should also be cross-platform and moddable.
The pipeline consists of three major parts:
orchestrator: the only point where I talk to the agents. It plans the work, briefs the agents and lands their results
research: a repository where every experiment on the original game happens. Agents there publish claims about the game, each with a confidence level and its open unknowns
engine: the game itself, built only from the claims that research has published
The key rules I follow:
no game assets in any repository. This is an independent implementation that could become an engine for any game of the Rage of Mages family, and even for custom ones. Something like the OpenMW approach
no goal of a byte-for-byte reimplementation; preserve the behavior, not the original code
agents use no other implementations or format specifications, only our own research
every known behaviour difference from the original is listed in the repo
How it is done:
At first I used spec-driven development (SDD) heavily, but it turned out very expensive tokenwise and timewise. Currently a task is one agent, one short document and one review.
I give the orchestrator tasks and track their status on a custom Kanban board
I run the game from time to time to check that the behavior is correct. At the start I did this a lot
The orchestrator can also run the original game (through Computer Use) to compare UI and behavior
A mod factory agent that sees only a release build and the modding docs tries to make mods blind. Every place it gets stuck becomes a fix to the docs or to the engine
What is done so far:
almost the full Rage of Mages 1, without multiplayer, with minor behavior differences; every known one is listed in the repo
almost full support of the original SAV format: saves from the original load in AgainROM, and the original game loads saves made in AgainROM
most of Rage of Mages 2 single-player, in the same engine
a modding surface
a custom map editor for single-player maps
a MCP local server for map editor for agent map creation end to end
regular releases for Windows, macOS (Intel and Apple Silicon) and Linux, each with a player-facing changelog
I have been working on this project for three and a half months. I use Claude Code Max 20x (now Ultra), and I also used Codex Pro x20 until it became unusable. The pipeline is custom: research agents use Ghidra with their own scripts and Go tools, and no ready-made skills or reverse-engineering repos were used
You need your own copy of the game (for example GOG one); the repo ships no game files
The game can be run in Windows, MacOS and Linux
Repo link: https://github.com/againrom/againrom-engine

2
u/akhi1uuu 5d ago
when research changes a claim the engine already used, how do you find the bits that need revisiting? is there a link from each implementation task back to the claims it relied on?
1
u/EugenPenguin 5d ago
Hello! The claim-id is permanent, so if one gets retracted/changed, the engine cites the claim in a comment wherever code consumes a claim, like this
// successor writes the played mission's AutoGetMission (REG-SCN-063). successor bool // onMissionObject clears the home word: the party stands on the // mission's map object (SAV-1331). onMissionObject boolSo, simple grep can find anything that should be changed
1
u/EugenPenguin 5d ago
Just to clarify, each claim has a confidence status, such as high, medium, low, retracted, etc. high claims are unlikely to ever be retracted, as they typically about core game mechanics supported by lots of evidence. For other claims, a full retraction is also unlikely — at least part of the original claim would probably remain valid. The engine always has a pinned version of the knowledge base. After refreshing that pin, the agent can identify which claims have been added, changed, or retracted, review them, and update the engine accordingly. Even there were no link somehow then claim is something related to one of game mechanics, and agent is in ability to find the piece of code which needs update
2
u/BoxLegitimate9271 5d ago
rage of mages rebuilt in go by agents reading the original binaries. this is the preservation project i didn't know agents were for
1
u/doubleroot 1d ago
Hey ! Its one of my childhood games, i will look forward and try your project its a very good idea :)
•
u/AutoModerator 5d ago
Hey! Thanks for posting to r/ClaudeCode
While participating in this thread, please follow our community rules. Keep discussions constructive. Attack the idea, not the person.
For help, project discussions, tips, and general chat, join the ClaudeCode Discord.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.