Jump Feel
Heavier gravity on the way down and a soft hang at the apex — the asymmetric arc every good jump hides.
Examples
Captured from this page's own interactive demo below.
Overview
Real physics gives a jump a symmetric parabola, and symmetric parabolas feel terrible: the ascent is fine, but the descent floats forever and the character lands like a balloon. Almost every platformer you love cheats — gravity is 1× going up and 1.5–3× coming down. The player never notices the lie; they only notice that jumping feels 'tight'.
The second cheat is the apex: for a few frames around the top of the arc, gravity is softened. That hang time is where mid-air decisions live — steering onto a platform, lining up a stomp — and it makes the jump read as a pose instead of a blur. Mario has done it since 1985; Celeste tunes it per-frame.
The third is jump cut: release the button early and upward velocity is chopped (usually halved or worse), so tap = short hop, hold = full jump. Together the three rules turn one button into an expressive instrument — and none of them costs more than a few lines in the gravity update.
Interactive Demo
Use Cases
Best Practices
Do
- ✓Multiply gravity by 1.5–3× the moment vertical velocity turns downward — the fast fall is what reads as weight.
- ✓Soften gravity in a small velocity window around the apex; the hang is where mid-air decisions happen.
- ✓Cut upward velocity on button release so tap and hold produce honestly different jumps.
Don't
- ✕Don't tune jump height in raw gravity and velocity numbers — derive them from designer units: desired height and time-to-apex.
- ✕Don't let the fall multiplier apply while ascending; doubling gravity on the way up just makes the jump feel weak.
- ✕Don't add apex hang to a game with air-dashes stacked on it without retesting — free hang time changes every air-timing window.
Common Mistakes
- ⚠A symmetric arc shipped as-is, and playtesters saying the character feels 'floaty' without being able to say why.
- ⚠Jump cut setting velocity to zero instead of scaling it, which reads as hitting an invisible ceiling.
- ⚠Applying the fall multiplier every frame including on the ground, so the character snaps onto slopes and stairs.
Implementation
Paste this into your AI assistant (Cursor, Copilot, Claude) to add the effect to your project.
Add the "Jump Feel" game-feel effect to my project: Heavier gravity on the way down and a soft hang at the apex — the asymmetric arc every good jump hides.
How it works: Real physics gives a jump a symmetric parabola, and symmetric parabolas feel terrible: the ascent is fine, but the descent floats forever and the character lands like a balloon. Almost every platformer you love cheats — gravity is 1× going up and 1.5–3× coming down. The player never notices the lie; they only notice that jumping feels 'tight'.
Guidelines:
- Multiply gravity by 1.5–3× the moment vertical velocity turns downward — the fast fall is what reads as weight.
- Soften gravity in a small velocity window around the apex; the hang is where mid-air decisions happen.
- Cut upward velocity on button release so tap and hold produce honestly different jumps.
Avoid:
- Don't tune jump height in raw gravity and velocity numbers — derive them from designer units: desired height and time-to-apex.
- Don't let the fall multiplier apply while ascending; doubling gravity on the way up just makes the jump feel weak.
- Don't add apex hang to a game with air-dashes stacked on it without retesting — free hang time changes every air-timing window.
Implement the effect in whatever engine/stack the project already uses and follow its existing code style. Wire it up where it makes sense.References
Related Effects
Coyote Time
Letting the player still jump for a few frames after walking off a ledge.
Input Buffering
Remembering a slightly-early input and executing it the moment it becomes possible.
Easing (Slow In / Slow Out)
Accelerating into and decelerating out of motion instead of moving at constant speed.
Comments
…