Bombanauts, inspired by the original Bomberman game, is a 3D multiplayer online battle arena (MOBA) game where players can throw bombs at each other, make boxes explode, and even other players! Bombs explode into a cross of fire down the aisles destroying crates that stand in their way. When the flames make contact with the wooden boxes (and players 😈) they explode!
Players spawn in the 4 different corners and must destroy crates to get to each other and fight till the last one is standing or the timer runs out. Each map is randomly generated for a unique game every time!
Bombanauts is built using Three.js for 3D rendering and Cannon.js as its physics engine, with Node.js and Socket.io to handle server-client interaction, dual Redux stores to handle game state on both the client and server sides, and React.js for front end interfaces.
The server handles the master game state, and emits all bomb and player location data down to each player, as well as game logic and win conditions. Physics and rendering operations are then handled on the client side, with client side socket emissions for kills and destroying crates that update the master game state on the server.
Your goal is to blow up the other players before they blow you up! Destroy crates to get to the other players and show no mercy!
Press WASD
to move around
Press SPACE
to throw a high velocity bomb
Click to plant a bomb in front of you
Press ENTER
to open the chat
Press ` (Back Tick) to close the chat
Press ESC
to regain control of the cursor (and to see the instructions again)
Click the speaker image to mute and unmute the volume
Move the mouse to look around
- Be careful! You can kill yourself!
- If you aim carefully you can throw a bomb around a corner!
- You cannot throw bombs over walls, boxes, or boulders.
- You have a strong throwing arm. Throw bombs at other bombs to bounce them away.
- Bombs can bounce off of everything! (including other players and bombs!).
- The explosions from your bombs may give away your location to other players.
- Throwing bombs allows for distance, but planting bombs will give you more precision over where they are placed.
If you want to play locally or modify our game we encourage it!
Fork and clone this repository.
Then insall the dependencies
npm install
Start webpack
npm run build-watch
To start the server
npm start
Then go to http://localhost:1337/ and destroy!
Thank you to our teaching fellows tessaSAC, leafoflegend, and babbins for the consultations and project management.
Thank you to our Instructors danceoval and intersim for the code feedback and reviews.
Thank you yomotsu for the awesome fire animation!
And finally thank you to Agamari for inspiring us to build a game! Check them out!