A fast-paced 2D endless runner game built with Flutter and Flame engine. Jump between platforms, collect crystals, and survive as long as possible in this addictive mobile game!
- Endless Runner Gameplay: Auto-scrolling adventure with increasing difficulty
- Simple Touch Controls: Tap to jump between platforms
- Crystal Collection: Gather purple crystals to increase your score
- Progressive Difficulty: Game speed increases as you survive longer
- Physics-Based Movement: Realistic gravity and collision detection
- Responsive UI: Clean menus with game state management
- Mobile Optimized: Designed specifically for mobile devices
- Flutter SDK (>=3.10.0)
- Dart SDK (>=3.0.0)
- Android Studio / VS Code
- Android device or emulator
-
Clone the repository
git clone https://github.com/Sebastiangmz/crystal-rush-flutter.git cd crystal-rush-flutter -
Install dependencies
flutter pub get
-
Run the game
flutter run
Android APK:
flutter build apk --releaseAndroid App Bundle (for Play Store):
flutter build appbundle --release- Start the Game: Tap the "PLAY" button from the main menu
- Jump: Tap anywhere on the screen to make your character jump
- Collect Crystals: Gather purple crystals floating above platforms
- Survive: Don't fall off the screen or get left behind by the camera
- Score: Your score increases with crystals collected and time survived
lib/
├── main.dart # App entry point & UI wrapper
├── game/
│ ├── crystal_rush_game.dart # Main game class with Flame engine
│ ├── components/ # Game entities
│ │ ├── player.dart # Player character with physics
│ │ ├── platform.dart # Platform objects with collision
│ │ └── crystal.dart # Collectible crystal items
│ └── systems/ # Game logic systems
│ ├── spawning_system.dart # Procedural generation
│ └── collision_system.dart # Collision handling
├── screens/
│ └── menu_screen.dart # Main menu interface
└── utils/
└── constants.dart # Game configuration constants
- Flutter: Cross-platform mobile framework
- Flame Engine: 2D game engine for Flutter
- Dart: Programming language
- Component-Entity System: Modular game object design
- State Management: Clean separation of game states
- Physics System: Gravity, collision detection, and movement
- Procedural Generation: Dynamic platform and crystal spawning
- Efficient Rendering: Optimized sprite handling
- Memory Management: Object cleanup and reuse
- Responsive Design: Adapts to different screen sizes
- Smooth Gameplay: 60fps target with optimized game loop
- Game speed increases gradually over time
- Platform spacing becomes more challenging
- Crystal placement requires more skill
- 10 points per crystal collected
- Score display during gameplay
- High score tracking (future feature)
- Gravity System: Realistic falling mechanics
- Jump Mechanics: Touch-responsive jumping
- Collision Detection: Platform landing and crystal collection
- Camera Following: Smooth auto-scrolling
- Power-ups: Shield, magnet, double jump abilities
- Character Customization: Unlockable skins and trails
- Audio System: Background music and sound effects
- Achievements: Milestone-based rewards
- Leaderboards: Global and friend competitions
- Daily Challenges: Special objectives with rewards
- Particle Effects: Visual feedback for collections
- Enemy System: Obstacles and moving hazards
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- ✅ Android: Fully supported
- 🔄 iOS: Ready for implementation
- 🔄 Web: Testable in browser
- 🔄 Desktop: Future consideration
This project is open source and available under the MIT License.
Built with ❤️ using Flutter and Flame engine. Perfect for learning game development concepts and mobile app creation.
Ready to collect some crystals? 💎 Download and play now!