Guide
Game double jump movement systems explained
Harbor Spire's central ventilation shaft stacked three narrow iron ledges at heights no single jump could clear. Playtest heatmaps showed 64% of players turning back at the first ledge after repeated failed attempts — not because they lacked skill, but because the tuned gravity and jump apex left a 1.4 m vertical gap. Designers debated adding a horizontal air dash; instead they shipped a vertical-only second jump with a brief apex hang window. Shaft completion rose to 89%; players described the climb as “stair-stepping through air.” The second jump did not replace the first — it extended the arc where the first jump ended.
A double jump grants one additional jump impulse while airborne, typically resetting vertical velocity (or adding to it) before the character lands. Unlike dashes, which apply burst displacement, double jumps reshape the parabola of flight. Poorly tuned second jumps feel like floaty cheats or redundant button presses; well-tuned ones become the rhythm of vertical exploration. This guide covers double jump taxonomy, apex shaping and gravity curves, charge and refresh models, coyote-time and input buffering integration, combat vs traversal policies, the Harbor Spire refactor, a technique decision table versus air dash and wall-run, pitfalls, and a production checklist.
Double jump taxonomy
“Double jump” hides several distinct mechanics. Document each variant separately so level designers author to the correct reach envelope:
- Vertical reset jump — second press zeroes downward velocity and applies a fixed upward impulse. Classic platformer feel; predictable height gain independent of fall speed.
- Omni second jump — impulse follows stick direction; enables diagonal correction mid-air. Higher skill ceiling; can trivialize horizontal gaps if combined with strong first-jump run-up.
- Incremental boost — adds velocity without full reset; weaker second impulse preserves momentum from first jump. Common in action RPGs where aerial combos chain off fall speed.
- Timed hold jump — hold jump on second press to extend hang time or rise further. Adds skill expression beyond tap timing.
- Resource-gated jump — second jump consumes stamina, mana, or a charge meter shared with dodge or sprint. Unifies mobility economy.
- Animation-gated jump — second jump only available during specific aerial states (after attack, during tumble). Ties mobility to combat strings.
- Triple jump and beyond — additional charges with diminishing impulse. Each extra jump multiplies level-design reach; gate carefully.
Pick one primary aerial correction verb for vertical rooms. Stacking omni double jump + air dash + wall-run without distinct costs produces unreadable movement and breaks encounter vertical spacing.
Apex shaping and gravity curves
Raw impulse numbers tell half the story. Players perceive double jump quality through apex behavior — what happens at the top of the arc:
- Gravity multiplier on descent — higher gravity after apex makes jumps feel snappy; lower gravity creates float. Apply different multipliers to first vs second jump arcs if you want distinct “pop then settle” rhythm.
- Apex hang — briefly reduce gravity when vertical velocity nears zero. Gives players a readable beat to press the second jump. 80–120 ms hang is typical; longer reads as moon physics.
- Cut jump — releasing jump early truncates upward velocity. Apply cut rules consistently on first and second jump or players learn incompatible timing.
- Terminal velocity cap — limits fall speed so second jump always has time to register before ground impact. Pair with generous coyote time at ledge edges.
Measure reach in designer tables as maximum vertical delta from takeoff platform to highest point of the double-jump arc, not as separate first-jump and second-jump heights. Level geometry must fit the combined envelope.
Charge refresh and availability rules
When can the player use their second jump? Refresh policy defines metroidvania pacing and combat fairness:
- Refresh on landing — simplest model; one mid-air jump per takeoff. Players learn “land to reset.”
- Refresh on wall contact — wall-run or wall-jump restores air jump. Enables vertical chains without ground; requires wall surface tagging.
- Refresh on enemy bounce — stomp or attack cancel restores jump. Popular in action platformers; tune enemy placement as implicit platforms.
- Timed cooldown — second jump unavailable for N seconds after use even on landing. Rare for traversal; more common in PvP where air mobility is a balance lever.
- Persistent charge pool — two or three jumps total until touching a checkpoint or refill shrine. Fits roguelike vertical rooms.
Log refresh source in telemetry (ground, wall, enemy, pickup) when playtests show players stranded mid-route. “No jump available” deaths often trace to ambiguous refresh rules, not level difficulty.
Horizontal authority on the second jump
The stick's role on second jump defines whether double jump solves vertical gaps, horizontal gaps, or both:
- Vertical lock — second jump ignores horizontal input; only adds height. Preserves authored gap distances; pairs well with separate air dash for horizontal correction.
- Air control carry — existing horizontal velocity persists; second jump does not add lateral impulse. Predictable for speedrun routes.
- Full omni impulse — stick sets second-jump direction. Powerful but breaks gap math; requires wider tolerance bands in level design.
- Air strafe multiplier — reduced lateral acceleration during second jump arc. Compromise between control and authored spacing.
Harbor Spire chose vertical lock because horizontal omni on the second jump would have let players skip an intended ladder bypass on the shaft's east face. Document horizontal policy in the same designer table as jump height.
Coyote time, buffering, and forgiveness
Double jump feels unfair when the game demands frame-perfect ledge timing. Standard locomotion forgiveness applies:
- Coyote jump — allow first jump for ~100–150 ms after leaving a ledge. Without coyote time, players who run off edges cannot chain into double jump before falling too far.
- Jump buffer — queue jump input before landing; fires on next grounded frame. Enables “land-jump-double-jump” rhythm without strict timing.
- Air jump buffer — queue second jump during first jump ascent; executes at apex or on release. Reduces missed inputs at arc peak.
- Grace after damage — knockback often cancels air state; decide explicitly whether hitstun restores or consumes second jump.
These windows are not cheats — they convert invisible frame requirements into readable player agency. See input buffering for queue depth and consumption rules.
Traversal vs combat policies
The same double jump input may serve exploration and combat. Split tuning when requirements diverge:
- Traversal profile — full height, apex hang, refresh on landing. Prioritize reach and forgiveness.
- Combat profile — shorter second impulse, no hang, cancel into attack on descent. Prevents infinite aerial camping in PvP.
- State machine gating — block second jump during block, reload, or heavy attack unless design explicitly rewards aerial cancels.
- Enemy interaction — ground-pound from double-jump apex is a separate verb; do not map it to the same button without tutorial clarity.
If combat and traversal share one impulse table, document which states override height and which animations root-motion-lock vertical position during second jump.
Case study: Harbor Spire shaft refactor
Before the refactor, the shaft used single-jump tuning copied from outdoor courtyards: high run-up speed, moderate apex, fast descent gravity. Indoor ledge spacing assumed outdoor reach. Players who missed the first ledge fell the full shaft depth — a 12-second respawn loop that amplified frustration.
The refactor shipped four changes:
- Vertical-only second jump with impulse tuned to clear 1.6 m ledge delta (10% margin over measured 1.4 m gap).
- 100 ms apex hang on second jump only, giving readable timing without moon-float on first jump.
- Coyote time extended to 12 frames at shaft ledges (from 6) because exit velocities were lower indoors.
- Fall damage disabled in shaft volume until third ledge cleared — failure became retry, not punishment loop.
Shaft abandonment fell from 64% to 11%. Speedrunners later found a wall-run skip on the west face; designers left it as advanced tech because base double-jump route remained the taught path. See fall damage for volume-based damage policy patterns.
Technique decision table
| Approach | Best for | Tradeoff |
|---|---|---|
| Double jump (vertical lock) | Vertical shafts, tower climbs, metroidvania height gates | Weak horizontal correction; wide gaps need bridges or dash |
| Air dash | Horizontal gaps, combat repositioning | Minimal height gain; different player expectation than jump |
| Wall-run chain | Corner-heavy vertical architecture | Requires wall tagging; camera complexity on interior shafts |
| Mantle / vault | Chest-high ledges, realistic humanoid reach | Slower than jump; animation lock during mantle |
| Grapple hook | Large open 3D volumes | Anchor authoring cost; overkill for tight interior shafts |
| Double jump + air dash | High-mobility action platformers | Reach envelope explosion; QA and level-design burden |
Prefer double jump when heatmaps cluster deaths on vertical ledge height despite correct horizontal approach. Add air dash when failures show correct height but insufficient horizontal distance. Use mantle when ledges are chest-high and you want grounded, readable interaction over aerial verbs.
Common pitfalls
- Second jump equals first jump height — doubles total reach unexpectedly; tune second impulse to ~60–80% of first unless triple-jump pacing is intentional.
- Omni second jump without gap rebalance — players skip intended routes; rebalance horizontal gaps or lock vertical on second press.
- No coyote time on ledge exits — running jumps feel inconsistent; players blame controls, not timing.
- Second jump during knockback — unless designed, cancels hitstun and breaks boss attack readability.
- Frame-rate dependent impulse — higher FPS must not apply extra physics substeps without velocity normalization.
- Same VFX on first and second jump — players cannot tell which charge they spent; use distinct particles and pitch-shifted SFX.
- Refresh on moving platforms unclear — players stranded when elevator does not count as “ground.”
- Networking without air-state sync — remote players see double jump one frame late; predict locally, reconcile on landing.
Production checklist
- Document combined reach envelope (first + second jump apex) in designer tables.
- Specify horizontal authority policy (vertical lock, omni, or strafe multiplier).
- Define refresh sources: ground, wall, enemy, pickup, checkpoint.
- Apply apex hang and gravity multipliers separately per jump index if needed.
- Enable coyote time and jump buffer on ledge-adjacent routes.
- Use distinct VFX/SFX for first vs second jump.
- Block second jump during hitstun unless combat design requires aerial escape.
- Normalize impulse to delta time, not per-frame increments.
- Author ledge spacing to combined reach with 10% tolerance band.
- Tag volumes where fall damage is disabled during tutorial climbs.
- Log “jump denied” reasons in playtest builds (no charge vs wrong state).
- Test at 30, 60, and 120 FPS for consistent apex height.
- Split traversal and combat impulse tables if PvP balance differs from PvE.
Key takeaways
- Double jump reshapes the parabola — it extends vertical reach where the first jump ends, not a horizontal burst tool.
- Apex hang and gravity curves define feel as much as raw impulse; players read the top of the arc, not the launch frame.
- Harbor Spire cut shaft abandonment by 53 points with vertical-only second jump and coyote forgiveness — no dash required.
- Document refresh rules explicitly; ambiguous ground/wall/enemy restore logic causes more frustration than hard gaps.
- Pair double jump with air dash only when level design needs both vertical and horizontal correction — each verb must earn its place.
Related reading
- Game locomotion explained — ground controllers, coyote time, and jump buffers
- Game air dash movement systems explained — horizontal burst mobility and charge stacks
- Game fall damage and landing systems explained — volume policies and safe-fail climbs
- Game input buffering explained — pre-input queues and leniency windows