There was no physics. Every jump was a lie.

Published on December 9, 2025

Why did jumping feel so different from one NES game to the next?

It wasn’t physics. The NES had no physics engine in the sense that we use the term today. There was no floating point unit, no gravity simulation, and no equation modeling mass or drag or velocity. A jump on the NES was three things: an initial vertical velocity applied the moment you left the ground, a per-frame adjustment to that velocity to simulate falling, and a set of rules about when the player could influence horizontal direction or cut the arc short. That was the complete system. Everything else, the weight, the momentum, the feeling of being a specific character in a specific world, was constructed on top of those three variables by designers tuning numbers frame by frame until it felt right.

Mario’s jump is the most engineered of the era, and the engineering is almost entirely invisible. Hold the button and he jumps higher. The game applies an upward velocity for as long as the button is held, up to a limit, then a downward velocity until you hit the ground. This gives the jump its variable height: tap for a small hop, hold for a full arc. His horizontal momentum builds gradually and decays gradually, which is why running into a jump carries you further than jumping from a standstill. The horizontal velocity is a separate value that the jump doesn’t reset. He even has grace frames at platform edges: a small window of a few frames after walking off a ledge during which the jump input still registers as a normal jump rather than a fall. Players almost never notice this consciously, but remove it and the game immediately feels punishing.

Castlevania makes every choice in the opposite direction. Simon’s jump has a fixed arc, fixed height, fixed distance, and fixed duration. Once you leave the ground, horizontal input stops mattering. You go where the jump takes you. There is no variable height, no midair steering, no grace frames at edges. The arc is what it is and you ride it out. This is frequently described as a flaw, especially by people who came to Castlevania after playing more forgiving platformers. It isn’t a flaw. It’s the combat system. Castlevania is built around positioning before you act. You commit to a jump knowing where you’re going to land, you commit to a whip swing knowing its range and timing, and you plan several moves ahead because you can’t correct for mistakes in the air. The locked arc enforces that planning. A jump you can steer is a jump you can fix. A jump you can’t steer is a decision you have to commit to.

Mega Man sits between the two and closer to neither than it might seem. His jump arc is shallow and predictable. He doesn’t go as high or as far as Mario, but he has full horizontal control in the air, and he accelerates and decelerates instantly. No momentum buildup, no gradual deceleration. You press left and he moves left immediately. You release and he stops immediately. This makes him feel less like a person and more like a cursor, which is exactly the right feel for the game he’s in. Mega Man’s levels are built around precise positioning: standing in exactly the right spot to dodge a pattern, landing on exactly the right platform to reach an item. The instant response gives you more precise control, and the levels are designed with the expectation that you use it.

Ninja Gaiden takes air control further than any of them. Ryu can reverse horizontal direction instantly in midair, going full speed in the opposite direction as an immediate response. Combined with the wall-grab mechanic, this means Ryu can be placed almost anywhere within his jump range with a precision that approaches pixel-perfect. The game is designed entirely around this capability. Enemy placement, knockback angles, camera positioning, the infamous birds, they all assume that you can correct your trajectory at any point in the air. The speed and responsiveness that make Ninja Gaiden feel almost twitchy compared to Mario or Castlevania aren’t stylistic choices bolted onto an otherwise standard platformer. They’re load-bearing. Without instant air direction reversal, the game would be unnavigable.

All of this was hand-authored. There was no underlying simulation to fall back on, no physical model to set parameters for and run. If a designer wanted Mario’s jump to feel weightier at the top of the arc, someone sat down and adjusted the per-frame velocity values for the frames near the apex until it felt right. If they wanted Mega Man to feel snappier, they changed the horizontal acceleration constant and playtested until the precision felt correct. The feel of each jump is the accumulated result of deliberate decisions about specific numbers, made by specific people trying to achieve a specific sensation.

This is actually why NES-era jump mechanics have aged better than many later approaches. Physics engines produce plausible motion. Hand-tuned jump systems produce arcs designed for the specific game they’re in, responsive in exactly the ways that game requires. A physically accurate jump isn’t necessarily a good jump. A good jump is one that tells the player what they’re about to do, responds to what they’re trying to do, and forgives the small errors that come from humans pressing buttons at 60 frames per second.