← Back to Godot · project planning pack

Skill · Version 1.0.0

Unity character feel

Tunes Unity movement, jumping and camera response together so controls feel predictable. Coordinates animation and physics and checks forgiving input timing, slopes and moving platforms.

unity-character-game-feel

Agents using this skill

See how it helps

When is it useful?

Use it when a character feels sluggish, jumps are difficult to time or the camera makes movement uncomfortable.

What does it help you do?

  • Keeps a jump press made shortly before landing available for a short, defined time, so the game can respond when the character touches the ground.
  • Tunes acceleration, stopping, turning and jump height together; animation and physics must not move the character in conflicting ways.
  • Checks slopes, moving platforms and different frame rates, including how the camera follows without unnecessary shaking.

Try asking this

Tune a Unity platformer where jump presses just before landing are often lost. Add a bounded input buffer, then compare stopping distance, jump height and camera response at different frame rates. Test slopes and a moving platform; the more forgiving input must not accidentally allow an extra airborne jump.

Detailed documentation

Read the skill’s original instructions, examples and checks in their authored language.

Details…Show less

Character Control and Game Feel

Establish the control loop

Identify the current input actions and update mode, movement owner (Rigidbody, CharacterController, custom motor or animation), camera update, collision geometry and target devices. Record the desired response and a baseline play scenario. Preserve the existing stack unless replacement is part of the task.

  • Sample input and consume it in the appropriate simulation loop. Buffer one-shot actions deliberately so an input edge is neither missed nor consumed twice. Handle action-map changes, focus loss, rebinding, gamepad dead zones and device switching where relevant.
  • Choose exactly one authority for position and rotation. Coordinate root motion, physics and navigation through that owner; do not let all of them write the transform independently.
  • Tune acceleration/deceleration, top speed, turn response, air control, gravity and jump height as a coherent set with declared units. Apply time steps consistently with the chosen integration method.
  • Add coyote time, jump buffering, variable jump height or aim assistance only where the intended feel calls for them. Name the timing windows and define how they expire across landing, pause, death and respawn.
  • Check grounded detection on slopes, steps, moving platforms and ledges. Distinguish the actual contact/physics state from animation parameters and account for platform motion.
  • Separate camera smoothing from gameplay authority. Check low/high frame rates, interpolation, camera obstruction and input latency. Respect motion-reduction preferences when adding shake, flashes or zoom effects.
  • Expose a small set of meaningful designer controls. Tune one variable at a time against the same scenario; avoid arbitrary presets presented as universally correct values.

Verify through play

Check keyboard/mouse and controller when supported, stable versus varying frame rates, slopes/edges, collisions, pause, rapid input and repeated respawn. Capture the tuning values and observations. If only source checks ran, say that responsiveness and subjective feel still require playtesting.

References: installed Input System documentation, project-version physics API docs and Steve Swink's Principles of Virtual Sensation. Use the latter as design principles, not as evidence for an unmeasured implementation.

Included files 1

  • SKILL.md