Clamp the rise
Sphere sweeps cap the target height below a roof, so the run preserves forward momentum without pushing the capsule through geometry.
The authored feel of a rising wallrun, protected by live surface checks.
A Prince of Persia: The Sands of Time-inspired traversal system with a tunable arc, adaptive surface safety, curved-wall support and designer controls that never require code.
Recreate the rising, momentum-led feel of the Sands of Time wallrun without letting its arc drive the player into ceilings, off wall tops or through irregular geometry, then turn it into a reliable component that designers can reshape entirely from the Inspector.
I first built the mechanic in Unreal, then recreated and expanded it in Godot for Zero Protocol. The reference was the wallrun in Prince of Persia: The Sands of Time. What made that movement memorable was not simply travelling sideways along a surface. The character rose and fell through a visible arc, turning the wall into a brief continuation of the jump.
A flat wallrun worked mechanically but read like sliding. The parabolic arc made it feel like momentum. The player attaches while airborne, travels forward in their existing direction, crests above the attach point and descends into an authored exit. There is no wallrun button or special mode: jump toward a valid wall while moving along it and the world catches you.
Once the arc felt right, it started breaking against real levels. Under a roof, the curve drove the player into the ceiling. Near the top of a wall, the upper-body samples lost the surface and ended the run at exactly the moment the player expected to flow onto the ledge. Segmented walls produced false detachments, while corners and curved surfaces could redirect or strand the player.
Removing the arc would have removed the feel I was trying to preserve. The solution was to keep the authored curve as the intention, then let the component negotiate that intention with the surrounding geometry every frame.
Sphere sweeps cap the target height below a roof, so the run preserves forward momentum without pushing the capsule through geometry.
Look-ahead probes recover the top surface and a last-safe-height cache prevents noisy samples from kicking the player out of the run.
A 0.12-second grace window bridges shallow gaps and segmented facades, detaching only when the surface has genuinely ended.
The component can be restricted to surfaces tagged for wallrunning or allowed to evaluate any valid wall. Zero Protocol uses the authored option so level designers decide exactly where the verb exists, but the policy is one Inspector switch rather than a code fork.
Curved-wall support can also be enabled or disabled. With it on, the wall normal is resampled fifteen times per second and the travel direction follows the changing surface. Convex tanks, concave barriers and round industrial structures become usable traversal space. Distance-adaptive magnetism closes the attachment gap without a visible first-frame yank, keeping the player held to the surface while the direction changes.
In Godot, a single WallRunComponent owns detection, arc physics, surface safety, wall-jump math and exit reasons. Thin state-machine states handle animation and transitions for the unarmed and melee stances, so the mechanic behaves identically whether Ryker has a weapon drawn or not. Every airborne state quietly polls for a runnable surface, which makes attachment feel systemic rather than command-driven.
The component emits start, end and wall-jump signals for audio, VFX, camera response, scoring and progression. Those systems can react without being coupled to the movement code.
The system has grown from one specific wallrun into a configurable traversal framework. A designer can create a short, flat tactical run, a long rising set piece, a sprint-gated skill check or an unlimited chaining route without touching the script.
The component does not have one generic detach. A player-initiated wall jump keeps full control and can catch the next wall. Completing the distance produces an up-and-away dismount. Reaching a wall top pushes onto the surface and hands off to the mantle system. A forward blocker becomes a readable rebound, a ceiling clamps the rise before exit, and reaching the floor transitions directly into grounded movement.
That exit taxonomy gives animation, sound and follow-up states a stable design surface. More importantly, it means the system preserves momentum even when the environment forces the ideal path to change.
The wallrun is now one third of Zero Protocol's high-flow movement kit alongside dash and mantle. It is used on the M1S1 critical path, where the player jumps from a vehicle roof, runs a billboard face and lands beyond a blockade. From there it supports alternate routes, vertical ascent chains, curved industrial set pieces, combat flanks and arena mechanics that turn the floor into a temporary hazard.
The important result is reliability. The move began as an attempt to recreate one specific arc. It became a flexible, surface-aware component that protects that feel across real geometry and gives level designers control over where the verb exists and what each run asks of the player.
I can take a feature from intent and diagrams through implementation, iteration and balance.