[OPEN SOURCE] Multiplayer Game - Bomberman Mayhem

,

logo

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:

13 Likes

Nice! I was just thinking about doing something like this :smiley:

What do you think about adapting this into a .io style sort of ‘open world’ scenario where players just join in?

Hey, I couldn’t move at all:

Nice! I saw your post on this in Discord but didn’t realize you are making it into a multiplayer game. I’m working on a multiplayer game myself, kind of like Rocket League, so I’m looking forward to seeing your progress here! I might create a post myself with my project so people can follow along the journey :slight_smile:

2 Likes

ahah really cool so many memories

1 Like

@roland Same Warnings here for Firefox. Got it working with Edge.

Other than that: Amazing! Can’t wait for power ups and enemies :robot::bomb::boom:

Oh, btw. Found a wall hack:

Press up arrow, then in quick succession up arrow / right arrow. Teleports you right through.

2 Likes

I use Chrome.

Thanks for the feedback guys.

@roland None of those logs are unexpected, except for the “navmesh denied” one (means that the client thinks there is a block in that direction). I have not managed to replicate such issues in firefox/edge/chrome yet. will keep trying.

@Joe_Kerr nice one, I’ll add that to the todo list to fixed. Power ups should be very easy to implement :slight_smile: I never planned to add enemies, as the other players are the enemy. But I see now it would add a bit of well needed chaos to the game .

@AncientA thanks mate. hope you do showcase your progress :slight_smile:

@Mr_Anderson interesting thought, I have to think about this one first :slight_smile:

Thanks for the response.

One advice, you should check whether the player is not blocked from all directions at start. It has happened to me. Game over! :see_no_evil:

1 Like