37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
# M02 — Player Decomposition
|
||
|
||
<!-- OPENWC_TARGET:OPEN -->
|
||
|
||
## Outcome
|
||
|
||
Разделить тестового player controller на input, movement, camera, terrain query и presentation без изменения наблюдаемого поведения.
|
||
|
||
## Steps
|
||
|
||
- [ ] Заменить hardcoded keys на remappable Input Map actions с профилем 3.3.5a.
|
||
- [ ] Выделить `PlayerInputSource → MoveIntent`.
|
||
- [ ] Выделить local movement state/controller.
|
||
- [ ] Выделить `TerrainQuery` и убрать прямой ADT parsing из player.
|
||
- [ ] Выделить third-person camera rig и camera collision policy.
|
||
- [ ] Выделить character appearance и animation presenters.
|
||
- [ ] Оставить sprint/flight debug-функции только в sandbox profile.
|
||
- [ ] Добавить 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:
|
||
- Revision/worktree:
|
||
- Commands:
|
||
- Results:
|
||
- Fidelity comparison:
|
||
- Changed files:
|
||
- Remaining risks:
|