A classic 2D platformer game built with Flutter and Flame engine
Featuring smooth controls, engaging gameplay, and multiple levels to explore
| Category | Details |
|---|---|
| Project Title | Fruit Collector 2D Platformer |
| Developer | Kamdeu Yamdjeuson Neil Marshall |
| Student Email | kynmmarshall@gmail.com |
| Course | CS 3410 - Mobile Application Development |
| Institution | The ICT University |
| Project Type | Educational Game Development Project |
Fruit Collector is a feature-rich 2D platformer that combines classic gaming mechanics with modern mobile development technologies. The game offers an engaging experience with progressive difficulty, multiple characters, and polished gameplay mechanics.
- โ Smooth Platforming Mechanics - Run, jump, and navigate through challenging levels
- โ Multiple Playable Characters - 4 unique characters with distinct animations
- โ Progressive Level System - 5+ levels with increasing difficulty
- โ Dual Control Schemes - Virtual joystick + buttons or keyboard support
- โ Persistent Save System - Progress saved between sessions using SharedPreferences
- โ Collectible System - Gather fruits and track your collection
- โ Life System - Three lives per level with checkpoint respawning
- โ Polished Visuals - Smooth animations and vibrant pixel art
- โ Complete Audio System - Background music and sound effects
- โ Offline Play - Fully functional without internet connection
Navigate through platform-filled levels while:
- Avoiding enemies and obstacles (saws, traps)
- Collecting fruits to increase your score
- Reaching the checkpoint flag to complete levels
- Unlocking subsequent levels by completing previous ones
| Character |
|---|
| Ninja Frog |
| Mask Dude |
| Pink Man |
| Virtual Guy |
Level-01 (Forest) โ Level-02 (Castle) โ Level-03 (Cave) โ Level-04 (Factory) โ Level-05 (Final)
| Control | Location | Action |
|---|---|---|
| Virtual Joystick | Left side | Move character left/right |
| Jump Button | Right side | Jump action |
| Menu Items | Tap anywhere | Navigate UI |
| Key | Action |
|---|---|
| Space | Jump |
| Component | Technology |
|---|---|
| Game Engine | Flame Game Engine 1.0+ |
| Framework | Flutter 3.0+ / Dart 2.17+ |
| Architecture | Component-based ECS Pattern |
| State Management | Custom Game State Handling |
| Collision System | Pixel-perfect AABB Detection |
| Audio Management | Flame Audio with SharedPreferences |
| Storage | SharedPreferences (Platform Feature) |
| Testing | Flutter Test with ~80% Coverage |
lib/
โโโ components/
โ โโโ player.dart # Player character with physics
โ โโโ enemies.dart # Enemy AI and behavior
โ โโโ level.dart # Level loading and management
โ โโโ collision_block.dart # Collision system
โ โโโ fruit.dart # Collectible items
โ โโโ checkpoint.dart # Level completion
โ โโโ ... (15+ components)
โโโ pixel_adventure.dart # Main game class
โโโ main.dart # App entry point
The game implements SharedPreferences for:
- โ Saving unlocked levels between sessions
- โ Storing player preferences (sound/music settings)
- โ Maintaining character selection
- โ Cross-session progress persistence
// Example: Saving game progress
await SaveManager.saveUnlockedLevels(highestUnlockedLevel);
final progress = await SaveManager.loadUnlockedLevels();- Flutter SDK 3.0+ (with Dart 2.17+)
- Android Studio / VS Code with Flutter extension
- Git for version control
-
Clone Repository
git clone https://github.com/yourusername/pixel-adventure.git cd pixel-adventure -
Install Dependencies
flutter pub get
-
Run on Device/Emulator
# For connected device flutter run # For specific device flutter run -d <device_id>
-
Build Release Version
# Android APK flutter build apk --release # iOS (macOS only) flutter build ios --release
# Run all tests
flutter test| Optimization | Implementation |
|---|---|
| Collision Detection | Efficient AABB algorithms |
| Sprite Animation | Preloaded sprite sheets |
| Memory Management | Automatic resource cleanup |
| Frame-Rate Physics | Delta-time calculations |
| Asset Loading | Asynchronous loading with caching |
| State Updates | Optimized update cycles |
test/
โโโ unit/
โ โโโ components/ # Component tests
โ โโโ managers/ # Manager tests
โ โโโ utils/ # Utility tests
โโโ integration/ # Integration tests
โโโ system/ # System/UI tests
| Platform | Status | Notes |
|---|---|---|
| Android | โ Fully Supported | API 21+ |
- Comprehensive DartDoc comments
- Architecture diagrams in
/docs/ - API reference generated with
dartdoc
- In-game tutorial (Planned)
- Control scheme display
- Level hints and tips
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow Dart/Flutter style guide
- Write tests for new features
- Update documentation as needed
- Ensure backward compatibility
| Contact Method | Details |
|---|---|
| Developer | Kamdeu Yamdjeuson Neil Marshall |
| kynmmarshall@gmail.com | |
| Course | CS 3410 - Mobile Application Development |
| Institution | The ICT University |
| Project Duration | Academic Year 2025-2026 |
Found a bug or have a feature request?
- Check existing issues
- Create new issue with:
- Detailed description
- Steps to reproduce
- Screenshots/videos
- Device/OS information
This project is developed for educational purposes as part of
CS 3410 Mobile Application Development course at The ICT University.
All game assets (sprites, sounds) are used under educational fair use.
Code is proprietary to the developer for academic assessment.
| Resource | Purpose | License |
|---|---|---|
| Flame Engine | Game framework | MIT License |
| Pixel Art Assets | Game sprites | Educational Use |
| Sound Effects | Audio feedback | Educational Use |
| Flutter | UI Framework | BSD License |
- Flame Engine Community for excellent documentation
- CS 3410 Instructor for guidance and support
- The ICT University for academic resources