Multiplayer Bomberman Game

Overview

This project is a competitive multiplayer Bomberman game, developed as part of the Software Technology course at the ELTE Faculty of Informatics. Inspired by classic Bomberman games like Dyna Blaster, this game features 2D gameplay with destructible and indestructible obstacles, power-ups, and various game modes. The game is designed for 2 or 3 players, with the goal of being the last player standing.

Features

Core Features

  1. Intelligent Monsters (1 complexity)
    • Four different types of monsters with unique movement heuristics and speeds.
  2. Powerups (1 complexity)
    • Various power-ups that enhance player abilities, such as increasing bomb count and blast range.
  3. Hindering Curses (0.5 complexity)
    • Random curses that temporarily disadvantage players, like reduced speed or inability to place bombs.
  4. Three Players (1 complexity)
    • The game supports up to three players, with the last player standing declared the winner.
  5. Character Selection
    • Players can choose from different Bomberman characters at the start of the game.

How to Play

  1. Starting the Game

    • Choose the number of players (2 or 3) and select a map from the available options.
    • Players can select their characters before the game starts.
  2. Controls

    • There is a W button next to each player's name to see the controls.
  3. Gameplay

    • Navigate the game field, placing bombs to destroy obstacles and enemies.
    • Collect power-ups from destroyed boxes to gain advantages.
    • Avoid monsters and explosions to survive.
  4. Winning the Game

    • The game continues until only one player remains alive. If all players die within a short time of each other, the game ends in a draw.

Contributions

Contributions are welcome! Please fork the repository and create a pull request with your changes. Ensure that your code follows the project's coding standards and includes appropriate tests.

Feel free to adjust any sections to better match the specifics of your project and its implementation.