---
id: movement-platforming
status: active
supersededBy: []
lang: en
title: Movement and platforming
description: >-
  Jumping, momentum, parkour, climbing, ropes, flight and swimming: controllable
  actions, rule variants and prototype checks.
intro: >-
  Movement connects input, trajectory and accessible space. Players assess
  support, speed and remaining abilities, choose an action and correct their
  motion through feedback. These ten directions range from flat platforming to
  underwater movement. A first prototype needs only a few surfaces and one
  distinctive rule; the camera, collisions and return of control should explain
  success or failure. Godot documentation provides implementation examples,
  while the Celeste and TowerFall author describes one approach to movement and
  platforms; these choices are not mandatory in every engine.
updatedAt: '2026-10-21'
sources:
  - title: 'Godot: 2D movement overview'
    url: 'https://docs.godotengine.org/en/stable/tutorials/2d/2d_movement.html'
    description: >-
      Examples of movement schemes and their implementation in Godot, not
      universal acceleration or speed values.
  - title: 'Maddy Thorson: Celeste & TowerFall Physics'
    url: >-
      https://www.mattmakesgames.com/articles/celeste_and_towerfall_physics/index.html
    description: >-
      The original developer's account of movement, collisions and
      moving-platform interactions in those games.
  - title: 'Godot: CharacterBody3D'
    url: 'https://docs.godotengine.org/en/stable/classes/class_characterbody3d.html'
    description: 'Godot-specific behavior of a controlled 3D body, collisions and sliding.'
counts:
  families: 10
  branches: 10
  variants: 40
url: 'https://gamemechanics.pro/en/mechanics/movement-platforming/'
markdownUrl: 'https://gamemechanics.pro/content/mechanics/en/movement-platforming.md'
license: CC-BY-4.0
codeLicense: MIT
attribution: gamemechanics.pro contributors
provenance: >-
  Original bilingual editorial overviews authored for gamemechanics.pro on
  2026-10-20 and reviewed on 2026-10-21. Scenarios are hypothetical design
  examples; prototype checks describe work to perform, not completed playtests.
  Primary sources support the stated techniques and implementation context, not
  every proposed variant.
---
# Movement and platforming

Movement connects input, trajectory and accessible space. Players assess support, speed and remaining abilities, choose an action and correct their motion through feedback. These ten directions range from flat platforming to underwater movement. A first prototype needs only a few surfaces and one distinctive rule; the camera, collisions and return of control should explain success or failure. Godot documentation provides implementation examples, while the Celeste and TowerFall author describes one approach to movement and platforms; these choices are not mandatory in every engine.

## Mechanics and variants

<a id="mechanics"></a>

### 1. 2D platformers

<a id="t001"></a>
id: t001
canonicalId: movement-platforming--t001
url: https://gamemechanics.pro/en/mechanics/movement-platforming/#t001

The player controls position on a plane and jump timing, turning surfaces into a sequence of reachable supports.

#### Mechanic variants

<a id="t001-variants"></a>
- Variable jump height: releasing the button shortens ascent and refines landing. <a id="t001-v1"></a>
- One-way support: passing from below is allowed, but landing from above stops a fall. <a id="t001-v2"></a>
- Moving platform: entry timing depends on the platform's trajectory. <a id="t001-v3"></a>
- Air dash: an extra displacement consumes a charge until the next support. <a id="t001-v4"></a>

Design example: In a pit challenge, a short jump reaches a lower ledge while a long jump requires waiting for a moving platform.

Prototype check: Compare early and late releases: trajectories should differ predictably without a hidden change in the rules.

