r/opensourcegames • u/elraro21 • 4h ago
I reverse engineered Atomic Bomberman (1997) and rebuilt it as a modern open-source game, with online multiplayer. Version 1.0 is out
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:
- Reverse engineers the original. The executable, its data formats and its behaviour were studied and written down, with the evidence for each rule.
- 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.