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 phone from three years ago 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: decision windows the player faces 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 preference at the OS level 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 probes the refresh rate again 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.