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

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •