# DGs zombie movement polish — 2026-10-30

The first movement refinement from [the production prompt](NextPolishPrompt.md) is implemented. The existing four imported rigs, Black survivor meshes, club layout, hit reactions and private four-player service are retained.

## Updated skills reviewed and applied

| Skill | Application in this pass |
| --- | --- |
| game-dev-playbook / shooter / rigging-animation | Focused refinement of approved gameplay; test real rigs, inspect visible output, separate measurements from authored tuning, update the review and lesson ledger. |
| game-ai | Separate navigation, movement and rendered animation. Reuse the bounded grid search already in co-op for solo. Cache replanning at 1.2 seconds. |
| fps-shooter | Keep co-op attack decisions and damage authoritative on the server. |
| game-feel | Preserve the existing hit and death layers without using them to decide damage. |
| threejs-gltf-loading | Keep one mixer per cloned rig; derive its playback from actual horizontal travel. |
| threejs-scene-setup / materials-lighting / performance-optimization | Reviewed for the upcoming visual phase; retain the pinned renderer and quality settings. No new lighting or performance claim in this slice. |
| ai-behavior-trees-utility-ai | Reviewed; the existing pursuit/attack/stagger/dead states are small enough that adding a behavior-tree framework is unnecessary. |

## Resulting behavior

- Walking stops advancing when the body stops, including against geometry and during attack/stagger. Limb injury slows both travel and the walk cycle.
- Both simulation and remote presentation turn along the shortest angular arc. Pursuit turns toward the path waypoint instead of snapping directly toward the player through a wall.
- Solo zombies use the shared bounded path search. The actual-world browser check follows an exterior zombie through the entrance to an interior target.
- A swipe commits its facing. Its contact check includes the forward cone and clear approach; moving behind the attacker during windup avoids damage. Co-op also retains the chosen target for the swing.
- Existing head, torso and leg responses, shot cancellation of swipes, and pose-continuous articulated deaths remain in place.

## Evidence and tuning grade

| Evidence | Result and scope |
| --- | --- |
| [Logic tests](../evidence/locomotion-tests.tap) | 45 pass: combat, handling, client races, server authority, turning and path routing. |
| [Actual-model locomotion](../evidence/locomotion-model-checks.json) | 20 pass across Foxx, Reese, Honey Bunny and Giselle: stop, pursuit, injury, attack commitment and evasion. |
| [Existing reaction regressions](../evidence/animation-checks.json) | 64 pass across the four actual GLBs. |
| [Four-session HTTP integration](../evidence/coop-http-checks.json) | 13 pass on the local co-op server; this is not four-human Internet play. |
| [Browser checks](../evidence/locomotion-browser-checks.json) | 52 pass in the actual local game, including crossing the façade through the doorway. |
| [Visible rig inspection](../evidence/locomotion-review.png) | Actual Foxx rig in a neutral-light developer fixture, paused during a swipe after pursuit. This is not ordinary gameplay footage. |

**Measured:** the test outcomes above and inspected runtime behavior. **Sourced:** Three.js [AnimationMixer](https://threejs.org/docs/pages/AnimationMixer.html) supports a per-object animation clock and a zero time scale for pausing. **Authored, not measured COD constants:** turn cap 3.4 radians/second, forward-cone dot threshold 0.45, walk playback calibration 0.7 / 0.82, cap 2.6, and 1.2-second path replanning.

## Limits and next work

This is travel-driven playback, not foot IK. A paused walk can hold a mid-stride stance; foot placement, foot sliding, turn-in-place clips and transitions still need authored animation work. The four-way grid can produce square corners. This pass does not establish COD-equivalent fidelity, exact reference timing, device performance or Internet latency. The fixture is a local development tool, while the published review includes its capture and reports.

The larger visual phase in the prompt remains ahead: coordinated first-person hands and weapon animation, a reference-led DGs entrance-to-club art slice, PBR materials, motivated lighting and spatial sound. No new paid generation or installation was used for this movement pass.

The reusable lesson and applied-ledger entry were saved in the installed game-dev-playbook. That installed directory has no Git metadata, so those skill changes were not pushed to its upstream repository.
