physics-tuning
Agent skill fromgamedev-skills/awesome-gamedev-agent-skills
Tune game physics for stable, good-feeling motion — fixed vs variable timestep, render interpolation, mass/gravity/drag, continuous collision detection (CCD) to stop tunneling, fixing jitter, and collision layers/masks. Engine-neutral. Use when the user mentions physics feel, jitter, tunneling, fixed timestep, FixedUpdate, CCD, bouncing/unstable physics, or collision layers.
How to install physics-tuning
install physics-tuning
# install the awesome-gamedev-agent-skills pack with the skills CLI
npx skills add gamedev-skills/awesome-gamedev-agent-skills# or add only this skill to Claude Code: copy the folder
skills/disciplines/physics-tuning/
# into
~/.claude/skills/physics-tuning/ (all projects)
.claude/skills/physics-tuning/ (one project)
1# Physics tuning23Most "bad physics" is not a bug in the engine — it's a mismatch between the4**fixed-timestep simulation** and the **variable-rate render loop**, or untuned5mass/drag/CCD/layer settings. This skill covers the engine-neutral knobs that6make physics stable and responsive; pair it with `godot-physics` or7`unity-physics` for the concrete APIs.89## When to use1011- Use when motion jitters, objects pass through walls (tunneling), stacks12 explode, or movement feels floaty/sticky/laggy.13- Use to decide what goes in the fixed (physics) step vs the render frame, and14 how to interpolate between them.15- Use to tune gravity, mass, drag, restitution, solver iterations, sleeping, and16 collision layers/masks.1718**When *not* to use:** for an engine's exact physics nodes/components and19collision callbacks, use `godot-physics` or `unity-physics`. For *movement20decisions* (when to jump, AI steering) use `input-systems` and `game-ai`. For21platformer jump-feel specifics like coyote time/jump buffering, that's input/22controller territory — see `input-systems` and the `platformer` genre.2324## Core workflow25261. **Run physics on a fixed timestep.** Simulate at a constant rate (e.g. 50–6027 Hz). A fixed `dt` makes the simulation deterministic-ish and stable; a28 variable `dt` makes integration and collisions inconsistent.292. **Put physics work in the physics callback**, not the render frame. Apply30 forces/velocities and read collisions in the fixed step (`FixedUpdate` /31…
Excerpt shown under the repository's Apache-2.0 license.
