Design Diary: Character Movement #1


Designing a 2D Platformer Character Controller

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:

  • Walking feels deliberate and consistent.
  • Jumping is responsive but weighted, with variable height and coyote time. 
  • Dashing adds burst mobility while maintaining control. Climbing and vertical traversal feel precise and intentional.

The player’s movement is designed to be intuitive yet skillful, rewarding exploration and encouraging engagement with level design.

Core design goals

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.

  1. Grounded, Tactile Movement: Movement should feel deliberate and weighted, giving players a sense of mass and presence in the world. 
  2. Exploration-Focused Abilities (jump, dash, climb): should facilitate navigating the environment, revealing verticality and hidden areas. 
  3. Controlled Pace: Walking is deliberate; no sprinting, ensuring exploration feels intentional and platforming remains precise. 
  4. Responsive Feedback: Visual and physical cues—camera zoom, impulse effects, and velocity changes—communicate consequences of movement. 
  5. Modularity: Each movement ability (walk, jump, dash, climb) is implemented in a modular way to allow fine-tuning and independent balancing. 
  6. Intuitive Controls: Player input should feel natural and consistent, using Unity’s Input System for smooth mapping across all actions. 
  7. Precise Platforming: Tight, predictable controls that reward skillful timing without being overly twitchy. 
  8. Dynamic Environmental Interaction: Player movement integrates with level design features like ladders, drop-through platforms, and physics-based obstacles. 
  9. Player Agency and Consequence: Every action, falling, jumping, dashing, has a clear effect on the player and world, supporting deliberate gameplay decisions.
  10. Playtesting-Driven Balancing: Values for speed, acceleration, jump height, dash duration, and cooldowns are tuned iteratively to feel right in the context of level design.

Mechanical Requirements

The character controler must support the following core abilities and features:

  1. Walking: Smooth, weighty horizontal movement with acceleration and deceleration.
  2. Jumping: Variable height, coyote time, fall-through platforms, and ground detection.
  3. Dashing: Short bursts of high-speed movement with gravity control and cooldowns.
  4. Climbing: Vertical movement on ladders with snapping to tilemap positions.
  5. Camera Feedback: Zoom and impulse effects reacting to movement and falls.
  6. Player Input: Integration with Unity’s Input System for movement, jump, dash, climb, and interactions.
  7. Collision Handling: Ground detection, platform drop-through, and ladder detection.
  8. Physics Integration: Rigidbody2D-based velocity control with gravity modifiers.

Mechanical requirementDesign ConsiderationNotes
WalkingDeliberate, controlled movement; tight platformingRigidbody2D with acceleration/deceleration curves; no sprinting to enforce pace
JumpingResponsive but weighted; variable height; forgiving timingCoyote time, jump hold multiplier, ground check via OverlapCircle, fall-through platform support
DashingBurst mobility; responsive; visually communicatedDash curve (AnimationCurve), gravity disabled during dash, cooldown timer, Cinemachine zoom feedback
ClimbingVertical exploration; precise controlTilemap-based ladder detection, smooth snapping to tile centers, gravity disabled while climbing
Camera FeedbackPlayer movement feels impactful; weight communicated visuallyCinemachineImpulseSource for landings/falls; smooth zoom adjustments during dash or vertical movement
Player InputIntuitive and responsive controlsUnity Input System actions for move, jump, dash, climb, interact; ensures modular input handling
Collision HandlingAvoid unintentional falls; allow intentional drop-throughLayerMask checks for ground, climbable objects, and drop-through platforms
Physics IntegrationMovement feels grounded and realisticRigidbody2D velocity control; fall multiplier; low jump multiplier; smoothing via acceleration/deceleration curves

Leave a comment

Log in with itch.io to leave a comment.