Platformer Jump Arcs
Stop guessing Unity gravity values. Use reverse kinematics.
How does it work? ↓The Secret to Perfect Platformer Controls
If you've ever played a platformer game where the jumping felt "floaty" or "mushy", it's usually because the developer manually guessed the Gravity variable. Gravity in game engines is arbitrary; a scale of `1.0` in Unity has absolutely nothing to do with gravity acting on Mario in a 2D grid.
The smartest game designers (like the creators of Celeste and Hollow Knight) use Inverse Kinematics. Instead of guessing numerical physics variables, they determine their Level Design constraints first. For example: "I want the player to be able to jump exactly 4 tiles high, and I want the jump to feel extremely snappy, taking exactly 0.35 seconds to reach the peak."
The Mathematics
Using standard Newtonian kinematic equations, we can simply algebraically reverse the formula. We plug our two designer constraints (Height and Time) directly into the equation to calculate the specific magical Gravity number that satisfies both conditions perfectly:
Gravity = (2 * JumpHeight) / (TimeToApex * TimeToApex) InitialVelocity = Gravity * TimeToApex
Now, anytime the protagonist hits the Jump button, you apply `InitialVelocity` upwards, and let your custom `Gravity` pull them smoothly back down to earth, guaranteeing they will crest accurately at 4 tiles high.