Two small systems separate a platformer that feels precise from one that feels unresponsive, and both exist to solve the same problem: a player's intention and their input do not arrive at exactly the same moment.
Coyote time
When you walk off a ledge, there is a short window during which pressing jump still works even though you are technically already falling. On this site that window is 110 milliseconds.
It exists because players consistently press jump a frame or two after leaving the ground. That is not carelessness — it is the natural consequence of reacting to a visual cue that arrives at the moment the ground ends. Without the grace period, those inputs are silently discarded and the player experiences the game ignoring them.
The name comes from cartoon physics, where a character runs off a cliff and hangs in the air until they notice. The mechanic is the same shape: you are briefly allowed to act as though the ground is still there.
Jump buffering
The mirror image. A jump pressed up to 120 milliseconds before you land is remembered and fires on contact.
Without it, a player who presses slightly early gets nothing, has to notice the failure, and press again — by which point the rhythm is broken and they have usually stopped moving. With it, an early press simply works.
This matters most in sequences of consecutive jumps, where a player naturally falls into a rhythm and their inputs drift slightly ahead of the landings.
Why these are not difficulty reductions
This is the part worth being precise about, because both systems are sometimes described as making platformers easier.
Neither lets you make a jump you could not otherwise make. The jump distance is unchanged, the arc is unchanged, the gap is unchanged. What changes is whether an input that was correctly timed against the player's intention is accepted.
The difference matters because of what happens without them: a correct input at the wrong millisecond produces a failure, and the player cannot tell whether they misjudged the jump or just mistimed the key. That ambiguity is what makes an unforgiving platformer feel unfair rather than hard — you cannot learn from a failure whose cause you cannot identify.
Variable jump height
The third member of the set, and the one that gives the player the most control.
Releasing the jump key while still rising cuts the arc short, applying a decay of about 45% per frame-normalised interval to upward velocity. Holding it produces a full-height jump.
This turns one button into a continuous control. A short hop between close platforms and a full leap across a gap use the same key, distinguished only by how long you hold it — and learning that distinction is the single most useful technique available to a platformer player.
It also solves a practical problem: without it, every jump overshoots close platforms, which makes precise landings almost impossible.
How they work together
The combination produces a jump that behaves the way players expect:
- You approach a ledge and press jump slightly late. Coyote time catches it.
- You release early because the next platform is close. Variable height shortens the arc.
- You press jump again slightly before landing. Jump buffering remembers it.
- You land and immediately leave, with the rhythm unbroken.
Any one of those systems missing produces a noticeable hitch in that sequence, and three hitches per second is what an unresponsive platformer feels like.
Tuning the windows
Both windows are short enough to be imperceptible and long enough to matter.
- Too short — below about 60 milliseconds — and they stop catching real inputs. The systems are present but do nothing.
- Too long — above about 200 milliseconds — and they become perceptible. Coyote time starts to feel like floating; buffering starts firing jumps the player has changed their mind about.
- 110 and 120 milliseconds sit comfortably inside that range, which is why numbers close to these are common across the genre.
Double jump and the ledge case
One implementation detail that is easy to get wrong. In a game with a double jump, what happens if you walk off a ledge without jumping and the coyote window expires?
The correct behaviour is to treat the ground jump as consumed, so the player still gets exactly one air jump rather than two. Getting this wrong means a player who falls off a ledge has more options than one who jumped off it, which is backwards.
Try it yourself: Cupcake Jump
Climb a cupcake tower through four tiers of shrinking platforms and richer food.
Key takeaways
- Coyote time is a 110-millisecond window after leaving a ledge during which a jump still registers.
- Jump buffering remembers a jump pressed up to 120 milliseconds before landing.
- Neither makes jumps easier — they stop correctly-intended inputs from being silently discarded.
- Variable jump height turns one button into a continuous control and is the most useful platformer technique.
- Windows below 60 ms do nothing; above 200 ms they become perceptible and start feeling wrong.
- With a double jump, walking off a ledge must consume the ground jump, or falling gives more options than jumping.
Frequently Asked Questions
What is coyote time?
A short grace period — 110 milliseconds here — during which pressing jump still works after you have walked off a ledge. It exists because players consistently press a frame or two late.
What is jump buffering?
The mirror of coyote time: a jump pressed up to 120 milliseconds before you land is remembered and fires on contact, so an early press is not silently discarded.
Do these make platformers easier?
No. Neither lets you make a jump you could not otherwise make. They stop inputs that were correctly timed against your intention from being thrown away.
What is variable jump height?
Releasing the jump key while rising cuts the arc short. It turns one button into a continuous control, which is what makes short hops and full leaps possible from the same key.
How long should these windows be?
Below about 60 milliseconds they stop catching real inputs; above about 200 they become perceptible and start feeling wrong. This site uses 110 and 120.