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.
- Grounded, Tactile Movement: Movement should feel deliberate and weighted, giving players a sense of mass and presence in the world.
- Exploration-Focused Abilities (jump, dash, climb): should facilitate navigating the environment, revealing verticality and hidden areas.
- Controlled Pace: Walking is deliberate; no sprinting, ensuring exploration feels intentional and platforming remains precise.
- Responsive Feedback: Visual and physical cues—camera zoom, impulse effects, and velocity changes—communicate consequences of movement.
- Modularity: Each movement ability (walk, jump, dash, climb) is implemented in a modular way to allow fine-tuning and independent balancing.
- Intuitive Controls: Player input should feel natural and consistent, using Unity’s Input System for smooth mapping across all actions.
- Precise Platforming: Tight, predictable controls that reward skillful timing without being overly twitchy.
- Dynamic Environmental Interaction: Player movement integrates with level design features like ladders, drop-through platforms, and physics-based obstacles.
- Player Agency and Consequence: Every action, falling, jumping, dashing, has a clear effect on the player and world, supporting deliberate gameplay decisions.
- 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:
- Walking: Smooth, weighty horizontal movement with acceleration and deceleration.
- Jumping: Variable height, coyote time, fall-through platforms, and ground detection.
- Dashing: Short bursts of high-speed movement with gravity control and cooldowns.
- Climbing: Vertical movement on ladders with snapping to tilemap positions.
- Camera Feedback: Zoom and impulse effects reacting to movement and falls.
- Player Input: Integration with Unity’s Input System for movement, jump, dash, climb, and interactions.
- Collision Handling: Ground detection, platform drop-through, and ladder detection.
- Physics Integration: Rigidbody2D-based velocity control with gravity modifiers.
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 |
Going Solo
What Remains Must Wake
Status | Prototype |
Author | NimueS |
Genre | Platformer |
More posts
- Devlog #314 hours ago
- Design Diary: Character Movement #514 hours ago
- Design Diary: Character Movement #414 hours ago
- Design Diary: Character Movement #314 hours ago
- Design Diary: Character Movement #214 hours ago
- Devlog #114 hours ago
- Devlog #214 hours ago
- Design Diary: Tile-Based Inventory System #514 hours ago
- Design Diary: Tile-Based Inventory System #414 hours ago
Leave a comment
Log in with itch.io to leave a comment.