Bubble shooters are one of those genres that looks solved. Match three, clear the board, repeat. The core mechanic is so well-established that most developers treat it as a template rather than a design problem.
I didn't want to build a template. I wanted to build something that stayed interesting past level 50.
Why bubble shooters are harder to design than they look
The fundamental challenge with bubble shooters is entropy. Every level starts with a cluttered board and ends with an empty one. That's the whole game. Once players internalize the basic color-matching mechanic, the only way to maintain engagement is variety — and variety in a bubble shooter is surprisingly difficult to achieve without breaking the feel of the game.
The standard approach is to add obstacles. Frozen bubbles that need multiple hits. Stone bubbles that can't be destroyed by color matching. Walls that change the bounce angles. These work, but they're additive complexity — more things to remember, more exceptions to the core rule.
What I found more interesting was multiplicative complexity: elements that interact with each other to produce emergent outcomes the player didn't fully predict.
Designing 20 special bubble types
Popverse ships with 20 unique special bubble types. Getting to 20 required drawing a hard line between bubbles that added genuine strategic depth and bubbles that just added visual noise.
The ones that made the cut share a property: they change what the optimal move is, not just how hard the move is to execute.
Bomb bubbles are the clearest example. When a Bomb is on the board, the best move is rarely the most obvious color match — it's often to deliberately set up a chain that detonates the Bomb at the right moment. The presence of a single Bomb bubble reframes the entire board.
Rainbow bubbles work differently. They match any color, which sounds like a pure advantage, but they introduce a decision cost. When you have a Rainbow in your queue, every shot becomes a question: is this the right moment to use it, or should I save it? That friction is the design doing its job.
Lightning bubbles create chain reactions across rows. Portal bubbles teleport shots to unexpected positions. Healer bubbles restore frozen neighbors. Each type introduces a different kind of thinking rather than a different intensity of the same thinking.
The 500+ level problem
500 levels is a lot of content for a solo developer to produce. The practical solution is a level generation philosophy rather than designing each level individually from scratch.
I organized levels into clusters of roughly 15-20, each cluster built around a specific mechanic combination. One cluster focuses on portal bubble navigation. Another introduces Bomb timing under shot pressure. A third combines Frost and Lightning bubbles in ways that force the player to choose between clearing fast and clearing efficiently.
Within each cluster, the first few levels introduce the mechanic cleanly. The middle levels add secondary complications. The final levels remove the scaffolding and let the mechanic run at full difficulty.
This structure means designing 30 clusters rather than 500 individual levels — a much more manageable problem.
What the random puzzle mode taught me
Popverse includes a random puzzle generator alongside the main level progression. I added it as a secondary feature, expecting it to be used occasionally.
Players used it constantly.
The insight this gave me: a significant portion of bubble shooter players aren't trying to progress through a story. They want an infinite supply of fresh boards to solve. The level progression serves one type of player. The random mode serves another. Both are legitimate, and a game that only ships one of them is leaving half its potential audience underserved.
Technical decisions worth mentioning
Popverse is built with Cocos Creator targeting both browser and mobile from a single codebase. The physics of bubble shooting — arc trajectories, wall bounces, cluster detection — are all handled in TypeScript. Cluster detection in particular is worth getting right early: the algorithm that determines which bubbles to pop after a match affects how satisfying every single shot feels.
The browser version is live at phyfun.com. The iOS version is on the App Store.
If you're building a puzzle game with a large level count, the most useful thing I can tell you is this: design the system before you design the levels. The system generates the levels. The levels don't generate themselves.

Top comments (0)