Making Controls Feel Responsive: The 100ms Rule
Responsiveness is the most foundational component of game feel - more important than particles, sound, or screen shake. Fix controls first, then add juice on top. Here is how to measure, find, and fix input latency.
28 April 2026 ยท 6 min read
Every article on this site covers techniques you add to a game to make it feel better. This one is different. Responsiveness is not something you add - it is something you must not break. It is the foundation on which every other juice technique sits, and it matters more than all of them combined.
A game can have stunning particles, precise screen shake, and layered audio feedback. If the controls lag, none of it matters. Players will describe it as feeling bad. They may not know why - they will blame the art, the design, the genre - but the actual problem is that their inputs are not being honoured immediately. Fix this first, then add everything else.
The 100ms Rule
The brain's proprioceptive system is extraordinarily precise at detecting delays between intended action and observed outcome. Research on human perception places the threshold at approximately 100 milliseconds: feedback that arrives within 100ms of an input is perceived as direct and immediate. Above 100ms, the brain stops perceiving the action as direct. The input begins to feel like asking a machine to do something on your behalf, rather than reaching into the screen and moving an object with your hand.
The sweet spot for feeling truly instant is under 50ms - roughly 3 frames at 60fps. At this level, players describe controls as crisp, tight, and responsive. Above 100ms, the description shifts to sluggish, laggy, and floaty. Between 50-100ms, many players will not consciously notice the delay but will still feel something is slightly off.
Where Latency Hides
Most game developers assume their game is responsive because they can see the character moving on screen quickly. But there are four places latency commonly hides, and most of them are invisible during casual development.
Fixed physics update rate. Unity's FixedUpdate runs at 50Hz by default, introducing up to 20ms of physics lag before any input can affect the physical simulation. This is not enough to notice on its own, but it compounds with other sources.
Animation state machine transitions. If a character must complete the current animation before transitioning to a new one, every input during the animation is effectively ignored or queued. A 0.3s attack animation with no interrupt frame means the player has lost real-time control for 18 frames.
Frame rate drops. A drop from 60fps to 30fps doubles the minimum input response time. Frame pacing inconsistency - frames arriving at irregular intervals - feels worse than a consistent lower framerate, because the proprioceptive system cannot calibrate to an unpredictable rhythm.
Render pipeline latency. Some post-processing pipelines, especially deferred rendering, introduce a full frame of latency before the visual result appears on screen. Even if the game logic responds instantly, the player sees the result one frame late.
Masking Latency You Cannot Eliminate
Some sources of latency cannot be eliminated. Network latency in multiplayer games is an obvious example. Physics simulation delay is another - physics must run at a fixed timestep for stability, and this introduces some lag by definition.
The solution is to start animation and audio feedback immediately, within one frame of input, even when the physics result is not yet resolved. The player sees and hears a response - the illusion of immediacy holds. The physics catching up a few frames later is not noticed because the perceptual system has already accepted the event as instantaneous.
This is why top-tier action games play attack animations from frame 1 of the input rather than waiting for a physics raycast to confirm the hit. The visual commitment happens first. The mechanical confirmation follows.
The Toy Test
Before Nintendo built a single level for Mario 64, they built a test garden - an empty environment with nothing in it but Mario and his movement system. Shigeru Miyamoto's team reportedly spent weeks in this empty room before moving on. The requirement: moving Mario around with no objectives and no feedback should be intrinsically enjoyable. The movement itself must be a pleasure.
This is the Toy Test, and it is one of the most useful heuristics in game development. Apply it to your game right now: load an empty scene with just your player character and your movement system. Spend two minutes doing nothing but moving around. Is it enjoyable? Does the movement itself have personality and pleasure? If not, no amount of levels, enemies, or particles will fix it.
The Toy Test exposes responsiveness failures immediately. A character that feels heavy and unresponsive in an empty room will feel heavy and unresponsive with enemies and levels. The environment provides context and distraction; it does not fix the foundation.
Coyote Time and Input Buffering
Two techniques deserve special mention because they are the most impactful responsiveness improvements you can make to a platformer, and they are invisible to players when present - but immediately felt when absent.
Coyote time is a grace period after running off a platform edge during which a jump input is still accepted. The human eye processes visual information roughly 13ms behind reality. By the time a player sees their character leave a platform edge, it has already been airborne for several frames. Without coyote time, the player's jump input - which they felt was pressed on the platform - is rejected. The game hasn't cheated them, but it feels like it did. Celeste uses a 5-frame coyote window. Most platformers need 4-8 frames.
Input buffering is the inverse: storing an input command for a short window and executing it on the first valid frame. A player approaching a landing spot presses jump a fraction early. Without buffering, the jump fires in the air and does nothing. With a 100-150ms buffer, the jump fires the moment the character touches ground. The player feels skilled; their anticipation was rewarded.
Both techniques make controls feel more responsive not by actually reducing latency, but by expanding the window in which the player's intent is honoured. They are the definition of the design philosophy underlying forgiving controls: players never notice the grace period when it is working, only when it is missing.
Measuring Your Game's Actual Latency
Most developers do not measure input latency - they feel it during play and make subjective adjustments. This works but is slow and imprecise. A more reliable method: record gameplay with a high-framerate camera (240fps or higher), press a clearly visible button, and count frames from button press to first visible game response. Multiply by frame duration to get milliseconds.
Software tools like FrameView, FCAT, or platform-specific performance profilers can also measure this more precisely. For console development, first-party certification requirements often include maximum latency thresholds.
The Order of Priorities
The practical implication of the 100ms rule is a clear priority order for game feel work: responsiveness first, then physics feel, then polish. Every juice technique in this series builds on the assumption that the controls respond immediately. If they do not, no visual or audio feedback will compensate.
The exception is if you are using perceived latency techniques - starting animations immediately to mask physics delay. In this case, the visual feedback and the physics resolution are happening at different times. This is acceptable and widely used, but the audio and animation feedback must still fire within 1-2 frames of input. The physics can catch up. The feedback cannot wait.
Part of a series
Controls & Input