DEV Community

BellSal
BellSal

Posted on

I added gravity to a block puzzle to make players take risks — here's the design logic

Block puzzles have a math problem: the optimal strategy is almost always the safe one. Place each piece to keep the board as open as possible, clear a line when it's free, never gamble. It's solvable on autopilot, and autopilot is boring. I wanted a mechanic that made the greedy, risky play the exciting one — without turning it into luck. Here's what I landed on and why.

The mechanic: streaks trigger gravity

The rule is one sentence: clear lines on consecutive turns, and at streak 3+ gravity switches on — every remaining block falls to the bottom, and whatever new lines that forms clear too, chaining into cascade combos.

That one rule flips the incentive. Normally you clear a line the moment you can, to stay safe. But now, breaking your streak to make a safe clear costs you the gravity payoff. So the interesting question becomes: do I take the small safe clear now, or hold the streak one more turn for a cascade that could clear half the board? That tension is the whole game.

Why cascades, specifically

Cascades solve two problems at once:

  1. They reward planning without requiring perfect play. You don't have to calculate the exact cascade — you just have to keep the streak alive and stack toward the bottom. The gravity does the satisfying part. That keeps it accessible while still having depth.
  2. They create "juice" for free. A cascade is a chain reaction: one clear causes a fall causes another clear. Chain reactions feel great with almost no extra design — the game does something bigger than the move you made. That dopamine hit is what makes people play "one more round."

The trap I avoided: making the cascade random. If gravity dropped blocks in unpredictable ways, it'd feel like a slot machine and players would stop trusting their decisions. Gravity here is fully deterministic — same board, same fall, every time. The skill is in setting it up.

Difficulty comes from the board, not from speed

A cheap way to add difficulty is to speed things up until the player's reflexes fail. I didn't want that — it punishes older or casual players and it's not interesting difficulty. Instead the pressure comes from obstacles that change how the board behaves:

  • Asteroids take two hits to clear, so they clog a line you were counting on.
  • Ice blocks freeze in place and can't move, forcing you to route around them.
  • Reward cubes drop a power-up when destroyed, so there's a reason to want to clear a spot you'd otherwise avoid.

Each of these makes you re-plan rather than react faster. Difficulty as a puzzle, not as a stopwatch.

Modes as difficulty curves, not content padding

Same core rules, four framings:

  • Zen — no timer, no fail state, no ads. This is the mode people actually relax with, and it's the one I'd defend hardest. A puzzle game needs a mode where the game isn't trying to extract anything from you.
  • Timed — the streak tension plus a clock, for people who want the pressure.
  • Endless — score-chasing, where cascades compound.
  • Daily — one fixed board for everyone, which turns a solo puzzle into a shared conversation ("did you get the triple cascade on today's?").

The lesson: modes aren't content, they're difficulty and mood curves over the same ruleset. One mechanic, four audiences.

The takeaway for anyone building a puzzle game

If your puzzle has one obvious optimal strategy, players will find it and leave. The fix isn't more content — it's a single mechanic that makes the risky line competitive with the safe one, and that pays off in a way the game animates for you. For me that was streak-triggered gravity. Make the greedy play tempting, keep the payoff deterministic so it stays skill, and let obstacles — not speed — carry the difficulty.

The game is Cosmo Blocks (iOS here) — disclosure, it's mine, and everything above is the actual design running in it. Free, and Zen mode has no ads if you just want to see the cascade thing without a timer breathing on you.

Top comments (0)