A 2D top-down action-roguelite game built with Flutter and Flame engine, featuring physics-based movement and inertia mechanics.
The player controls a small character connected via a chain to a massive weapon. Movement generates momentum and centrifugal force, which is used to swing the weapon into enemies for damage. The game is entirely focused on physics-based movement where movement is attack.
- Physics-Based Combat: Damage is calculated based on impact velocity
- Heavy Weapon Feel: The weapon has realistic mass and inertia
- Progressive Upgrades: Choose upgrades between stages that modify physics properties
- Smooth Camera: Camera follows the player with smooth interpolation
- Framework: Flutter (latest stable)
- Game Engine: Flame
- Physics: flame_forge2d (Forge2D physics engine)
- State Management: Provider
- Flutter SDK (latest stable version)
- Dart SDK
- Android Studio / Xcode (for platform-specific builds)
-
Clone the repository
-
Install dependencies:
flutter pub get
-
Run the game:
flutter run
- Android (minSdkVersion: 21)
- iOS
- macOS (min version: 10.14)
- Virtual joystick in the bottom-left corner
- High linear damping for responsive, quick stops
- Heavy weapon connected via DistanceJoint
- Swings freely around the player
- Damage scales with impact velocity
- Heavy Hitter: +20% weapon mass (harder to swing, hits harder)
- Long Reach: +15% chain length (wider swing radius)
- Spikes: Visual upgrade (placeholder for future mechanics)
This is a prototype implementation. Future enhancements may include:
- Screen shake and particle effects on impact
- More upgrade types
- Additional enemy types
- Sound effects and music
- More complex stage layouts
This project is a prototype/game development project.