Posted October 14, 2025 by NimueS
From the outset, the goal of the player controller was to feel grounded and tactile. The game is designed around exploration and light platforming, so every movement decision needed to convey a sense of weight and consequence. The player doesn’t sprint; movement is deliberate, emphasizing careful navigation of the environment.
Every ability, walking, jumping, dashing, and climbing, was designed not only to allow movement but also to communicate feedback to the player. The camera reacts dynamically through Cinemachine zoom and impulse feedback, providing subtle cues about momentum, height, and impact. The controller is structured around a Rigidbody2D-based system, with modular handling of each ability. This modularity ensures that:
The player’s movement is designed to be intuitive yet skillful, rewarding exploration and encouraging engagement with level design.
When designing the character controller everything should tie back into the main mechanic of using the backpack. While traversal should feel smooth and fluid the key feature of the game is the tile-based inventory system. The movement therefore, should be simple and un-obtrusive. The player should be able to pick it up very quickly and not worry about complicated or weird controls.
The character controler must support the following core abilities and features:
Mechanical requirement | Design Consideration | Notes |
Walking | Deliberate, controlled movement; tight platforming | Rigidbody2D with acceleration/deceleration curves; no sprinting to enforce pace |
Jumping | Responsive but weighted; variable height; forgiving timing | Coyote time, jump hold multiplier, ground check via OverlapCircle, fall-through platform support |
Dashing | Burst mobility; responsive; visually communicated | Dash curve (AnimationCurve), gravity disabled during dash, cooldown timer, Cinemachine zoom feedback |
Climbing | Vertical exploration; precise control | Tilemap-based ladder detection, smooth snapping to tile centers, gravity disabled while climbing |
Camera Feedback | Player movement feels impactful; weight communicated visually | CinemachineImpulseSource for landings/falls; smooth zoom adjustments during dash or vertical movement |
Player Input | Intuitive and responsive controls | Unity Input System actions for move, jump, dash, climb, interact; ensures modular input handling |
Collision Handling | Avoid unintentional falls; allow intentional drop-through | LayerMask checks for ground, climbable objects, and drop-through platforms |
Physics Integration | Movement feels grounded and realistic | Rigidbody2D velocity control; fall multiplier; low jump multiplier; smoothing via acceleration/deceleration curves |