A 2D RPG/Fantasy game built with Flutter and Flame engine, featuring pixel art graphics, combat mechanics, and immersive world design. This project follows the comprehensive development approach from "On Fire with Bonfire" game development course.
Play the game on web here.
- Complete combat system with enemies and attacks
- Fluid character movement and physics-based interactions
- Main hero and allies system with rich characterization
- World design with parallax backgrounds and dynamic lighting
- Item and inventory management
- Dialogue and storytelling system
- Comprehensive audio and visual effects
- Game state management
- Performance-optimized gameplay
-
Project Setup & Map Design with Sprite Fusion
- Create Map in Sprite Fusion
- Display New Map in Flutter
-
Building The Main Hero & NPC Components
- Add NPC Markers to the Map
- Create the Dwarf Warrior Player
- Create the Alchemist NPC
- Create the Blacksmith NPC
-
Applying Input Handling & Collision Detection
- Creating and Applying Gravity to Player Movement
- Setting Up Collision Detection for Players and NPCs
- Apply Joystick Movement to Player
- Add Jump Ability to Player
- Implementing a Pause Feature
- Implementing Action Button Controls for Players
- Add Mouse Event Listener to Player
- Keep Player Inside Screen Boundaries
-
Building a Combat System via Enemies & Attacks
- Adding Enemies to the Map
- Adding Combat Animations for the Dwarf Warrior
- Creating the LizardMan Enemy
- Adding Life Bars to Players and Enemies
- Implementing the Dwarf Warrior's Melee Attack
- Implementing Damage Handling for the Lizardman
- Implementing LizardMan's Attack System
- Handling the Dwarf Warrior's Damage Reception
- Create the Minotaur and Headless Horseman from the LizardMan Template
-
Producing World Design via Lighting & Objects
- Build a Parallax Background
- Create Non-Interactive Plant Objects
- Create Non-Interactive World Objects
- Create Interactive Chest Object
- Create Sensor & Lighting Bonfire Object
-
Generating Pickup Items for Inventory System
- Architect the Inventory System
- Create Droppable Items
- Create and Display the Inventory Interfac
- Add Items to Inventory
- Use and Manage Inventory Items
-
Crafting Dialogue Systems & Rich Storytelling
- Create Game Over & Game Won Overlays
- Create the Two Items For the story
- Create the Game Progress Notifier
- Create Conversation For the Alchemist
- Create Conversation For the Blacksmith
- Update Game State During Progression
-
Adding Audio Integration & Visual Effects
- Create Notifier for Audio Settings
- Add Sound Effects to Game Components
- Create an Audio Settings Overlay
- Create a Custom Text Widget
- Create Start Menu Overlay
-
Finalizing with Cleanup and App Deployment
- Add Component Update Skip Checks
- Applying Stronger Gravity to Enemies
- Handling ParallaxBackground Resizing
- Creating Widget, Unit, and Integration Tests
- Deploying Your App to the Web with Render
- Flutter SDK (2.0.0 or higher)
- Dart SDK (2.12.0 or higher)
- Basic understanding of Flutter and Flame engine
- Clone the repository
git clone https://github.com/yourusername/my-cool-game.git
- Navigate to project directory
cd my-cool-game
- Install dependencies
flutter pub get
- Run the app
flutter run
- Android
- iOS
- Web
- Windows
- macOS
- Linux
- Flutter - UI framework
- Flame - Game engine
- Bonfire - RPG game engine extension
- Audioplayers - Audio handling
- Shared Preferences - Local storage
Run tests using:
flutter test
This project is licensed under the MIT License - see the LICENSE.md file for details.
- Fork the Project
- 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
- Original course: "On Fire with Bonfire: My Cool Game"
- Special thanks to the Flutter and Flame communities
Made with ❤️ using Flutter, Flame, and Bonfire