Post
The game remembers you pressed the button a few frames early and executes the action anyway, because humans are not frame-perfect robots.
Input buffering is the system that accepts player inputs slightly before they would be valid and queues them for execution at the earliest possible moment. If a player presses jump two frames before their character lands from a previous jump, the input buffer stores that press and triggers the jump the instant landing occurs. Without buffering, the player would need to time inputs to the exact frame they become valid, which feels unresponsive and punishing. Fighting games pioneered sophisticated input buffering with move cancels, special move input windows, and negative edge (triggering on button release). Platformers use coyote time (a few frames of grace after walking off a ledge where you can still jump) as a form of spatial input buffering. The buffer window size is a crucial tuning parameter: too short feels unresponsive, too long makes inputs feel delayed or causes unintended actions.
Example
Celeste is famous for its generous input buffering and coyote time. Players can press jump up to five frames before landing and still get a perfect jump, and they have a few frames of grace after leaving a platform edge. These invisible systems are why Celeste feels incredibly responsive despite being a precision platformer, and they are a major reason players can attempt difficult screens hundreds of times without feeling cheated.
Why it matters
Input buffering is one of the most impactful yet invisible systems in game design. It bridges the gap between what the player intended and what the game engine can execute on any given frame. Games that feel 'tight' and 'responsive' almost always have well-tuned input buffering, while games that feel 'floaty' or 'unresponsive' often have insufficient or no buffering at all.
Related concepts