Indie Tooling

AI can now decompile games. What that means for indies

AI agents rebuilt an N64 game and a PC shooter from their binaries in weeks. What's changed for small teams, and what to do about it.

By

5 min read

A game.exe window full of hex machine code, with arrows through four parallel AI agent cards to a board.c window of readable C source, a green bytes match badge, and a paper notice stamped takedown.
Illustration: Indie Tooling

AI coding agents can now turn a compiled game back into readable source code in weeks, a job that used to take hobbyist teams years. Two write-ups from the past two months show how far it has come, and publishers are already sending takedowns. Here’s what it means for small teams.

What happened

In August, developer Chris Lewis finished decompiling the Nintendo 64 game Snowboard Kids. That meant all 2,145 functions, rebuilt as C that compiles back to the original machine code. It took 84 days, with AI agents working in four parallel copies of the project. The same job on the sequel, Snowboard Kids 2, had taken him 596 days.

Bar chart: decompiling Snowboard Kids 2 took 596 days, while Snowboard Kids, decompiled with four AI agents working in parallel, took 84 days.
The same developer, two decompilation projects: 596 days for Snowboard Kids 2, 84 days for Snowboard Kids with AI agents. Figures: Chris Lewis

On 9 October, a developer known as momo5502 published a write-up of a bigger project: rebuilding a PC first-person shooter from its executable. The post doesn’t name the game, but TechSpot reports it’s Call of Duty: Modern Warfare 2 (2009). Over about three months, up to 16 agents used an estimated 600 to 700 billion tokens. The result has 99% of the game’s functions, 83% of them byte-for-byte identical to the original, and the game runs. The author is keeping the code private.

TechSpot’s roundup lists more. The community decompilation of Super Smash Bros. Melee reached 100% with AI help on the final stretch. GoldenEye 007’s reached 100% through human work, and AI has since helped turn it into a native PC port. A Halo: Combat Evolved project says it matches 99.5% of the original. Activision had footage of the Modern Warfare 2 work taken down. Separately, ZeniMax sent a cease-and-desist within days to an AI-built browser game set in the Fallout universe. That one was a recreation rather than a decompilation, but it shows how quickly publishers are moving.

Why it works now

This kind of project is called matching decompilation. You write source code, compile it, and check whether the output matches the original binary byte for byte. That check is automatic, which makes it a good job for AI agents. They can try, fail and retry for hours without a human marking their work.

Diagram of matching decompilation: an AI agent writes a C function, it is compiled, and the new build's bytes are compared with the original game's. A match gets a green tick; a mismatch loops back for another try, with a human reviewing the work.
Matching decompilation is a loop with an automatic referee: write C, compile it, compare the bytes, try again.

The agents still need supervision. momo5502 says they invented logic, used the wrong data layouts, and even tried to cheat by editing the script that checked their work. Lewis estimates his project might have stalled at around 90% without three human experts who knew the N64 compiler’s quirks. So it’s faster and cheaper, but you still need skilled people in the loop.

Is your game at risk?

For many indie games, the code was never hidden in the first place. Unity games built with the Mono backend ship .NET bytecode that free tools like ILSpy turn back into readable C# in minutes. Godot exports can be unpacked, and their GDScript recovered, with community tools such as GDRE Tools. If you’ve shipped on either, anyone curious could already read your code.

Three cards on a scale from easier to harder to read: Unity with Mono, an open padlock, readable C# in minutes with ILSpy; Godot, a half-open padlock, GDScript recovered with community tools like GDRE; C++ or IL2CPP, a closed padlock, native code that was slow, skilled work and is now cheaper with AI.
How much effort it takes to read a shipped build depends on how it was built. AI agents mostly change the right-hand end.

The change is at the harder end. Native code, such as C++ or Unity’s IL2CPP builds, used to take a lot of skilled time to reverse. AI agents make that much cheaper. They don’t make it free yet: momo5502’s run used two premium subscriptions and three months of close management.

Remember what decompiled code doesn’t give someone. It doesn’t come with your art, music, writing or name, and those are protected separately. Matching projects usually ship without assets and ask players to supply their own copy of the game. Cloning your gameplay never needed your source code anyway.

Will publishers switch to streaming?

Our take: probably not as a way to stop decompilation. If a game only runs on a server, nobody can decompile the client. But every streamed player needs a GPU in a data centre, and Google closed Stadia in January 2023. Handhelds like the Steam Deck and Switch 2 also need games that run on the device.

More likely, publishers will keep valuable logic on their servers, as online games already do, and keep using anti-tamper tools. Denuvo, for example, is reportedly seeking subpoenas to unmask a cracker. Expect more lawyers too. Hybrid set-ups, where your machine draws the game and a server runs the parts worth protecting, are a more realistic middle ground than full streaming.

The law, briefly

Decompiling a game doesn’t make the result yours. In the US, courts have allowed reverse engineering for compatibility (Sega v. Accolade, Sony v. Connectix), but that doesn’t extend to sharing someone else’s program. Breaking copy protection raises separate problems under the DMCA. The EU allows decompilation only when it’s needed for interoperability, and not to build a substantially similar program. So far, publishers have mostly responded with takedowns, as Activision and ZeniMax just did. This isn’t legal advice. Get some if you’re planning anything public.

What to do about it

  1. Don’t hide secrets in your client. API keys, store credentials and admin passwords in a shipped build should be treated as public. Move them to a server.
  2. Keep the logic that matters on a server. For multiplayer, leaderboards or in-game economies, let the server have the final say on results.
  3. Know what obfuscation buys you. IL2CPP builds and obfuscators raise the cost of reading your code. They won’t stop a determined, well-funded team.
  4. Protect what’s yours. Keep dated source history and art files, so a DMCA takedown is easy to back up if someone ships a copy.
  5. Use the tools yourself. If you’ve lost the source to an old game, the same methods could help you recover it and port it to new platforms. Back up your source so you never need to.

Sources

Topicsdecompilationai agentsreverse engineeringgame securityil2cppdmca

Filed under Shipping Indie Games: Builds & Store Pages.

All Shipping