Guide

Game wind zone and updraft traversal systems explained

Harbor Peaks’ wind shrine gauntlet chained three vertical updrafts through narrow stone arches. Playtest telemetry showed 37% completion and a spike in “wind is random” reports. The implementation added a fixed upward offset each frame while the player was inside a trigger volume — not acceleration integrated with gravity and jump velocity. Players overshot ledges, slammed into ceiling spikes, and could not predict whether a short hop or full jump would clear the next arch. Refactoring to force-field acceleration, capped terminal rise speed, gradient falloff at zone edges, and telegraphed gust cycles lifted shrine completion to 76% and cut unfair-mechanic feedback by 71%.

Wind zones and updrafts are volume force fields that modify player velocity while airborne (and sometimes while grounded). They differ from conveyor belts (surface tangential velocity) and bounce pads (instant impulse at contact). Wind teaches vertical routing, timing, and reading environmental flow. This guide covers force models, airborne coupling with jump arcs and air control, horizontal gusts, downdrafts and hazards, puzzle sequencing, networked determinism, the Harbor Peaks refactor, a technique decision table, pitfalls, and a production checklist.

Wind zones vs other environmental movers

Three common patterns move players without direct input, and mixing them without clear rules produces mushy feel:

  • Surface velocity (belts, moving platforms) — applies while grounded; jump-off inherits surface speed.
  • Impulse at contact (springs, bounce pads) — sets or adds velocity once on touch.
  • Continuous force (wind, magnetism, water current) — accelerates velocity each tick while inside a volume.

Wind belongs in the third category. Applying wind as position teleport (the Harbor Peaks bug) bypasses gravity integration and breaks variable jump height: a short hop and a full jump receive the same per-frame nudge, so apex becomes unpredictable. Production platformers integrate wind as acceleration a_wind each physics step: v += (g + a_wind) * dt while the hurtbox center (or feet probe) overlaps the zone.

Force field models

Constant vector zones

The simplest updraft: uniform a_wind = (0, a_up) inside an axis-aligned box. Easy to author but harsh at boundaries — velocity jumps when entering because acceleration turns on instantly. Use constant zones for tutorial shafts with wide margins and soft visual particles so players learn “float up here.”

Gradient falloff at edges

Scale acceleration by a weight w(x,y) from 0 at the volume edge to 1 at the core. Linear or smoothstep falloff prevents snap-in feel and lets players “ride the edge” for fine height control. Harbor Peaks used smoothstep over the outer 25% of each updraft column; overshoot deaths on arch 2 dropped 54%.

Directional and shaped fields

Horizontal gust corridors push along X; diagonal vents assist slope climbs; ring vortices (weak at center, strong at rim) suit circular arenas. Author direction from level data, not mesh rotation alone — rotated colliders with forgotten transform math is a top source of “wind points wrong way” bugs.

Terminal velocity caps

Uncapped upward acceleration fights gravity until the player rockets through the ceiling. Cap rise speed v_y_max per zone (often 1.2–2.5× normal jump apex speed). Downdrafts cap fall speed similarly to avoid slam-through floor bugs. Caps make puzzles solvable on paper: designers can compute max height from entry velocity plus zone height.

Airborne coupling and jump integration

When wind applies

Most platformers apply wind only while airborne or while a “wind hang” flag is active after leaving an updraft. Applying full updraft while grounded on a floor inside the volume creates infinite hover at floor contact unless you zero vertical wind near ground probes — usually undesirable. Pattern: enable vertical wind when !grounded OR grounded && v_y > 0 (rising off a jump inside the shaft).

Jump takeoff inside updrafts

On jump impulse, wind acceleration should apply on the same tick and every subsequent airborne tick. Do not replace jump velocity with wind speed; add wind acceleration to existing velocity. Pair with coyote time at shaft lip so players who run off the edge still receive one or two wind frames.

Air control interaction

If the player has lateral air control, wind horizontal components stack with input — effective speed can exceed sprint. Clamp total horizontal speed in gust corridors or reduce air control authority inside strong wind (many flight sections lock lateral input to 40–60% while preserving steering feel). Document whether air dashes reset wind accumulation or inherit it; inconsistent dash-wind rules confuse speedrunners.

Glide, parachute and double jump

Glide states often multiply wind effect (hang time puzzles). Double jumps inside updrafts should consume the air jump normally; wind does not refund jumps unless the level is explicitly a wind-temple with recharge crystals. If you allow double jump in updrafts, cap total apex so double-jump plus wind cannot skip an entire act.

Gust cycles, curtains and timing puzzles

Continuous vs pulsed wind

Continuous updrafts suit teaching and zen ascent. Pulsed gusts (on 2 s, off 1.5 s) gate progression through moving hazards or force players to wait on ledges. Pulse shape matters: square waves feel unfair; sine or trapezoid envelopes with 200–400 ms fade read as natural gusts.

Telegraphs

Players accept timed wind if they can see it coming: flag cloth, pollen streaks, audio whoosh 300–500 ms before gust peak, subtle screen-edge vignette on strong downdrafts. Harbor Peaks added arch-mounted streamers synced to gust_phase; “random wind” tickets fell 71%.

Wind curtains and one-way gates

Strong horizontal gusts can block backward travel (push player off ledge if they walk into headwind). Weaker tailwinds assist forward jumps. Combine with drop-through platforms for vertical routing: updraft lifts, player drops through floor to side chamber.

Multi-shaft sequencing

