Saparkour: Evolution (V2)

Traversal Systems | Custom Rigidbody Controller | Grapple Mechanics | Level Design

Play The Game →

Summary


Saparkour: Evolution is a ground-up rebuild of the original Saparkour that explores a new movement model based on momentum-driven traversal. Instead of jump commitment, the player controls a spherical frog that accelerates through player input and maintains speed through careful steering and drifting.

The project focuses on physics-driven movement, expressive routing through bouncing and shortcuts, and a fully rebuilt grappling system capable of rope wrapping and interaction with moving platforms.


Project Details


1 large handcrafted level divided into 5 traversal sections
Momentum-based custom Rigidbody character controller
Drift system enabling sharp turns while preserving speed
Expanded bounce system allowing rebounds on both walls and floor surfaces
Fully rebuilt grappling system with rope wrapping mechanics
Grappling compatible with moving platforms
Rope system implemented using dynamic rope-point lists
Custom rotation and rolling system driven by player velocity
Multiple shortcuts and branching traversal paths enabling emergent routing


Team and Time


Team Size: 1 (Solo project)
Time: 2 weeks
Developed in parallel with FIEA capstone production.


Goals


The goal of Saparkour: Evolution was to revisit the original Saparkour concept after one semester at FIEA and explore how my technical design skills had evolved. Rather than iterating on the existing prototype, I rebuilt the project from scratch with a new movement model and a stronger focus on system architecture and code clarity.

The primary objective was to design a physics-driven traversal system based on momentum and drifting, supported by a fully custom Rigidbody controller and a redesigned grappling system. I also experimented with spline-based level construction to better support the new movement style and allow for smoother traversal routes and shortcuts.

Development took place over three weeks while working in parallel with capstone production. Most of the development time was dedicated to refining the character controller and traversal systems, while the final week focused on building a large demonstration level that showcases the mechanics and possible routes through the environment.


Systems


Momentum Movement System

Custom Rigidbody-based character controller built around momentum traversal
Player acceleration driven by directional input
Velocity-preserving movement encouraging speed maintenance and routing decisions
Expanded bounce system allowing rebounds on both walls and floor surfaces
Physics interactions designed to support emergent movement strategies

Drift System

Custom drift manager manipulating Rigidbody velocity vectors
Separates forward velocity from lateral velocity components
Dampens forward speed while redirecting side velocity to enable sharp turns
Visual drift feedback implemented through mesh tilt and yaw adjustments
Designed to preserve player speed while enabling precision steering
Particle system and sound effects enhance feedback

Grapple System

Spring-joint based grappling mechanic integrated with the physics controller
Rope wrapping implemented through dynamic rope-point list
Spherecasts detect geometry intersections and insert new rope corner points
Grapple anchors stored in local space and updated to support moving platforms
Rope path recalculated dynamically to maintain stable physics behavior

Rotation and Rolling System

Mesh rotation decoupled from physics body to support ball-like traversal visuals
Character roll calculated from forward velocity to simulate rolling motion
Rotation manager aligns player facing direction with velocity or grapple target
Drift visual feedback applied through controlled yaw offsets

Spline-Based Level Traversal

Level paths structured using spline-based traversal routes
Designed to support momentum-based movement and drifting turns
Allows flexible track shaping and shortcut opportunities
Enables rapid iteration of traversal paths during level design

Technical Challenge: Rope Wrapping and Moving Grapple Anchors

Saparkour: Evolution rebuilt the grappling system from scratch using a fully custom Rigidbody-based character controller. While this allowed much more control over the traversal mechanics, it introduced a new challenge: supporting rope behavior that could both wrap around geometry and remain attached to moving objects.

In the original Saparkour prototype, the grappling tongue could only connect directly to a target point. If geometry blocked the line between the player and the grapple anchor, the grapple would stop.

For the new version, I wanted the rope to behave more naturally by wrapping around obstacles and by remaining attached to moving platforms while the player was grappling — requiring dynamic rope path updates each frame while keeping the physics interaction stable.

Solution

I implemented a rope system based on a dynamic list of rope points representing the corners of the rope path between the player and the grapple anchor.

Each frame, the system performs spherecasts along the rope path to detect geometry intersections. When the rope intersects a surface, a new corner point is inserted into the rope path, allowing the rope to wrap naturally around the obstacle.

If the player moves in a way that removes the obstruction, the system detects the clear path and removes the corresponding corner point, effectively "unwrapping" the rope.

To support grappling onto moving platforms, rope anchor points are stored in the local space of the object they are attached to. Their world position is recalculated on update, ensuring the rope remains attached correctly even when the platform moves.

Outcome

This system enabled the grappling mechanic to support more complex traversal scenarios, including swinging around corners and grappling onto moving platforms without breaking the rope simulation.

Beyond improving gameplay feel, the solution reinforced the importance of building traversal systems that can dynamically adapt to changing world geometry and physics interactions.


Full Gameplay