A modern, retro-styled Bomberman game built with Flutter and Flame engine, featuring both single-player and real-time multiplayer modes.
- Single Player: Battle against AI bots (2-4 players total)
- Multiplayer: Real-time online multiplayer with SignalR backend
- Host-based room creation
- Room code system for easy joining
- Real-time synchronization of all game elements
- Automatic host migration when host leaves
- Classic Bomberman Mechanics: Place bombs, destroy blocks, eliminate opponents
- Powerups System:
- ๐ Extra Life - Gain additional health
- ๐ฃ Extra Bomb - Increase simultaneous bomb capacity
- ๐ฅ Explosion Range - Extend bomb blast radius
- AI Bots: Smart bot opponents in single-player mode
- Multiple Characters: Choose from 4 different character skins
- Grid-Based Movement: Classic 17ร15 tile grid (15ร13 playable area)
- Retro Game Boy Aesthetic: Green color palette with pixel-style UI
- Real-time player movement synchronization
- Synchronized bomb placement and explosions
- Shared powerup spawning and collection
- Winner determination and broadcast
- Character selection synchronization
- Spectator mode when eliminated
- 2-4 players per room
- Retro Game Boy-inspired color scheme
- Pixel grid background
- Explosion effects
- Character customization
- Responsive UI design
- Game Boy-style borders and buttons
- Frontend: Flutter
- Game Engine: Flame
- Backend: C# + ASP.NET Core
-
Clone the repository
git clone https://github.com/ISNEXIS/isnexisApp.git cd isnexisApp -
Install dependencies
flutter pub get
-
Run the application
# For web (Chrome) flutter run -d chrome # For Windows flutter run -d windows # For Android flutter run -d android # For iOS flutter run -d ios
To enable multiplayer mode, you need a SignalR backend server running with the following endpoints:
/gamehub- Main game hub for real-time communication- Game events:
JoinRoom,LeaveRoom,SendPlayerMovement,SendBombPlaced,SendExplosion,SendPlayerDeath,SendItemCollected,SendGameStart,SendGameEnd
- Arrow Keys / WASD: Move player
- Space: Place bomb
- Virtual Joystick: Touch controls (mobile)
- Select "START GAME" from main menu
- Choose number of players (2-4)
- Select your character (Player 1 is always human)
- Other players will be AI bots
- Survive and eliminate all opponents to win!
- Select "MULTIPLAYER" from main menu
- Create Room: Enter your name and backend URL
- Join Room: Enter room code, name, and backend URL
- Wait for host to start the game
- Battle against real players in real-time!
- ๐ฃ Bombs explode after ~3 seconds
- ๐งฑ Destroy destructible blocks to find powerups
- โก Powerups give +1 bonus to stats
- ๐ฏ Strategic placement is key to victory
- ๐ก๏ธ 2 seconds of invincibility after taking damage
lib/
โโโ main.dart # App entry point
โโโ game/
โ โโโ bomb_game.dart # Core game engine
โ โโโ components/
โ โ โโโ bomb.dart # Bomb entity
โ โ โโโ bot_player.dart # AI bot logic
โ โ โโโ explosion_effect.dart # Explosion visuals
โ โ โโโ map_tile.dart # Grid tile component
โ โ โโโ player.dart # Player entity
โ โ โโโ player_character.dart # Character definitions
โ โ โโโ powerup.dart # Powerup items
โ โ โโโ remote_player.dart # Multiplayer player
โ โ โโโ tile_type.dart # Tile type enum
โ โโโ widgets/
โ โโโ controls_panel.dart # Game controls UI
โ โโโ stats_sidebar.dart # Player stats display
โ โโโ virtual_joystick.dart # Touch controls
โโโ screens/
โ โโโ main_menu.dart # Main menu screen
โ โโโ game_screen.dart # Game container
โ โโโ game_over_screen.dart # Game over overlay
โ โโโ winning_screen.dart # Victory overlay
โ โโโ player_selection_screen.dart # Character selection
โ โโโ multiplayer_setup_screen.dart # MP room creation
โ โโโ multiplayer_lobby_screen.dart # MP waiting room
โโโ services/
โ โโโ game_hub_client.dart # SignalR client
โโโ models/
โโโ player_selection_data.dart # Player data model
- Objective: Be the last player standing
- Bomb Mechanics:
- Place bombs to destroy blocks and opponents
- Bombs explode in 4 directions (up, down, left, right)
- Explosion stops at walls and destructible blocks
- Powerups:
- Spawn with 20% chance when destroying blocks
- Each powerup gives +1 bonus
- Maximum 1 powerup per bomb explosion
- Health System:
- Start with 1 health (can increase with powerups)
- 2 seconds invincibility after damage
- Victory Conditions:
- Single Player: Eliminate all bots or player dies
- Multiplayer: Last player alive wins
Modify in bomb_game.dart:
late int gridWidth; // Currently: 17
late int gridHeight; // Currently: 15Adjust in bomb_game.dart:
if (shouldSpawnPowerups && _random.nextDouble() < 0.20) // 20% chance- Multiplayer requires active backend server connection
- Browser cache may require clearing after updates
- Hot reload may not work for all changes (use hot restart)
- Single player mode requires minimum 2 players (1 human + 1 bot)
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is private and not published to pub.dev.
- ISNEXIS - GitHub
- Inspired by classic Bomberman games
- Built with Flutter and Flame engine
- Retro Game Boy aesthetic
- SignalR for real-time multiplayer
For issues and questions, please open an issue on the GitHub repository.
Enjoy the game! ๐ฃ๐ฅ