Player movement uses accumulated velocity that persists between frames; intentional momentum management is a core skill.
Sonic-style momentum: speed built rolling down the slope carries the hero up the far side, overshooting where a stop-on-a-dime character would halt.
Kinematic body for player-driven movement. You own the velocity vector and ramp it yourself — that acceleration/friction ramp is the momentum the player feels.
# Ease toward target speed instead of snapping — the ramp IS the momentum
velocity.x = move_toward(velocity.x, dir * SPEED, ACCEL * delta)
move_and_slide()Full physics body. The engine integrates momentum for you; you only apply forces and impulses and let mass, gravity, and damping carry the motion.
# You push; the solver integrates the momentum
apply_central_impulse(Vector2(THRUST, 0)) # one-off kick
constant_force = Vector2(0, GRAVITY) # sustained pushA resource you attach to a body or collider to tune how momentum behaves on contact — friction (slipperiness) and bounce (elastic rebound).
var mat := PhysicsMaterial.new()
mat.friction = 0.2 # low = slippery, ice-like
mat.bounce = 0.8 # high = elastic rebound
$RigidBody2D.physics_material_override = matIn short: Velocity accumulation in _physics_process(); no snap-to-grid; inertia requires deliberate deceleration input
30 catalogued game(s) use this mechanic, spanning 1986–1996.
▶ Explore Physics Momentum interactively — see every game + the Godot system