Chains of updrafts need consistent v_y_max and gap width. If gap width equals jump distance at peak wind-assisted apex, publish the intended line (early jump vs late jump vs dash from lip). Misaligned shaft spacing is the main cause of “impossible” wind gauntlets in playtest.

Downdrafts, hazards and combat

Downdrafts accelerate descent — useful for speed routes and preventing infinite hover under updraft ceilings. Cap slam speed and respect fall damage rules. Spike ceilings above updrafts need either lower cap or wider arch so players can thread the gap; telemetry on ceiling hits identifies overtuned zones fast.

Rotating hazard fans are often cosmetic meshes over static force volumes; gameplay should read fan collider phase, not blade mesh angle, for damage frames. Environmental kill volumes in wind puzzles should activate only after 400 ms telegraph unless the level is labeled hard optional.

In combat platformers, wind can push projectiles and knockback vectors. If players expect neutral air, gust-combat rooms need UI callouts. Push direction should match projectile deflection for readability.

Networked and deterministic wind

Wind acceleration must be a function of simulation tick and shared phase clocks, not frame-rate dependent offsets. Author a_wind(tick) = f(gust_phase(tick)) for pulsed zones. Rollback netcode includes gust phase in savestates; mispredicting one gust cycle desyncs position in vertical gauntlets. Visual particles may interpolate; gameplay force never reads particle velocity.

For co-op, decide whether both players share the same wind volume response (usual) or whether weight class changes cap (rare). Keep rules identical across clients.

Harbor Peaks wind shrine refactor (case study)

Before: Updrafts used per-frame y += 0.18 inside triggers; no terminal cap; instant full force at volume entry; gusts toggled without streamer sync; horizontal arch gusts used mesh forward vector (wrong axis). Metrics: 37% shrine completion, 29% of deaths on ceiling spikes in arch 2.

Changes:

  • Replaced position nudge with v_y += a_up * dt and v_y_max per shaft tier.
  • Smoothstep edge falloff on all updraft volumes.
  • Shared gust_phase driving streamers, audio, and force scale.
  • Wind applies only when airborne or rising off jump inside shaft.
  • Reduced air control to 50% in horizontal gust corridor between arch 2 and 3.
  • Widened arch 2 by 0.25 tiles after near-miss cluster on telemetry heatmap.

After: 76% completion, ceiling deaths down 61%, unfair-mechanic reports down 71%. Geometry tweak contributed ~5 points; force integration contributed the rest.

Technique decision table

Goal Prefer Avoid
Teach vertical ascent Wide constant updraft, low cap, gradient edges Pulsed gusts as first introduction
Precision height puzzle Gradient zones + capped rise speed + visible apex markers Uncapped acceleration with variable jump
Timed gate through hazard Phase-synced gusts with streamer/audio telegraph Square-wave gust with no preview
Horizontal push across gap Tailwind corridor with clamped total speed Instant velocity set each frame
Factory floor flow Conveyor surface velocity Wind on grounded factory belts
Instant vertical launch Bounce pad impulse at shaft base Weak updraft that never reaches ledge
Block backtracking Strong headwind curtain + one-way drop Invisible repulsion with no feedback
Long-distance arc Tailwind plus jump from lip; document line Wind only after player already falling short

Pitfalls

  • Position nudge instead of acceleration — breaks gravity and variable jump; integrate a_wind each tick.
  • No terminal rise cap — players rocket into ceilings; set v_y_max per zone.
  • Instant full force at boundary — use edge falloff or 80–150 ms ramp.
  • Wind on grounded body at full strength — causes hover jitter; gate on airborne or rising state.
  • Gust phase without telegraph — reads as RNG; sync VFX and audio to phase.
  • Mesh rotation for wind direction — author explicit direction vectors in level data.
  • Ignoring jump-off from moving ground into wind — merge platform velocity before wind tick when leaving moving platforms.
  • Uncapped horizontal stack — air control plus tailwind exceeds jump puzzle math; clamp total speed.
  • Frame-rate dependent force — use fixed timestep; same gust phase in netplay savestates.

Production checklist

  • Model wind as acceleration inside volumes, not per-frame position offset.
  • Integrate wind in the same fixed tick as gravity and jump physics.
  • Set per-zone v_y_max and horizontal speed caps.
  • Apply smoothstep or linear falloff at volume edges (15–30% of width).
  • Gate vertical wind on airborne or rising-off-jump states unless hover is intended.
  • Expose direction, strength, cap, and gust phase in level data.
  • Telegraph pulsed gusts 300–500 ms ahead with VFX and audio.
  • Sync hazard windows to shared gust_phase clock across shafts.
  • Document intended jump lines for gap width at assisted apex.
  • Clamp air control or total speed in strong horizontal gusts.
  • Define dash and double-jump behavior inside wind volumes explicitly.
  • For netplay, derive force from f(tick); include gust phase in rollback state.
  • Playtest at min and max jump heights through each shaft tier.
  • Log ceiling and pit deaths per wind volume in telemetry heatmaps.

Key takeaways

  • Wind zones are acceleration fields, not elevators — integrate force with gravity and jump velocity each tick.
  • Terminal caps and edge falloff make height predictable — Harbor Peaks overshoot was mostly uncapped rise speed.
  • Telegraphed gust phases turn timing puzzles fair — streamers synced to phase cut “random wind” reports by 71%.
  • Use belts for grounded flow, bounce pads for snap launch, wind for sustained vertical control.
  • Air control, dash, and double-jump rules must be explicit inside wind volumes.

Related reading