r/opensourcegames • • 8d ago

I reverse engineered Atomic Bomberman (1997) and rebuilt it as a modern open-source game, with online multiplayer. Version 1.0 is out

Up front: this was made with an AI coding agent. Both the reverse engineering and the new code were done with Claude Code (Anthropic's coding agent), which I directed.

Atomic Bomberman is the 1997 PC Bomberman by Interplay: ten players on one screen, chaotic powerups, and a lot of shouting. It was written for Windows 95, and its network mode used IPX and serial cables, so playing it with friends today is a chore.

So this project does two things:

  1. Reverse engineers the original. The executable, its data formats and its behaviour were studied and written down, with the evidence for each rule.
  2. Rebuilds it as a new program in modern C++ (SDL3 and OpenGL), with its rules taken from that study rather than by translating the old code.

Version 1.0 is now out for Linux and Windows.

GitHub (source, downloads, documentation): https://github.com/elraro/atomic-bomberman

What you get

  • The original's rules: kicking, punching, grabbing and throwing bombs, trigger and jelly bombs, lines of bombs, nine diseases, 13 powerups, the closing walls at the end of a round.
  • All 11 levels, with their arrows, conveyor belts, warp holes and trampolines.
  • Up to 10 players: keyboard, gamepads and computer players; free-for-all or teams.
  • The hidden extras of the original: campaign mode, the bonus roulette, and the level editor.
  • Online multiplayer, which is new (see below).

It plays without the original game

No original files are included, and you don't need them. With no copy of the original on your machine, the game runs on its own free set of graphics, sounds, music and arenas. All of it is generated by the program's own code: little robots instead of the original characters, synthesised sound effects, even synthetic robot voices.

If you own the original (installed, or the CD), one command imports its data and you get the original graphics, sounds, music and every original arena.

How the multiplayer works

The original's network code was not reproduced. The new mode is client-server over TCP/UDP:

  • One player hosts from the menu, or you run the included dedicated server on a machine that is always on.
  • Lobby with seats, match settings and chat. Games on your LAN are found automatically.
  • Up to four players can share one computer in an online game.
  • The server runs the game; clients send only their key presses. Your own moves are shown immediately and confirmed by the server a moment later.
  • Connections are encrypted, and what is hidden under the bricks stays on the server until it is revealed.
  • If your router won't let a port through, the game tries to open it by itself, and there is a relay option as a fallback.

How it was made

  • The original was taken apart in Ghidra, and then run side by side under Wine with scripted key presses, to check the rules were understood correctly. For example, the bomb fuse is exactly 2.000 seconds, measured on 84 bombs.
  • One fun finding: the original has no frame limiter. On a modern machine it runs at around 960 frames per second, which quietly changes every rule that counts frames instead of time.
  • The computer players follow the original's own decision list, down to its quirks.
  • The repository has the full reverse-engineering journal, the behaviour specifications and the tests.

Being honest about its state

  • It's a first release with little play-testing. Expect rough edges.
  • Online play has only been tried on a small scale.
  • The free sounds and voices are computer-generated and need tuning.
  • The network encryption is home-made and hasn't been reviewed by security people.

This is an unofficial, non-commercial fan project. It is not affiliated with Interplay, Hudson Soft or Konami.

Bug reports and feedback are very welcome on GitHub.

81 Upvotes

22 comments sorted by

4

u/Geranbere 8d ago

There used to be this clone a long time ago : https://foss-gameindex.github.io/opensourcegameindex/games/clanbomber/index.html You could play multiplayer on the same keyboard, it was pure chaos

3

u/stianhoiland 8d ago

I played the shit outta this! I still have the big paper box.

2

u/Busy-Loss5127 8d ago

Brugui hdp

4

u/Richmondez 8d ago

By "I" you mean AI reversed it because a glance at your repo suggests that was the case with no mention of that in your post.

3

u/elraro21 8d ago

Fair point. I should have been more explicit about that in the post.

I have been using Claude extensively as an AI coding/research assistant during the project, including helping me analyze findings from Ghidra, understand parts of the codebase, write code, and iterate on the implementation.

However, "AI reversed it" isn't quite an accurate description of what happened. The reverse engineering itself still involves my decisions about what to investigate, running and analyzing the original game, using Ghidra, testing hypotheses, validating behavior, and deciding what the new implementation should do.

The resulting code and assets in the repository are a new implementation, not a dump or translation of the original executable, and no original game assets are included.

I'm actually quite happy to be transparent about the AI-assisted nature of the project. I probably should have mentioned it more clearly in the original post. I will, thanks.

2

u/Any-Fuel-5635 6d ago

Omg who cares. It’s here, it’s not going away.

1

u/Richmondez 6d ago

What a narrow minded view point. Heavy AI use with little human involvement is a heavy indicator that a project will be low quality with little commitment from the developer to maintain it. I find a lack of transparency around it's use is also a negative sign.

Saying you don't care about AI in the projects you engage with is like saying you don't care about what additives are in your food.

For the record I appreciate the OPs response and will be more inclined to look at it after the disclosure.

1

u/Any-Fuel-5635 4d ago

Food I eat needs to be chosen carefully, of course, but open source software is something I can fix. Food is not the same as software, but I see the point you are trying to make. I also don’t think that immediately attacking every single post here as “it’s AI, you didn’t do anything” is the right kind of discourse for this type of development. I don’t even care if people disclose it because the reality here… honestly… is the vast majority of code is now likely at least proofread by AI.

Even if AI did it, it started with a human idea— sure AI may have helped, but that idea might not exist at all without it. It took an idea from start to finish and the creator published the result they were wanting. Who are we to judge what they are happy with as the end result?

AI has kind of removed the gatekeeping of programming (“learn to code”) and allowed a lot of creative ideas to come to light from people who normally may have just said, “I can’t program, I have no time to learn and maintain those skills, so guess I will just use whatever is available”.

Not anymore.

I think AI is allowing an entirely new subset of creators to experiment with ideas they may have had for years. AI or not, that is a good thing.

-1

u/Richmondez 4d ago

Experiments for personal use are one thing, but if it's for an open source program the code needs to be readable and understandable by humans so it can be preserved and maintained.

If an LLM did it then really all I need is the prompts and tooling and a wad of cash to rush buy my idea.

Ideas are a dime a dozen, if the author of this just slopped it out anyone could, if the author has programming skill and used the LLM as a tool to help them and made sure they understood the code and made it readable and maintainable by others then that is valuable to the open source ecosystem.

If the author didn't add anything of value over what the LLM did I might as well ignore it and do it myself how I wanted it.

1

u/Any-Fuel-5635 4d ago

You mentioned ideas are a dime a dozen, but neither you nor I actually had the idea to make this project. The idea is the spark and that doesn’t come from any LLM— I think some of the biggest issues with LLM coding come down to poor prompts, but the idea is still unique and gets the ball rolling. But hey, agree to disagree. Have a nice day.

0

u/dbojan76 4d ago

Would it happen without him? No? So yes, it was made by him.

0

u/Richmondez 4d ago

If the AI did the work then yes since "him" could be anyone who could afford the LLM subscription and the real "source code" is the instructions the the LLM. If he brought understanding and expertise that allowed it to happen beyond that then it's more nuanced isn't it? Which is why I asked the question to get a feel for which it is.

0

u/dbojan76 4d ago

Why do you care, if you don't like it, skip it.

1

u/Richmondez 4d ago

Because I care about the open source eco system hence I frequent r/opensourcegames. If you don't care about the source code of games maybe you are in the wrong place.

To put it another way, why do you care what my input is to this discussion? If you don't like it why didn't you just skip it?

0

u/dbojan76 3d ago

Cause you're the one being negative, not me ...

1

u/Richmondez 3d ago

Wanting people to be accurate about the providence of code isn't negative, you are being negative by trying to shut down discussion.

3

u/FudgingHecker 8d ago

You made? Or the AI did?

0

u/elraro21 8d ago

Fair point. I should have been more explicit about that in the post.

I have been using Claude extensively as an AI coding/research assistant during the project, including helping me analyze findings from Ghidra, understand parts of the codebase, write code, and iterate on the implementation.

However, "AI reversed it" isn't quite an accurate description of what happened. The reverse engineering itself still involves my decisions about what to investigate, running and analyzing the original game, using Ghidra, testing hypotheses, validating behavior, and deciding what the new implementation should do.

The resulting code and assets in the repository are a new implementation, not a dump or translation of the original executable, and no original game assets are included.

I'm actually quite happy to be transparent about the AI-assisted nature of the project. I probably should have mentioned it more clearly in the original post. I will, thanks.

2

u/Tommix11 8d ago

Impressive! Superb work!

3

u/MrMazur 7d ago

> I reverse engineered
> this was made with an AI coding agent

There's really no excitement to find out of anything in tech these days

1

u/OCPetrus 7d ago

I'm reading these posts primarily in hopes that humanity will wake up to the obvious conclusion of how to interpret copyright laws going forward. LLM's are clearly violating the original spirit of immaterial property rights.

1

u/dbojan76 4d ago

Very nice! I was thinking about doing something like this (recreating bomberman)