Skip to content

ISNEXIS/isnexisApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

76 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ฃ ISNEXIS - Bomberman Game

A modern, retro-styled Bomberman game built with Flutter and Flame engine, featuring both single-player and real-time multiplayer modes.

Version Flutter Dart

โœจ Features

๐ŸŽฎ Game 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

๐ŸŽฏ Gameplay Elements

  • 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

๐ŸŒ Multiplayer Features

  • 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

๐ŸŽจ Visual Features

  • Retro Game Boy-inspired color scheme
  • Pixel grid background
  • Explosion effects
  • Character customization
  • Responsive UI design
  • Game Boy-style borders and buttons

๐Ÿ› ๏ธ Technology Stack

  • Frontend: Flutter
  • Game Engine: Flame
  • Backend: C# + ASP.NET Core

๐Ÿš€ Getting Started

Installation

  1. Clone the repository

    git clone https://github.com/ISNEXIS/isnexisApp.git
    cd isnexisApp
  2. Install dependencies

    flutter pub get
  3. 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

Backend Setup (for Multiplayer)

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

๐ŸŽฎ How to Play

Controls

  • Arrow Keys / WASD: Move player
  • Space: Place bomb
  • Virtual Joystick: Touch controls (mobile)

Single Player Mode

  1. Select "START GAME" from main menu
  2. Choose number of players (2-4)
  3. Select your character (Player 1 is always human)
  4. Other players will be AI bots
  5. Survive and eliminate all opponents to win!

Multiplayer Mode

  1. Select "MULTIPLAYER" from main menu
  2. Create Room: Enter your name and backend URL
  3. Join Room: Enter room code, name, and backend URL
  4. Wait for host to start the game
  5. Battle against real players in real-time!

Gameplay Tips

  • ๐Ÿ’ฃ 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

๐Ÿ“ Project Structure

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

๐ŸŽฏ Game Rules

  1. Objective: Be the last player standing
  2. 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
  3. Powerups:
    • Spawn with 20% chance when destroying blocks
    • Each powerup gives +1 bonus
    • Maximum 1 powerup per bomb explosion
  4. Health System:
    • Start with 1 health (can increase with powerups)
    • 2 seconds invincibility after damage
  5. Victory Conditions:
    • Single Player: Eliminate all bots or player dies
    • Multiplayer: Last player alive wins

๐Ÿ”ง Configuration

Grid Configuration

Modify in bomb_game.dart:

late int gridWidth;  // Currently: 17
late int gridHeight; // Currently: 15

Powerup Drop Rate

Adjust in bomb_game.dart:

if (shouldSpawnPowerups && _random.nextDouble() < 0.20) // 20% chance

๐Ÿ› Known Issues & Limitations

  • 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)

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is private and not published to pub.dev.

๐Ÿ‘ฅ Authors

๐Ÿ™ Acknowledgments

  • Inspired by classic Bomberman games
  • Built with Flutter and Flame engine
  • Retro Game Boy aesthetic
  • SignalR for real-time multiplayer

๐Ÿ“ž Support

For issues and questions, please open an issue on the GitHub repository.


Enjoy the game! ๐Ÿ’ฃ๐Ÿ’ฅ

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors