1bf5b526be
Work-Package: M02-QAR-INTEGRATOR-CLOSEOUT-001 Agent: sindo-main-codex Tests: all M02 contracts, renderer dry-run, documentation and coordination gates passed Fidelity: direct binding evidence and reference-only timing/routing are separated; remaining locomotion/camera gaps stay explicit
75 lines
4.4 KiB
Markdown
75 lines
4.4 KiB
Markdown
# M02 — Player Decomposition
|
||
|
||
<!-- OPENWC_TARGET:DONE -->
|
||
<!-- OPENWC_TARGET_DONE:M02:work/sindo-main-codex/m02-integrator-closeout:2026-07-15 -->
|
||
|
||
## Outcome
|
||
|
||
Разделить тестового player controller на input, movement, camera, terrain query и presentation без изменения наблюдаемого поведения.
|
||
|
||
## Steps
|
||
|
||
- [x] Заменить hardcoded keys на remappable Input Map actions с профилем 3.3.5a.
|
||
- [x] Выделить `PlayerInputSource → MoveIntent`.
|
||
- [x] Выделить local movement state/controller.
|
||
- [x] Выделить `TerrainQuery` и убрать прямой ADT parsing из player.
|
||
- [x] Выделить third-person camera rig и camera collision policy.
|
||
- [x] Выделить character appearance и animation presenters.
|
||
- [x] Оставить sprint/flight debug-функции только в sandbox profile.
|
||
- [x] Добавить movement/camera state tests и regression scene.
|
||
|
||
## Fidelity evidence
|
||
|
||
Скорости, повороты, jump/fall/swim/fly, camera orbit/zoom и input semantics сверяются с клиентом 3.3.5a. Debug sprint не считается gameplay parity.
|
||
|
||
## Exit criteria
|
||
|
||
Каждый компонент заменяем независимо; sandbox управляется не хуже baseline; gameplay logic не загружает визуальные assets.
|
||
|
||
## Evidence
|
||
|
||
- Date: 2026-07-15
|
||
- Revision/worktree: merged master `eb122d5`; closeout
|
||
`work/sindo-main-codex/m02-integrator-closeout`.
|
||
- Commands: `verify_player_input.gd`; `verify_local_player_movement.gd`;
|
||
`verify_player_movement_capabilities.gd`; `verify_terrain_query.gd`;
|
||
`verify_third_person_camera_rig.gd`; `verify_character_presentation.gd`;
|
||
`verify_coordinate_conversion_boundaries.gd`; `verify_streaming_focus.gd`;
|
||
`tools/run_render_baseline.ps1 -DryRun`; documentation, coordination and
|
||
diff-hygiene gates.
|
||
- Results: input PASS (`16` actions, `9` intent cases, `3` profiles, one
|
||
provenance fixture, `3` real-scene cases); movement PASS (`15` cases, `2`
|
||
state transitions); profile capabilities PASS (`3` profiles, sprint/flight
|
||
allow/reject and `2` scenes); terrain PASS (`4` contract, interpolation,
|
||
cache and `2` failure cases); camera PASS (`12` state and `3` policy cases);
|
||
presentation PASS (`9` appearance and `10` animation cases across `3`
|
||
scenes); coordinate boundary PASS (`103` files, `5` consumers); StreamingFocus
|
||
PASS (`2` runtime scenes, `3` capture tools). Renderer dry-run passed project,
|
||
material, dedupe and shutdown gates, manifest `7/7/7`, calibration maximum
|
||
error `0.000015`, server-spawn renderer and all seven planned checkpoints.
|
||
- Fidelity comparison: selected build-12340 default bindings are direct private
|
||
observations pinned by `DefaultBindings.wtf` SHA-256
|
||
`35FFA0E4E2356A13A0633A848F9E57ABE7DF9D8A16C2245E15D33013AD2F56A5`
|
||
and `Bindings.xml` SHA-256
|
||
`2E01276AFB7462F1417710F13B4BF1A456341F7F28CC8AE0D6D9C7442D7F6793`;
|
||
only sanitized selected facts are committed. `3.141594` rad/s keyboard turn
|
||
is pinned to TrinityCore 3.3.5 revision
|
||
`2853a621d6af91a803787a2b8a509f4ce3e0300d`; right-mouse A/D strafe routing
|
||
is supported by WoWee revision `626243e937fb93965fa583a6507ed5a1aa7dda4b`.
|
||
These two sources are compatibility references, not direct client timing/
|
||
conditional-behavior proof. Translation speeds and camera values remain
|
||
sandbox regression baselines rather than original-client parity evidence;
|
||
jump/fall/swim/fly gameplay is not implemented by this decomposition target.
|
||
Debug sprint/free flight is proven unable to execute in `Blizzlike335`.
|
||
- Changed files: typed input intent/actions/source, local movement/capabilities,
|
||
terrain query, camera rig/collision policy, character appearance/animation
|
||
presenters, player composition, Input Map configuration, asset-free regression
|
||
scenes, sanitized input fixture, M02 verifiers, module specifications and M02
|
||
coordination claims.
|
||
- Remaining risks: direct build-12340 timing evidence for movement/camera,
|
||
jump/fall/swim/fly, autorun, left-button camera/select behavior, active camera
|
||
collision, terrain slopes/holes/liquids, persisted keybindings, server authority,
|
||
prediction and reconciliation remain for M09/M10/M12. Runtime renderer scenes
|
||
continue to default to explicit `RenderSandbox` until an application shell
|
||
selects `Blizzlike335`. M02 makes no complete `1:1` compatibility claim.
|