AI agents spent months rebuilding a game, and got it wrong
The code ran and looked clean, but underneath it was quietly wrong, because nobody had defined what correct meant.
A developer spent months running a team of AI agents to fully decompile a popular first-person shooter: turning its finished game code back into readable C++ that still runs. But the real story here is not the game, it is the two things he actually learned: how to keep a fleet of autonomous agents working for months without a human steering them, and the hard limit on how far that gets you. That second lesson is the one worth carrying into any long agent-run project of his own.
The setup: a Claude Max subscription (the top tier, called 20x) plus a Codex Pro subscription, run side by side. Model choice varied a lot, mostly Sonnet 5 but also Opus 5.5 and three other models he names (Luna, Sol, Terra). Claude agents ran inside Claude Code, Codex agents inside Codex CLI, both left on their default settings because trying other setups barely changed the outcome. For tracking, agents filed and worked GitHub issues, one issue per .cpp file (the unit of C++ source code they were rebuilding), with labels to group and prioritize the work. For talking to each other, every agent shared one Discord channel, where they could message each other directly or a human could step in, and an automated alert posted every failed test straight into that channel so agents saw failures without being told twice. For the actual reverse-engineering step, they used Hex-Rays' official tool for plugging the game's disassembler into an AI model, which he says worked reliably and ran unattended almost the entire project.
In the first month, four agents ran at once: three doing the decompiling and committing code, one acting purely as a reviewer, checking the other three's commits for bugs without building anything itself. They got the game to about 80 percent decompiled, to the point the main menu rendered and maps loaded, real visible progress. Most of that month actually went into tuning the setup rather than the code itself. He found agents lost focus the longer a session ran, so he cut the point at which the system clears old information out of what the model is holding in mind from the default of 90 percent full down to 42 percent, on the logic that a function, once decompiled, is just clutter the agent no longer needs to remember. Agents still drifted: they would abandon a half-finished function for another one, and sit idle after a failed test even when Discord had already flagged it.
Here is the part that matters more than any of the tooling: despite all that steady, visible progress, the actual decompiled code was wrong. It compiled, it ran the game, and it was, in his words, extremely readable, but underneath it was semantically wrong. Agents got function signatures, data types, and the layout of data structures incorrect. They invented logic that was never in the original game, and deleted logic they decided was not needed. Nobody had ever told the agents, or the reviewer checking their work, what correct actually meant for this project. We never properly defined “correctness,” he writes.
The transferable lesson for any agent-run project: agents will happily produce confident, readable, functioning-looking output for months while quietly drifting from what you actually wanted, unless you have written down in advance exactly what counts as done correctly and given whoever reviews the work a way to check against that definition, not just against whether it still runs.
We never properly defined “correctness”.via Maurice's Blog →