Hi all,
After the issues I had with my other project, I wanted to try my hand on a simpler type of project and settled on a good old fashioned bomberman style game and after a few days of work, I’m ready to share my current progress.
I was originally going to wait to actually get close to finishing it, but I think it’s more interesting/useful to show the progression, errors and mistakes along the way, etc… than showing the “finished” project.
Goal
The goal is to build a basic online multiplayer bomberman type game using Babylon.js and Colyseus. It must include a lobby and the ability to create a join games.
Game Rules
- Player move around using keyboard arrows
- Each player starts with 1 bomb and 1 heart
- Player can place bombs (1 at a time) by pressing the scape key on the keyboard
- Bomb will explode automatically after 3 seconds (bomb explosion radius is of 4 squares)
- Anyone in the explosion radius will lose 1 health
- Player can find powerups after breaking wall using they bombs
- Anyone players who gets under 1 health will be considered dead
- Last player alive will be declared the winner
Power Ups Available
There is a 40% chance a powerup appears every time a player destroys a breakable wall.
- Heart (will give player 1 extra health till a max of 3)
- Bomb (will give player 1 extra bomb till a max of 3)
- Speed (will give player 1 extra speed till a max of 3)
Map Generation
I use ASCII Map Editor to generate all the maps.
Cell types currently available:
- W (wall)
- S (spawnpoint)
- G (ground)
So what’s currently working:
- Map dynamic generation
- Lobby Page
- Ability to create a room and for people to join via the lobby
- Ability to choose between multiple maps
- Ability to start a game
- Dropping bombs!
- Simple UI with scoring and health
- Server authorative movement
- Server collisions
Keyboard controls:
- Movement is done via the arrows on the keyboard (UP, DOWN, LEFT, RIGHT)
- SPACE to drop a bomb
Links:
GITHUB: https://github.com/orion3dgames/bomberman-mayhem
DEMO: https://bomberman-mayhem.onrender.com/
It’s a little rough on the edge, but I’m still happy with the progress considering the time spent (about 4 days)
Screenshots / Video below: