Description
A cannon sits at the bottom of the screen. Balls fall from the top, each showing a hit-point number. Fire bullets upward and wear them down before any ball crosses the death line. Every fifth wave skips the normal spawn and drops a single boss ball — much tougher, but killing it pauses the run and hands you an upgrade pick.
The upgrades stack. Start with a bare single-shot cannon and work toward rapid-fire, multi-shot spread, ricochet bullets, and doubled damage. Each boss run builds on the previous one, so a long game feels meaningfully different from the opener.
Features
- –Wave-based progression — enemy count and fall speed increase every wave
- –Boss every 5th wave — substantially higher HP, triggers upgrade screen on death
- –Five stackable upgrades — Rapid Fire, Blast Radius, Multi-Shot, Double Damage, Ricochet
- –Fluid drag controls — GestureDetector pan input keeps cannon movement responsive on Android
- –Explosion particles — gravity-affected burst on ball death
Upgrades
| Upgrade | Effect |
|---------|--------|
| Rapid Fire | Fire rate multiplied ×1.25 per stack |
| Blast Radius | Bullet radius multiplied ×1.4 per stack |
| Multi-Shot | Three bullets per fire (spread) |
| Double Damage | Damage per hit ×2 |
| Ricochet | Bullet bounces once off the top of the screen |
How to Play
- 1.Drag left or right to move the cannon
- 2.The cannon fires automatically — focus on positioning
- 3.Destroy all balls before any reaches the death line
- 4.On wave 5, 10, 15 … a boss ball appears — kill it to open the upgrade screen
- 5.Pick one of three offered upgrades and continue
Tech Stack
- –Engine: Flame 1.30.x on Flutter
- –Input: Flutter GestureDetector (pan) forwarded to game via method calls
- –Collision: AABB distance check — O(n²) over small bullet × ball lists
Changelog
Feedback
Found a bug? Have a feature idea? Something unclear? Use the form below.