Devlog // Double It
Game feel is fairness: wall-clock timers and invisible details
Nobody compliments a combo timer. But get it wrong and a player on a three-year-old phone quietly gets a different game than a player on a flagship — and neither of them knows why one feels better.
The two clocks problem
Like most action games, DOUBLE IT caps its simulation delta so a slow frame never teleports the physics. The subtle trap: anything measured in simulation time stretches when frames slow down. A "5-second" combo window on a phone running at half speed becomes ten real seconds — low-end devices were accidentally playing on easy mode, and fast devices were being punished for being fast.
The fix is a discipline, not a patch: player-facing decision windows run on the wall clock; animation and physics run on the capped simulation clock. Combo timers, Ultimate decision windows — wall clock. Orb springs, particle life, screen shake — simulation clock. Two clocks, one rule, and suddenly every device plays the same game.
Reduced motion in a particle game
What does "reduce motion" mean in a game whose identity is liquid physics and bloom? It cannot mean "turn the game off." The shipped interpretation: keep every informational motion (orbs moving, merges resolving), remove every decorative one — screen shake, ambient drift, celebratory bursts — and shorten transitions. The game reads identically; it just stops shouting. Respecting the OS-level preference cost a few dozen conditionals and is, I suspect, the least-noticed feature I am proudest of.
Details nobody sees until they are wrong
- Focus containment — when a dialog is open, keyboard focus cycles inside it and the board underneath is inert to every input path, not just the visible ones.
- Honest audio failure — if the browser refuses the first music play (autoplay policy), the game retries on the next real gesture instead of silently giving up forever.
- Displays are moving targets — the frame pacer re-probes the refresh rate after the window changes screens or wakes from sleep, because a 60 Hz assumption on a 120 Hz panel makes everything feel subtly wrong.
- Interrupted-tutorial safety — a lesson can never ask for an impossible move: every scripted step validates its objective against the real board and quietly repairs the setup if play drifted somewhere unexpected.
Game feel is usually described as juice — the shake, the burst, the thump. Shipping DOUBLE IT convinced me it is mostly the opposite: the removal of every tiny betrayal between the player's intention and the game's response.
DOUBLE IT is playable free in the browser at doubleit.b-smart.xyz — more entries in the devlog.