Grapple Platformer Prototype

A 2D action platformer prototype exploring custom physics-driven movement

Role
Solo Developer - Design & Engineering
Engine
Unity 2D (C#)
Status
Ongoing prototype

Play it: itch.io | Source Code



Design Intent

Three abilities (grapple tendril, shotgun recoil, wall adhesion), each distinct in use, all interconnected in play. The design question is about how many interesting ways a player can chain these through a given space. The skill ceiling is spatial reading and creative routing. The prototype exists to test whether that's actually fun. It is.


Key Design Decisions

Custom physics over Unity's built-ins

Unity's built-in drag and friction assume the player stops when they stop inputting. I prototyped with the defaults first and momentum died at exactly the moments it should have felt best.

Built a physics-assist layer instead, running in FixedUpdate after the physics step. It reads the simulation result, applies corrections only when clearly wrong, and leaves everything else untouched. Base move speed 12 units/s, global cap 32 (3x headroom, intentionally). Ground acceleration 80, air control 20. The asymmetry makes airborne trajectories feel committed, not trivially correctable.

The grapple system

Custom pendulum simulation, not a Unity joint. On attach, it records rope length as Euclidean distance to the anchor. Each FixedUpdate decomposes velocity into radial and tangential components, damps radial toward zero, and preserves tangential as swing arc. Swing damp is 1.002, fractionally above 1.0 to counteract floating-point losses and make the pendulum feel nearly lossless. Range is 20 units, which forces players to position into swing angles rather than latching from anywhere.

Dynamic rope retraction. At speed mid-chain, the player often arrives at the anchor with inward radial velocity. In a fixed-length pendulum that goes slack, killing momentum right when it should compound. The fix: rope length retracts dynamically to match the player's actual position, keeping the tether taut and converting inward velocity into angular momentum at the tighter radius. The ice-skater effect, applied reactively. The grapple isn't a rope, it's the symbiote extending itself. A rope goes slack; a symbiote contracts. The physics necessity became the thing that makes it feel alive.

The shotgun as primary propulsion

Impulse at 18 force, stronger than jump force (14). The shotgun is the primary propulsive tool, not a weapon with a movement side effect. While grappling, impulse adds directly to velocity as a swing accelerator mid-arc. While grounded or airborne, it triggers a timed dash (0.3s, 4 units, max 15 units/s). The 1.6s cooldown enforces the rhythm: grapple, fire on the swing, reload, repeat.

Tradeoffs

↑↓ navigate ↵ open esc close ⌘K toggle