Color Rush: A Side-Scrolling Game of Split-Second Color Matching
You are a glowing ball hurtling along an infinite track. The track changes color. You must match it. Miss a single transition, and you shatter into thirty particles that scatter like confetti at a funeral.
Color Rush takes the endless runner formula and strips it down to one decision: what color should you be right now? There is no jumping, no ducking, no lane switching. Just color. Just timing. Just survival.
The Core Mechanic
A ball sits at the 25% mark of the screen, fixed in place while the world scrolls past. Beneath it, a track made of colored segments rushes from right to left. Each segment is painted in one of the game’s active colors. If the ball’s color matches the segment underneath it, you are safe. If it does not match, you crash instantly.
You swipe up to cycle the ball’s color forward through the available palette. You swipe down to cycle backward. That is the entire control scheme.
The catch: the track never stops, the segments keep changing, and you have to read ahead and react before each new segment reaches you.
The Color System
Color Rush starts simple and layers in complexity as you survive:
| Segments Survived | Colors Available | Palette |
|---|---|---|
| 0 – 9 | 2 | Red, Blue |
| 10+ | 3 | Red, Blue, Green |
With two colors, every swipe toggles between the only two options — it is binary and forgiving. Once green enters the mix at segment 10, you need to track your position in a three-color cycle. Swiping from red, you might need to pass through blue to reach green, which costs time. Reading the track ahead becomes critical because you need to plan your swipe path, not just your destination.
The color indicator at the top of the screen shows all available colors as circles, with the currently selected one highlighted by a white ring and a soft glow. It is a quick reference when your brain blanks on which color you are.
Track Generation
Segments are procedurally generated using a seeded random system. The seed is set once at game start from the current timestamp, which means every run produces a unique track. Segments are created ahead of the visible screen and recycled as they scroll off the left edge.
Segment width — the physical length of each colored block — decreases as you progress:
| Segments Survived | Segment Width Range | Effect |
|---|---|---|
| 0 – 9 | 300 – 500 px | Long, comfortable stretches |
| 10 – 24 | 200 – 400 px | Transitions come faster |
| 25 – 39 | 100 – 200 px | Rapid-fire color changes |
| 40+ | 60 – 150 px | Near-continuous swapping |
At 40+ segments, each colored block occupies barely more than the ball’s width. You are effectively swiping on every visual beat.
Speed Progression
The base scroll speed starts at 200 pixels per second. Every 10 segments survived, the speed increases by 5 px/s. There is no hard cap encoded, but the combination of increasing speed and shrinking segments creates an exponential difficulty feel.
| Segments Survived | Scroll Speed (px/s) |
|---|---|
| 0 | 200 |
| 10 | 205 |
| 50 | 225 |
| 100 | 250 |
The speed increase is gentle compared to the segment width decrease. The real pressure comes from shorter segments at only slightly higher speeds — you are not moving faster as much as the decisions are arriving more frequently.
The Crash
When the ball’s color mismatches the current segment, several things happen simultaneously:
- The game freezes. Movement stops instantly.
- Screen shake. The camera jolts with 12 pixels of random displacement, decaying over 0.5 seconds.
- Particle explosion. 30 particles burst from the ball’s position in random directions at speeds between 100 and 300 px/s. Each particle is colored to match the ball and has its own lifespan, size, and trajectory. Gravity pulls them downward at 400 px/s squared, so they arc before fading.
The crash effect is brief but visceral. You feel the mistake.
Visual Atmosphere
Color Rush renders everything through a single CustomPainter. The background is a deep navy gradient that gives the scene depth without competing with the bright track colors. Sixty parallax dots drift across the background at varying speeds and opacities, creating a subtle starfield effect that emphasizes the sense of motion.
The ball itself is rendered with care: a radial gradient from a lightened tint to the core color to a darkened edge, a white highlight spot offset to the upper-left for a 3D feel, a thin white border, and layered glow rings that pulse outward. It looks like a marble rolling along a neon highway.
Track segments use semi-transparent fills with a vertical gradient overlay — lighter at the top, darker at the bottom — and thin white divider lines between them. The result is clean and readable even at high speed.
Scoring and Milestones
Your score equals the number of segments you have fully passed. There is no combo multiplier, no bonus for close calls, no point inflation. The number on screen is a pure survival count.
Every 25 segments, a level-up event triggers with a distinct sound cue. It is a checkpoint that says “you have been doing this for a while,” even though nothing mechanically changes at that moment — the difficulty has been climbing continuously.
Strategy Tips
- Read two segments ahead. Your eyes should be on the segments approaching from the right, not the one currently under the ball. By the time you see a mismatch under you, it is too late.
- Minimize swipe distance. With three colors arranged in a cycle (Red, Blue, Green), going from Red to Green is two swipes forward but only one swipe backward. Always take the shorter path.
- Use the color indicator. In the heat of the game, you can lose track of which color you currently are. A quick glance at the top of the screen resets your mental state.
- Stay calm through the two-to-three color transition. The jump from two to three colors at segment 10 is the first real skill gate. Many runs end here because players are not expecting the third color. Anticipate it.
- Rhythm, not reaction. At high speeds with short segments, the game starts to feel rhythmic. You are not reacting to individual segments; you are swiping in a pattern dictated by the upcoming color sequence. Let the rhythm carry you.
- Accept that segment 40+ is a different game. The early game teaches you to react. The late game demands that you predict. The mental model shifts from “see color, change to it” to “read the pattern three segments out and execute a swipe sequence.”
What Makes It Work
Color Rush succeeds because the core decision — match the color — is trivially easy to understand and brutally hard to execute at speed. There is no hidden complexity, no luck element, no ambiguity about why you died. You either matched the color or you did not.
The procedural generation ensures no two runs are identical, but the seeded randomness keeps each run internally consistent. The difficulty curve is smooth, the feedback is immediate, and the crash is satisfying enough to make you want to try again.
Built With
| Component | Technology |
|---|---|
| Framework | Flutter |
| Rendering | CustomPainter (RushPainter) |
| Game Loop | Ticker-based update with dt |
| State | ColorRushGame model class |
| Track | TrackSegment objects, procedurally generated with seeded Random |
| Effects | Particle system with gravity, screen shake |
| Visuals | Parallax starfield, radial gradient ball, gradient track segments |
| Input | Swipe up/down via GestureDetector |
| Audio | Crash, level-up, and score-change callbacks |
In a genre bloated with upgrades and monetization loops, Color Rush asks one honest question: can you keep up? The track does not care about your power-ups. It just keeps scrolling. Click here to download for free.