Controls that feel fair
"But I pressed it!"
You press dash in Hyper Shards. A bullet hits you anyway. You are sure you pressed in time. Was it your mistake, or the game's?
When players feel the game cheated them, they quit. When controls feel fair, players lose and think "my fault, one more try". Good games use hidden tricks to get that feeling.
Input lag
Input lag is the delay between pressing a button and seeing something happen on screen.
Every part adds a little: the controller, the code and the screen. Many TVs add extra delay to polish the picture, which is why they have a "game mode" that switches that off.
If the game itself waits several frames before moving the ship, it feels mushy, like steering a heavy boat. Good games react on the very next frame. At 60 frames per second, that is about 16.7 milliseconds later.
Quick check
What is input lag?
- The delay between pressing a button and seeing the result
- When the player is too slow to react
- A button that is stuck down
Show the answer
The delay between pressing a button and seeing the result
Input lag is the gap between your press and the game reacting. The smaller it is, the more the game feels connected to your hands.
The input buffer
Players often press a button a split second too early. Say your dash is still recharging, and you press it just before it is ready. Without help, the game ignores the press, and you get hit.
An input buffer remembers the press for a short time, often around 6 frames (a tenth of a second). In code it is a timer: pressing dash sets dashBuffer = 0.1, it counts down each frame, and if the dash becomes ready while the timer is above zero, the ship dashes.
Quick check
An input buffer remembers a button press that came a split second too early.
- True
- False
Show the answer
True
The buffer holds on to your press for a few frames, so the action still happens the moment it is allowed.
Coyote time
Coyote time is named after the cartoon coyote who runs off a cliff, hangs in the air for a moment, then falls.
In jumping games, it means you can still jump for a short time after running off a ledge, often around a tenth of a second. Your eyes said you were on the edge, so the game agrees.
In code, it is a timer: it refills while you stand on the ground and counts down by dt, the seconds since the last frame, once you leave it.
Bolt says: Many famous platform games use coyote time. Most players never know it is there.
Bug hunt
1const COYOTE = 0.1; // seconds of grace2let coyoteLeft = 0;3function update(dt) {4 if (player.onGround) {5 coyoteLeft = 0;6 } else {7 coyoteLeft = coyoteLeft - dt;8 }9}10function onJumpPressed() {11 if (coyoteLeft > 0) jump();12}
Kai tries coyote time in a small jumping test. Now the hero can't jump at all, not even from the ground. Which line is the bug?
- Line 1
- Line 5
- Line 7
- Line 11
Show the answer
Line 5
Line 5 should refill the timer with coyoteLeft = COYOTE. Setting it to 0 means the timer never fills, so the check on line 11 always fails.
Bend the rules for the player
- A smaller hitboxA hitbox is the invisible shape the game uses to check for hits. Our ship's hitbox is a bit smaller than its picture, so near misses feel like skill.
- A bigger pickup rangeShards get grabbed even if you fly just past them.
- Big tap areasIn Garden Defense, a tap that is slightly off a plant spot still counts.
Bolt says: All these tricks lean the same way: in the player's favour. That is what "fair" feels like.
Quick check
Why is the Hyper Shards ship's hitbox a bit smaller than its picture?
- So bullets that only graze the edge of the picture miss, and near misses feel like skill
- So the ship is harder to control
- So the game uses less memory
Show the answer
So bullets that only graze the edge of the picture miss, and near misses feel like skill
A slightly smaller hitbox leans in the player's favour. A bullet that brushes a wingtip doesn't count, so players feel skilful instead of cheated.
Touch controls and the plan
Phones have no buttons you can feel, and your thumb covers part of the screen. So on phones, Hyper Shards uses relative drag: the ship moves the same distance your finger moves, but stays above it, so you can always see it.
The studio's original plan lists input buffer and coyote time by name. We ask Claude Opus 5.5 for each trick in plain words, then keep the timings in balance.json, our file of game numbers, so we can tune them without touching code.
Bolt says: Controls are half of feeling fair. Next lesson: enemy brains, and how to build enemies that fight fair too.
Fact-checked 9 October 2026
- Celeste and Forgiveness (Maddy Thorson) maddymakesgames.com
- Samsung: best TV settings for gaming (Game Mode) samsung.com
- How-To Geek: what Game Mode on a TV means howtogeek.com