A tether mechanic replaces or supplements jumping; player swings, pulls, or zip-lines to destinations.
Bionic Commando grapple: no jumping — fire the arm to an anchor, swing across the gap on the tether, then release at the top of the arc to land.
Finds the anchor. Aim it where the player points; if it hits a grappleable surface, that collision point becomes the tether anchor.
$Aim.target_position = aim_dir * MAX_RANGE
if $Aim.is_colliding():
attach(get_node("Aim").get_collision_point())The physical swing. Connect a RigidBody2D player to a static anchor; the spring length and stiffness give you Bionic-Commando arc and recoil for free.
var j = DampedSpringJoint2D.new()
j.length = rope_len
j.stiffness = 20.0
j.node_a = player.get_path()
add_child(j)Draws the rope. Update its two points each frame — player position to anchor — so the visible cable tracks the physics.
func _process(_d):
$Rope.points = [Vector2.ZERO, to_local(anchor_point)]In short: RigidBody2D with joint constraint, or manual arc/angle math on velocity; grapple point detection
4 catalogued game(s) use this mechanic, spanning 1988–1995.
▶ Explore Grapple Traversal interactively — see every game + the Godot system