dev.

Cube Rush

Neon endless runner — tap to jump, tap again mid-air to double-jump, clear spike obstacles as speed ramps up, and survive as long as possible.

Description

A neon cyan cube auto-runs to the right across a dark space background. Tap anywhere to jump over spike obstacles. Tap again while airborne for a double jump — useful for tall spikes or last-second corrections. Speed increases every five seconds and never comes back down.

Score is distance in metres. Beat your session best to see the gold "🏆 NEW BEST!" banner on the game-over screen.

Features

  • One-tap + double-jump — simple input, deep timing skill
  • Five spike patterns — single, double, triple cluster, tall lone, staircase pair; randomly combined each run
  • Speed ramp — starts at 300 px/s, caps at 720 px/s after sustained play
  • Parallax star field — 80 stars at varying depths give a sense of speed
  • Particle bursts — jump trail, landing impact, and full death explosion
  • Screen shake on death — one-frame punch of impact feedback
  • Tight hitbox — inner 56% of the cube, so edge clips do not kill you
  • Pure Flutter — CustomPainter at 60 fps, no game engine

How to Play

  1. 1.Tap anywhere to start the run
  2. 2.Tap to jump — the cube lifts off the ground
  3. 3.Tap again while airborne for a double jump
  4. 4.Clear the spike obstacles as they scroll toward you
  5. 5.Survive as long as possible — speed increases every 5 seconds
  6. 6.Hit a spike and the run ends; tap to restart

Spike Patterns

| Pattern | Description |

|---------|-------------|

| Single | One triangle, random height |

| Double | Two side-by-side spikes |

| Triple cluster | Centre spike tallest, outer two shorter |

| Tall lone | Single spike, extra height |

| Staircase pair | Short spike followed by a taller one |

Speed Curve

| Time | Speed |

|------|-------|

| 0 s | 300 px/s |

| 5 s | 322 px/s |

| 30 s | ~430 px/s |

| 60 s+ | ~560–720 px/s |

Tech Notes

  • Input: `Listener` (raw pointer down) — arena-free, nothing can steal the tap
  • Rendering: `CustomPainter` with `shouldRepaint → true` every frame
  • Physics: manual gravity (1900 px/s²), jump velocity (690 px/s first, 530 px/s double)
  • Collision: inner 56% player rect vs lower 65% of spike triangle

Changelog

Feedback

Found a bug? Have a feature idea? Something unclear? Use the form below.

Describe what happened, what you expected, and your environment.