When we first launched Dash Dive, it was a pure endless runnerāone continuous challenge that kept getting harder until you crashed. It was simple, addictive, and followed in the footsteps of classics like Flappy Bird and Crossy Road. But after watching player behavior and gathering feedback, we realized something important: players wanted more structure.
This is the story of how we evolved Dash Dive from an endless runner into a game with both endless mode and a carefully designed 10-level progression system. It's a journey that taught us valuable lessons about game design, player psychology, and the importance of listening to your audience.
Three weeks after launch, we looked at our analytics and found a concerning pattern:
Players were trying the game once, playing for less than 30 seconds, and leaving. The endless mode, while mechanically sound, wasn't creating the kind of engagement we hoped for. We needed to understand why.
One player's comment changed our perspective entirely:
"I'd enjoy this more if it had multiple levels that progressed in difficulty after you completed a stage. It would feel more rewarding."
This feedback aligned perfectly with what our data was showing. Players wanted:
We established three core principles for our level system:
We divided our 10 levels into three distinct worlds, each with its own theme and challenge type:
Design Goal: Teach mechanics without overwhelming new players.
Background: Bright blue skies with fluffy clouds. Welcoming and non-threatening.
Music: Light, upbeat melody. Sets a friendly tone.
Design Goal: Increase difficulty while maintaining fairness.
Background: Dark storm clouds, occasional lightning flashes. Visually reinforces increased challenge.
Music: More intense rhythm, driving percussion. Increases tension appropriately.
Design Goal: Test true mastery of all mechanics.
Background: Cosmic nebula with stars and distant galaxies. Rewards players with visual spectacle.
Music: Epic, soaring melody. Makes victory feel significant.
Each world ends with a "boss level" that differs mechanically from standard gameplay:
Level 3 - Wind Tunnel: A maze-like section where wind currents push you in specific directions. Players must plan their route while managing speed.
Level 7 - Lightning Storm: Telegraph system where lightning "charges up" before striking. Players learn to read visual cues and preemptively dodge.
Level 10 - Asteroid Field: Dynamic obstacle generation where asteroids move in realistic physics patterns. Requires spatial awareness and prediction.
One of the hardest aspects of level design is difficulty balancing. Too easy, and players get bored. Too hard, and they give up in frustration.
We used a mathematical model to ensure smooth difficulty progression:
We playtested each level with players of varying skill levels:
We adjusted parameters based on actual completion rates, aiming for the "flow zone" where challenge meets skill.
Completing a level is satisfying, but we wanted players to come back and master each level. Enter the star rating system:
Three-star systems are proven to drive engagement:
We also tied stars to character unlocks: earn 15 stars total to unlock the Phoenix character, 25 stars for the Cosmic character, etc.
Each world needed to feel visually and sonically unique:
Sky Kingdom:
Storm Clouds:
Space Nebula:
Building a level system in a game originally designed as an endless runner presented technical hurdles:
We needed a flexible way to define levels without bloating the codebase. Our solution:
const levels = [
{
id: 1,
name: "First Flight",
world: 1,
duration: 30,
gapSize: 250,
speedMultiplier: 0.6,
obstacleInterval: 3000,
background: "sky",
music: "gentle"
},
// ... more levels
];
Tracking player progress across 10 levels, including completion status, star ratings, and unlock state, required robust localStorage management:
We didn't want to abandon endless modeāit was still fun for high-score chasers. So we implemented a mode selector:
After implementing the level system, our metrics transformed:
One player's comment about wanting levels transformed our entire game. Always listen to your audience.
Our analytics showed that the endless mode wasn't engaging enough. Data doesn't lieāuse it to guide design decisions.
Paradoxically, adding constraints (levels) increased freedom (players felt comfortable experimenting). Clear goals make games more accessible.
Our first level design had Level 3 as a difficulty spike that frustrated players. We rebalanced after playtesting. Always iterate.
We kept endless mode because some players loved it. Don't throw out good featuresāgive players options.
Now that we have a solid level framework, we're planning:
Dash Dive's transformation from endless runner to level-based progression game wasn't planned from day oneāit emerged from paying attention to how players actually engaged with our game. The lesson? Build what players want, not just what you envisioned.
Game design is an iterative process. Launch, measure, listen, and adapt. Our level system exists because we were willing to evolve based on evidence rather than ego.
If you're a game developer reading this, remember: your first version is never your final version. Stay flexible, stay data-driven, and most importantly, stay connected to your players.
Developer's Note
The first version of Dash Dive had no levels ā just an infinite runner that got faster forever. About three weeks after I put it online, I noticed something in my own play sessions: I kept quitting around the same difficulty spike, not because I failed, but because I had no sense of where I was going. There was no feeling of arrival. That's what pushed me toward a structured system.
Ten levels wasn't a design decision ā it was a time constraint. I gave myself a deadline to ship level mode before losing interest, and 10 was as far as I could take it with the obstacle variety I had available. Looking back, it was the right number. Anything beyond that and the later levels become padding. I'd rather players replay levels 7ā10 for score than feel forced through 15 forgettable ones.
ā Cedric Snell, creator of Dash Dive