A reinterpretation of the classic SNES bomb-and-maze game. You still blow up destructible blocks and hunt the monsters on a 13×13 grid, but three melee and ranged weapons change how a level is solved, the levels are generated forever instead of being hand-authored, and a boss fight every three levels doubles as the checkpoint system.
It exists twice: once in HTML5 Canvas and once in Godot 4. Both are the same game.
Built entirely with AI. Every line of code, every document and every commit in this repository was generated with OpenCode driving the DeepSeek v4 Flash (FREE) model. This is stated plainly because you deserve to know what you are reading before you review it or build on it.
| Version | Stack | How to run |
|---|---|---|
| Canvas | HTML5 Canvas + plain JavaScript | open index.html, or play it online |
| Godot | Godot 4.x + GDScript | run.bat / run.ps1, or open src/godot/project.godot |
Both are vanilla: zero dependencies, zero build step, no package manager, no game library and
no external assets. Every sprite is drawn by code and every sound effect is synthesized at
runtime — WebAudio in the browser, AudioStreamWAV in Godot. Nothing is downloaded, nothing is
bundled.
Progress is saved locally: localStorage in the Canvas version, user://bomberhero.save in
the Godot version.
The bomb is what you start with. Everything else is found in the level.
| Weapon | Blocks | Monsters | Notes |
|---|---|---|---|
| Bomb | destroys | kills instantly | also burns uncollected power-ups inside the blast |
| Knife | no | 1 damage, range 1 | fast swing |
| Sword | no | 3 damage, range 2 | strong and slow |
| Pistol | no | 3 damage, long range | instant shot, limited ammo |
Every monster has its own hit points, so the choice of weapon is a real decision rather than a cosmetic one. The bomb kills any regular monster in one hit, which is exactly why it is also the weapon that destroys the loot you were about to pick up.
Each pistol pickup gives 3 shots, and it shares the bomb's theme: fire upgrades extend the range of your shots as well as the blast.
| Monster | HP | Behavior |
|---|---|---|
| Balloon | 1 | slow drifter |
| Slime | 3 | very slow, absorbs punishment |
| Imp | 2 | fast |
| Ghost | 2 | walks through blocks |
| Demon | 4 | hunts you |
| King | 6 | fast, tough, hunts you |
Every three levels the monster tier goes up: more hit points, and new types start appearing in that order.
Levels are procedural and endless. Each one is a fresh 13×13 map following the original layout rule — solid walls on even coordinates, destructible blocks scattered between them, spawn corners kept clear.
Every three levels you fight the boss in a cleared arena: large, red, crowned, 15 HP (+6 per boss tier) and actively hunting you. The boss inverts the weapon rule — only the bomb really hurts it, for 4 damage, while the knife, sword and pistol do their usual 1, 3 and 3. A health bar runs across the top.
Beating the boss writes the checkpoint: next level, your power-ups and your lives. Run out of lives and you resume from there instead of from level 1.
| Item | Effect |
|---|---|
| Bomb + | +1 simultaneous bomb (max 9) |
| Fire + | +1 blast range (max 9) |
| Speed + | +1 movement speed (max 4) |
| Full fire | maximum blast range |
| Bomb pass | walk through bombs |
| Flame pass | immune to flames |
| Knife / Sword / Pistol | new weapon (pistol adds 3 shots per pickup) |
| Drill | destroy destructible blocks by walking, for 15 seconds |
| Heart | +1 life (max 3) |
The drill is the one worth knowing about: for 15 seconds you carve straight through the map, and each block you break can still drop a power-up. It shows in the HUD with its remaining time, and you lose it when you die.
| Key | Action |
|---|---|
| Arrows / WASD | move |
| Space | drop bomb |
| Z | knife |
| X | sword |
| C | pistol |
| P | pause |
| Enter / Space | advance intro and menu screens |
| Esc / B | back (score screen) |
git clone https://github.com/claudneysessa/bomber-hero.git
cd bomber-heroOpen index.html directly in a browser, or serve the folder if you prefer a real origin for
localStorage:
python -m http.server 8000
# then open http://localhost:8000Requires Godot 4.x (winget install Godot.Godot).
.\run.ps1 # run the game
.\run.ps1 -Editor # open the project in the Godot editor
.\run.ps1 -Web # launch the Canvas version insteadOr import src/godot/project.godot from the Godot project manager.
bomber-hero/
├── index.html entry point of the Canvas version
├── run.ps1 / run.bat launcher (-Editor, -Web)
├── src/
│ ├── javascript/ Canvas version
│ │ ├── consts.js grid and timing constants (36px tile, 13x13, 56px HUD)
│ │ ├── sound.js WebAudio effects, no audio files
│ │ ├── render.js all drawing: tiles, HUD, overlays, intro
│ │ └── game.js state and rules: loop, mechanics, monster AI, scoring
│ └── godot/ Godot 4 version (faithful port)
│ ├── project.godot
│ ├── scenes/main.tscn
│ └── scripts/consts.gd, sound.gd, main.gd
├── CHANGELOG.md
├── CONTRIBUTING.md
└── SECURITY.md
Points come from monsters killed (by type), blocks destroyed, power-ups collected and a level-completion bonus. The menu keeps the last 5 runs with score, level and date, plus your best score and the furthest level you have reached.
Honest list, each one an open door rather than an excuse:
- No automated tests. The failure modes here are visual and temporal, and a token test
suite would be worse than admitting the gap. The pure helpers in
consts.jsand the map generator are the sensible place for the first real tests. - Keyboard only. No touch controls, so the Canvas version is effectively desktop-only.
- Two versions to keep in sync. A gameplay change has to land in the JavaScript and the GDScript, and nothing but review enforces that today.
- Endless, not balanced forever. Difficulty scales by a simple tier rule; deep runs have not been tuned by hand.
- Sound is synthesized, not designed. It is functional feedback, not a soundtrack.
- The in-game text is Portuguese only. The HUD and the menus read
NÍVEL,PONTOSandMONSTROS, as the screenshot above shows. Localizing the interface is an open task and a good first contribution.
Contributions are welcome — bugs, balance, mechanics and documentation alike. Read CONTRIBUTING.md first: it covers the no-dependency rule, the requirement to mirror gameplay changes across both versions, and the manual play-test checklist that stands in for a test suite. Participation is covered by the Code of Conduct, and security reports have their own policy.
Built by Claudney Sarti Sessa using OpenCode and the DeepSeek v4 Flash (FREE) model, which generated the code, the documentation and the commits.
BomberHero is an original reimplementation inspired by the classic Bomberman formula. It contains no code, art, audio or other asset from any Bomberman title — everything here is generated by the code in this repository. Bomberman is a trademark of Konami, which is not affiliated with this project in any way.
Released under the MIT License.

0 comments
log in to comment.