- [Godot: 2D movement overview](https://docs.godotengine.org/en/stable/tutorials/2d/2d_movement.html)
- [Maddy Thorson: Celeste & TowerFall Physics](https://www.mattmakesgames.com/articles/celeste_and_towerfall_physics/index.html)
- [Godot: CharacterBody3D](https://docs.godotengine.org/en/stable/classes/class_characterbody3d.html)

### 2. 3D platformers

<a id="t002"></a>
id: t002
canonicalId: movement-platforming--t002
url: https://gamemechanics.pro/en/mechanics/movement-platforming/#t002

The player chooses routes and landing points in three dimensions; the camera and landmarks communicate depth and movement direction.

#### Mechanic variants

<a id="t002-variants"></a>
- Camera-relative input: an input direction maps to the current viewing direction. <a id="t002-v1"></a>
- Free look: rotating the camera does not redirect an already committed jump. <a id="t002-v2"></a>
- Target lock: movement orbits a chosen object while controlling distance. <a id="t002-v3"></a>
- Ledge catch: an allowed region completes an imprecise landing onto an edge. <a id="t002-v4"></a>

Design example: On a tower, one route is visible from above while another turns behind it; the character's shadow helps identify the landing platform.

Prototype check: Test one jump from three camera angles: players should distinguish falling short, overshooting and choosing the wrong direction.

- [Godot: 2D movement overview](https://docs.godotengine.org/en/stable/tutorials/2d/2d_movement.html)
- [Maddy Thorson: Celeste & TowerFall Physics](https://www.mattmakesgames.com/articles/celeste_and_towerfall_physics/index.html)
- [Godot: CharacterBody3D](https://docs.godotengine.org/en/stable/classes/class_characterbody3d.html)

### 3. Precision jumping and landing

<a id="t003"></a>
id: t003
canonicalId: movement-platforming--t003
url: https://gamemechanics.pro/en/mechanics/movement-platforming/#t003

The player aligns input with a short valid-state window; forgiveness can absorb imprecision while preserving an understandable trajectory.

#### Mechanic variants

<a id="t003-variants"></a>
- Jump buffering: a press shortly before ground contact executes after landing. <a id="t003-v1"></a>
- Late jump: a short window after leaving an edge still permits takeoff. <a id="t003-v2"></a>
- Apex control: adjusted acceleration near the top allows trajectory correction. <a id="t003-v3"></a>
- Repeat gating: holding the button does not trigger another jump without permission. <a id="t003-v4"></a>

Design example: In a low-ceiling room, a short press clears the spikes while holding the button produces a visible collision.

Prototype check: Change the input buffer and geometry separately: success should follow the intended forgiveness rule rather than an accidental frame.

- [Godot: 2D movement overview](https://docs.godotengine.org/en/stable/tutorials/2d/2d_movement.html)
- [Maddy Thorson: Celeste & TowerFall Physics](https://www.mattmakesgames.com/articles/celeste_and_towerfall_physics/index.html)
- [Godot: CharacterBody3D](https://docs.godotengine.org/en/stable/classes/class_characterbody3d.html)

### 4. Momentum and speed preservation

<a id="t004"></a>
id: t004
canonicalId: movement-platforming--t004
url: https://gamemechanics.pro/en/mechanics/movement-platforming/#t004

The player accelerates, brakes and preserves momentum, trading fast traversal against precise trajectory changes.

#### Mechanic variants

<a id="t004-variants"></a>
- Gradual acceleration: speed builds over time and needs space before an obstacle. <a id="t004-v1"></a>
- Distinct braking: releasing input and pressing the opposite direction reduce speed differently. <a id="t004-v2"></a>
- Limited air control: a poor run-up cannot be fully corrected after takeoff. <a id="t004-v3"></a>
- Momentum transfer: a slope, moving support or booster affects the next jump. <a id="t004-v4"></a>

Design example: A short route requires hard braking, while a wider detour preserves speed for a long gap.

Prototype check: Record takeoff speed from different supports and check that jump distance follows the chosen momentum model.

- [Godot: 2D movement overview](https://docs.godotengine.org/en/stable/tutorials/2d/2d_movement.html)
- [Maddy Thorson: Celeste & TowerFall Physics](https://www.mattmakesgames.com/articles/celeste_and_towerfall_physics/index.html)
- [Godot: CharacterBody3D](https://docs.godotengine.org/en/stable/classes/class_characterbody3d.html)

### 5. Parkour and obstacle traversal

<a id="t005"></a>
id: t005
canonicalId: movement-platforming--t005
url: https://gamemechanics.pro/en/mechanics/movement-platforming/#t005

The player reads obstacle geometry and chains traversal techniques, maintaining motion through a sequence of contact points.

#### Mechanic variants

<a id="t005-variants"></a>
- Vaulting: obstacle height and free space determine whether traversal is possible. <a id="t005-v1"></a>
- Wall running: contact maintains special motion until speed or usable surface runs out. <a id="t005-v2"></a>
- Sliding under obstacles: a low stance trades steering control for retained momentum. <a id="t005-v3"></a>
- Contact chaining: a successful action permits an immediate transition into the next. <a id="t005-v4"></a>

Design example: A character vaults a fence, slides beneath a beam and uses a wall to reach the next roof.

Prototype check: Repeat the chain slowly and quickly; unavailable actions should be explained by geometry or state rather than guessing an input.

- [Godot: 2D movement overview](https://docs.godotengine.org/en/stable/tutorials/2d/2d_movement.html)
- [Maddy Thorson: Celeste & TowerFall Physics](https://www.mattmakesgames.com/articles/celeste_and_towerfall_physics/index.html)
- [Godot: CharacterBody3D](https://docs.godotengine.org/en/stable/classes/class_characterbody3d.html)

### 6. Climbing and holding onto surfaces

<a id="t006"></a>
id: t006
canonicalId: movement-platforming--t006
url: https://gamemechanics.pro/en/mechanics/movement-platforming/#t006

The player selects a sequence of handholds and manages grip capacity to change height without safe ground below.

#### Mechanic variants

<a id="t006-variants"></a>
- Explicit handholds: movement connects marked points within reach. <a id="t006-v1"></a>
- Climbable surfaces: material, slope or traction determines access. <a id="t006-v2"></a>
- Grip reserves: exertion limits long climbs and makes rest positions valuable. <a id="t006-v3"></a>
- Slip recovery: a failing grip can be rescued by catching a lower hold. <a id="t006-v4"></a>

Design example: A cliff offers a short overhanging route and a longer path through a recovery ledge.

Prototype check: Disable exertion and compare routes: the constraint should change choices while leaving at least one viable path.

- [Godot: 2D movement overview](https://docs.godotengine.org/en/stable/tutorials/2d/2d_movement.html)
- [Maddy Thorson: Celeste & TowerFall Physics](https://www.mattmakesgames.com/articles/celeste_and_towerfall_physics/index.html)
- [Godot: CharacterBody3D](https://docs.godotengine.org/en/stable/classes/class_characterbody3d.html)

### 7. Grappling hooks, ropes and swinging

<a id="t007"></a>
id: t007
canonicalId: movement-platforming--t007
url: https://gamemechanics.pro/en/mechanics/movement-platforming/#t007

The player connects to a world anchor, changes length or tension and uses release timing to carry motion onward.

#### Mechanic variants

<a id="t007-variants"></a>
- Anchor selection: range, visibility and surface type restrict attachment. <a id="t007-v1"></a>
- Pendulum motion: a taut link limits distance and turns falling into an arc. <a id="t007-v2"></a>
- Reeling in: shortening the link changes height, speed or anchor distance. <a id="t007-v3"></a>
- Release: detachment preserves the chosen tangential-velocity model. <a id="t007-v4"></a>

Design example: Above a chasm, the player chooses a high anchor for distance or a low one to enter a narrow opening.

Prototype check: Test releases before, at and after the bottom of the arc; launch directions should be distinct and reproducible.

- [Godot: 2D movement overview](https://docs.godotengine.org/en/stable/tutorials/2d/2d_movement.html)
- [Maddy Thorson: Celeste & TowerFall Physics](https://www.mattmakesgames.com/articles/celeste_and_towerfall_physics/index.html)
- [Godot: CharacterBody3D](https://docs.godotengine.org/en/stable/classes/class_characterbody3d.html)

### 8. Flight and gliding

<a id="t008"></a>
id: t008
canonicalId: movement-platforming--t008
url: https://gamemechanics.pro/en/mechanics/movement-platforming/#t008

The player manages altitude, speed and available support, choosing trajectories that trade climbing against sustained travel.

#### Mechanic variants

<a id="t008-variants"></a>
- Gliding: altitude loss becomes horizontal travel without continuous lift. <a id="t008-v1"></a>
- Resource-limited thrust: an engine sustains height while fuel or energy lasts. <a id="t008-v2"></a>
- Minimum speed: an overly steep climb reduces control under an explicit rule. <a id="t008-v3"></a>
- Updrafts: a local zone restores altitude before the next crossing. <a id="t008-v4"></a>

Design example: A glider reaches a distant platform through two updrafts; a direct route is shorter but spends its altitude reserve.

Prototype check: Build equivalent crossings from different starting heights and check whether feedback explains the reachable distance.

- [Godot: 2D movement overview](https://docs.godotengine.org/en/stable/tutorials/2d/2d_movement.html)
- [Maddy Thorson: Celeste & TowerFall Physics](https://www.mattmakesgames.com/articles/celeste_and_towerfall_physics/index.html)
- [Godot: CharacterBody3D](https://docs.godotengine.org/en/stable/classes/class_characterbody3d.html)

### 9. Swimming and underwater movement

<a id="t009"></a>
id: t009
canonicalId: movement-platforming--t009
url: https://gamemechanics.pro/en/mechanics/movement-platforming/#t009

The player moves through a resisting volume, choosing depth, effort direction and when to return to the surface.

#### Mechanic variants

<a id="t009-variants"></a>
- Buoyancy: no input causes rising, sinking or neutral depth. <a id="t009-v1"></a>
- Air reserves: time or access to replenishment limits distance from the surface. <a id="t009-v2"></a>
- Currents: water motion combines with controlled speed and changes the route. <a id="t009-v3"></a>
- Medium transitions: entering water or reaching shore explicitly changes available actions. <a id="t009-v4"></a>

Design example: An underwater passage offers a short strong current and a long sheltered loop with an air-replenishment point.

Prototype check: Compare movement with and against the current; players should understand relative speed and retain a way back.

- [Godot: 2D movement overview](https://docs.godotengine.org/en/stable/tutorials/2d/2d_movement.html)
- [Maddy Thorson: Celeste & TowerFall Physics](https://www.mattmakesgames.com/articles/celeste_and_towerfall_physics/index.html)
- [Godot: CharacterBody3D](https://docs.godotengine.org/en/stable/classes/class_characterbody3d.html)

### 10. Runners and obstacle courses

<a id="t010"></a>
id: t010
canonicalId: movement-platforming--t010
url: https://gamemechanics.pro/en/mechanics/movement-platforming/#t010

Forward progress is imposed or expected to continue, while the player chooses dodge timing and obstacle-clearing sequences.

#### Mechanic variants

<a id="t010-variants"></a>
- Lane switching: discrete positions simplify selection of a safe corridor. <a id="t010-v1"></a>
- Obstacle rhythm: preparation for the next action begins before the previous one ends. <a id="t010-v2"></a>
- Flow speed: acceleration shortens decision time while retaining visible warning. <a id="t010-v3"></a>
- Route branching: a safe detour competes with a harder but more rewarding line. <a id="t010-v4"></a>

Design example: A runner chooses a long outer lane without gaps or a short sequence of jumping, ducking and turning.

Prototype check: Change speed separately from obstacle spacing and check whether there is still time to recognize the next action.

- [Godot: 2D movement overview](https://docs.godotengine.org/en/stable/tutorials/2d/2d_movement.html)
- [Maddy Thorson: Celeste & TowerFall Physics](https://www.mattmakesgames.com/articles/celeste_and_towerfall_physics/index.html)
- [Godot: CharacterBody3D](https://docs.godotengine.org/en/stable/classes/class_characterbody3d.html)

## Sources and examples

Sources support particular techniques or methodology, not every family variant. Design examples and mechanic combinations are illustrative.

- [Godot: 2D movement overview](https://docs.godotengine.org/en/stable/tutorials/2d/2d_movement.html): Examples of movement schemes and their implementation in Godot, not universal acceleration or speed values.
- [Maddy Thorson: Celeste & TowerFall Physics](https://www.mattmakesgames.com/articles/celeste_and_towerfall_physics/index.html): The original developer's account of movement, collisions and moving-platform interactions in those games.
- [Godot: CharacterBody3D](https://docs.godotengine.org/en/stable/classes/class_characterbody3d.html): Godot-specific behavior of a controlled 3D body, collisions and sliding.
