2D Platformer – Player Movement System

2D Platformer – Player Movement System

A robust player controller system for a 2D platformer, featuring running, jumping, wall climbing, dashing, and physics-driven mechanics.

3 min read
Published September 5, 2025
Unity
C#
Game Dev
2D Platformer
Mechanics

Overview

The Player Movement System is the foundation of my 2D platformer project. It provides smooth and responsive controls for the main character, including basic locomotion, jumping, wall climbing, dashing, and interaction with platforms. The system was designed iteratively: starting from simple left–right movement and gradually expanding into advanced mechanics like wall sliding, wall jumping, dashing with cooldowns, and platform dropping.

Cinemachine and follow cameras ensure the player always remains in the center of the frame, while visual effects (smoke, trails, speed boosts) and animations (idle, run, jump, wall climb) bring the movement system to life.

Development and Gameplay

  • Basic Movement: Horizontal walking and running with directional flip logic.
  • Jumping System: Multi-jump (double jump), early jump cancellation, and grounded reset.
  • Wall Mechanics: Wall sliding with controlled descent, and timed wall jumps that push the player away from walls.
  • Dash Ability: Directional dash with trail effects, cooldowns, and temporary collision ignoring for smooth transitions.
  • Platform Drop: Temporary collider disabling allows the player to pass through one-way platforms.
  • Gravity Handling: Custom fall speeds and maximum velocity capping ensure precise platformer feel.
  • Temporary Boosts: Integration with power-ups like speed boosts, with feedback through particle systems.
  • Animation Sync: Animator parameters are updated every frame to reflect velocity, wall state, and actions.

Sprites & Visuals

Visual Evolution — Before vs After

The transformation from the early prototype to the polished build shows how much the overall look and feel improved.

Early Prototype

The early prototype had a very rough interface with placeholder art, minimal backgrounds, and basic text-based UI. It mainly focused on getting mechanics right rather than presentation.

Old Game Screenshot

Polished Build

The polished build introduced styled menus, refined pixel art, consistent color palettes, and smoother animations — resulting in a more cohesive and professional look.

Final Game Screenshot

Here are the main sprites used in the Player Movement System:

Idle Animation

The idle animation gives life to the character when standing still. Subtle breathing movements make the player feel grounded in the world even when no input is given.

Idle Sprite

Run Animation

The run animation is synced with the player’s horizontal velocity. It combines dust particles for a sense of speed, making movement responsive and visually satisfying.

Run Sprite

Jump Animation

The jump sprite emphasizes vertical lift with stretched poses, paired with smoke particles at takeoff to enhance impact.

Jump Sprite

Wall Climb / Slide

The wall slide animation shows the character gripping the wall while slowly sliding down, paired with sparks and friction-like effects for feedback.

Wall Slide Sprite

Future Scope

  • Refined wall jumping with coyote time.
  • Attack/movement integration.
  • Dynamic camera zoom and parallax.
  • ScriptableObjects for movement configs.
  • Accessibility features like auto-grab walls or unlimited jumps.

Play Demo

Play on Itch.io (link)