архитектура и цели для агентов
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# M00 — Renderer Baseline
|
||||
|
||||
<!-- OPENWC_TARGET:ACTIVE -->
|
||||
|
||||
## Outcome
|
||||
|
||||
Получить воспроизводимую точку отсчёта текущего renderer до архитектурной декомпозиции.
|
||||
|
||||
## Steps
|
||||
|
||||
- [ ] Зафиксировать версию Godot, backend, hardware/profile и cache state.
|
||||
- [ ] Выбрать контрольные позиции: terrain, ADT boundary, dense M2, large WMO, liquid, animated M2, sky transition.
|
||||
- [ ] Объединить существующие renderer smoke scripts в документированный запуск без изменения visual behavior.
|
||||
- [ ] Снять deterministic screenshots и metadata для каждой позиции.
|
||||
- [ ] Записать cold/warm показатели frame time p50/p95/p99, max hitch, memory, queues и load time.
|
||||
- [ ] Зафиксировать cache format versions и правила invalidation.
|
||||
- [ ] Добавить regression manifest, не содержащий proprietary assets.
|
||||
- [ ] Обновить `RENDER.md` ссылкой на baseline и известные расхождения с клиентом 3.3.5a.
|
||||
|
||||
## Fidelity evidence
|
||||
|
||||
- Сравнить контрольные сцены с оригинальным клиентом 3.3.5a при максимально совпадающих map position, time и weather.
|
||||
- Каждое видимое расхождение зарегистрировать: terrain/material, placement, animation, lighting, liquid или culling.
|
||||
- Baseline не объявляет parity; он создаёт измеримый список gap.
|
||||
|
||||
## Verification
|
||||
|
||||
```powershell
|
||||
godot --headless --path . --quit
|
||||
godot --headless --path . --script res://src/tools/verify_render_materials.gd
|
||||
godot --headless --path . --script res://src/tools/verify_m2_unique_dedupe.gd
|
||||
godot --headless --path . --script res://src/tools/capture_render_checkpoints.gd -- --dry-run --wait 0.1
|
||||
```
|
||||
|
||||
## Exit criteria
|
||||
|
||||
Один документированный запуск создаёт отчёт baseline; контрольные точки воспроизводимы; gaps и budgets записаны; последующий refactor можно объективно сравнить.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
@@ -0,0 +1,37 @@
|
||||
# M01 — Coordinates and Architecture Seams
|
||||
|
||||
<!-- OPENWC_TARGET:OPEN -->
|
||||
|
||||
## Outcome
|
||||
|
||||
Ввести независимые от scene tree типы координат, identity и streaming focus.
|
||||
|
||||
## Steps
|
||||
|
||||
- [ ] Создать domain/value-object слой без `Node`/`Resource` dependencies.
|
||||
- [ ] Определить canonical WoW, Godot, ADT tile/chunk и local coordinate types.
|
||||
- [ ] Реализовать единственный `CoordinateMapper` для position и orientation.
|
||||
- [ ] Собрать golden points из ADT, server spawn и оригинального клиента.
|
||||
- [ ] Ввести `StreamingFocus` вместо неявной зависимости от active Camera3D.
|
||||
- [ ] Ввести stable `ContentId`, `EntityId` и отличить их от WoW GUID/server entry.
|
||||
- [ ] Запретить ручные axis conversion через code review rule/test search.
|
||||
|
||||
## Verification
|
||||
|
||||
- Unit round-trip и boundary tests для всех coordinate spaces.
|
||||
- Golden server spawn отображается в ожидаемой точке renderer.
|
||||
- Existing render checkpoints не ухудшились.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
Renderer/test scene получают focus через контракт; координаты конвертируются централизованно; domain tests работают headless без сцены.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
@@ -0,0 +1,36 @@
|
||||
# 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:
|
||||
@@ -0,0 +1,35 @@
|
||||
# M03 — Renderer Facade and Safe Extraction
|
||||
|
||||
<!-- OPENWC_TARGET:OPEN -->
|
||||
|
||||
## Outcome
|
||||
|
||||
Закрыть монолитный streamer стабильным API и постепенно извлечь тестируемые подсистемы без rewrite.
|
||||
|
||||
## Steps
|
||||
|
||||
- [ ] Ввести `WorldRenderFacade` для focus, environment, entity visuals, ground query и metrics.
|
||||
- [ ] Запретить gameplay/editor доступ к внутренним очередям streamer.
|
||||
- [ ] Извлечь pure `StreamingTargetPlanner`.
|
||||
- [ ] Извлечь `RenderBudgetScheduler` с bounded queues/cancellation.
|
||||
- [ ] Затем извлекать terrain, M2, WMO и liquid services по одному.
|
||||
- [ ] Сохранить cache versioning и main-thread GPU finalization rules.
|
||||
- [ ] Добавить dependency и performance regression checks.
|
||||
|
||||
## Fidelity evidence
|
||||
|
||||
Все baseline checkpoints сравниваются до/после; placement, visibility, animation и materials не меняются без отдельной fidelity-задачи.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
Runtime и Editor используют facade; planner/scheduler тестируются без полного мира; p95/p99 и hitch budgets не хуже согласованного baseline.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
@@ -0,0 +1,35 @@
|
||||
# M04 — Godot Editor Shell
|
||||
|
||||
<!-- OPENWC_TARGET:OPEN -->
|
||||
|
||||
## Outcome
|
||||
|
||||
Создать основу Authoring Studio как `addons/openwc_editor` исключительно внутри Godot Editor.
|
||||
|
||||
## Steps
|
||||
|
||||
- [ ] Зарегистрировать EditorPlugin и отдельный workspace/docks.
|
||||
- [ ] Добавить Content Browser, Outliner, Inspector, Validation, History и Build Output.
|
||||
- [ ] Отделить authoring selection от preview scene tree.
|
||||
- [ ] Реализовать command history и Godot-integrated undo/redo.
|
||||
- [ ] Добавить cancellable editor jobs с progress и diagnostics.
|
||||
- [ ] Добавить recovery journal и обработку external file changes.
|
||||
- [ ] Подключить world preview только через renderer facade.
|
||||
|
||||
## Verification
|
||||
|
||||
Plugin enable/disable/reload не оставляет ноды и сигналы; command undo/redo детерминирован; Editor не блокируется долгим synthetic job.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
Synthetic marker можно создать, переместить, undo/redo, сохранить и восстановить после перезапуска Editor.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
@@ -0,0 +1,32 @@
|
||||
# M05 — Content Project
|
||||
|
||||
<!-- OPENWC_TARGET:OPEN -->
|
||||
|
||||
## Outcome
|
||||
|
||||
Создать версионируемый источник истины для пользовательских модификаций.
|
||||
|
||||
## Steps
|
||||
|
||||
- [ ] Реализовать manifest, schema version, dependencies и profiles.
|
||||
- [ ] Реализовать stable symbolic IDs и deterministic numeric allocation manifest.
|
||||
- [ ] Добавить канонические map, placement, creature, gameobject, quest и localization entities.
|
||||
- [ ] Реализовать typed references и graph validation.
|
||||
- [ ] Реализовать deterministic save/load и semantic diff.
|
||||
- [ ] Добавить schema migration `previous → current`, backup и fixtures.
|
||||
- [ ] Реализовать ordered overlays без изменения extracted upstream assets.
|
||||
- [ ] Обеспечить headless validate/build parity с Editor.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
Synthetic project проходит create/edit/undo/save/reload/migrate/build; повторная сборка создаёт byte-stable manifest/artifacts там, где формат это допускает.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
@@ -0,0 +1,36 @@
|
||||
# M06 — TrinityCore/AzerothCore Server Adapters
|
||||
|
||||
<!-- OPENWC_TARGET:OPEN -->
|
||||
|
||||
## Outcome
|
||||
|
||||
Безопасно читать и генерировать изменения БД через канонические модели.
|
||||
|
||||
## Steps
|
||||
|
||||
- [ ] Создать connection profiles без хранения secrets в проекте.
|
||||
- [ ] Реализовать core family/revision/schema fingerprint и capabilities.
|
||||
- [ ] Добавить read-only snapshots creatures, gameobjects, spawns, waypoints, quests и locales.
|
||||
- [ ] Реализовать отдельные adapters TrinityCore335 и AzerothCore335.
|
||||
- [ ] Реализовать canonical round-trip и documented degradation.
|
||||
- [ ] Реализовать semantic diff, preconditions, ordered SQL и checksum.
|
||||
- [ ] Реализовать dry-run, disposable DB tests, backup/checkpoint и rollback policy.
|
||||
- [ ] Блокировать запись для неизвестной схемы и production target по умолчанию.
|
||||
|
||||
## Fidelity evidence
|
||||
|
||||
Flags, coordinates, orientation, quest relations и SmartAI/script fields сверяются с соответствующей revision ядра, а не предполагаются одинаковыми.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
Минимум creature spawn и quest round-trip проходят оба adapter profile без молчаливой потери поддерживаемых полей.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
@@ -0,0 +1,32 @@
|
||||
# M07 — World Editor Vertical Slice
|
||||
|
||||
<!-- OPENWC_TARGET:OPEN -->
|
||||
|
||||
## Outcome
|
||||
|
||||
Разместить NPC в Godot Editor и безопасно развернуть его на dev-core без ручного SQL.
|
||||
|
||||
## Steps
|
||||
|
||||
- [ ] Отобразить server snapshot spawns в world viewport.
|
||||
- [ ] Реализовать selection/filter/outliner и inspector.
|
||||
- [ ] Реализовать transform gizmo, snapping и coordinate display.
|
||||
- [ ] Создать/переместить/удалить creature spawn через undoable commands.
|
||||
- [ ] Добавить waypoint/patrol path minimum.
|
||||
- [ ] Показать validation и semantic/SQL diff.
|
||||
- [ ] Применить change set к dev DB и выполнить post-apply verification.
|
||||
- [ ] Повторно импортировать snapshot и подтвердить отсутствие неожиданного diff.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
NPC, поставленный на известную точку карты, появляется на dev-core с правильными position/orientation/template и переживает повторный import.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
@@ -0,0 +1,37 @@
|
||||
# M08 — WoW 3.3.5a Network Foundation
|
||||
|
||||
<!-- OPENWC_TARGET:OPEN -->
|
||||
|
||||
## Outcome
|
||||
|
||||
Headless protocol sandbox подключается к build 12340 server и строит authoritative entity stream.
|
||||
|
||||
## Steps
|
||||
|
||||
- [ ] TCP transport, bounded queues, cancellation и timeouts.
|
||||
- [ ] SRP6 auth, realm list и world authentication.
|
||||
- [ ] Header crypt, packet framing, fragmentation и compression.
|
||||
- [ ] Typed opcode registry для build 12340.
|
||||
- [ ] Character enum/create/delete/login minimum.
|
||||
- [ ] Packed GUID, update masks/fields и object lifecycle.
|
||||
- [ ] Movement packet family и server time.
|
||||
- [ ] Redacted packet capture/replay и malformed corpus.
|
||||
- [ ] Disconnect/reconnect reasons и structured diagnostics.
|
||||
|
||||
## Fidelity evidence
|
||||
|
||||
Exact-byte fixtures сверяются с оригинальным клиентом или соответствующей server-core реализацией. Network handler не публикует raw packets за пределы adapter.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
Replay детерминирован; live sandbox проходит auth → realm → character → world и создаёт entity registry без renderer/UI.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
@@ -0,0 +1,36 @@
|
||||
# M09 — Gameplay Domain
|
||||
|
||||
<!-- OPENWC_TARGET:OPEN -->
|
||||
|
||||
## Outcome
|
||||
|
||||
Создать независимое от Godot и packets клиентское состояние WoW 3.3.5a.
|
||||
|
||||
## Steps
|
||||
|
||||
- [ ] `WorldState`, typed entity registry и local player lifecycle.
|
||||
- [ ] Domain events/reducers для create/update/destroy.
|
||||
- [ ] Movement state, prediction и server reconciliation policy.
|
||||
- [ ] Targeting, unit health/power/faction и interaction state.
|
||||
- [ ] Spell/cooldown/aura presentation state minimum.
|
||||
- [ ] Inventory и quest log snapshots minimum.
|
||||
- [ ] Immutable read models для UI/render/audio.
|
||||
- [ ] Deterministic replay, state snapshots и reducer tests.
|
||||
|
||||
## Fidelity evidence
|
||||
|
||||
State transitions, server authority, movement flags, errors и timing сверяются с 3.3.5a. Client prediction не подтверждает combat/items/quests самостоятельно.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
Один packet/domain replay всегда создаёт одинаковый gameplay snapshot без Node, UI или live socket.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
@@ -0,0 +1,37 @@
|
||||
# M10 — First Playable Client Slice
|
||||
|
||||
<!-- OPENWC_TARGET:OPEN -->
|
||||
|
||||
## Outcome
|
||||
|
||||
Собственный клиент проходит login и позволяет перемещаться в синхронизированном мире.
|
||||
|
||||
## Steps
|
||||
|
||||
- [ ] Application lifecycle Boot/Login/Realm/Character/Loading/InWorld/Disconnect.
|
||||
- [ ] Минимальные login, realm и character screens.
|
||||
- [ ] Связать gameplay state с renderer facade через presenters.
|
||||
- [ ] Создавать/обновлять/удалять nearby entity visuals.
|
||||
- [ ] Подключить input/movement packets и reconciliation feedback.
|
||||
- [ ] Реализовать target selection и базовый unit frame.
|
||||
- [ ] Добавить chat receive/send minimum.
|
||||
- [ ] Добавить loading, timeout, server reject и reconnect UX.
|
||||
- [ ] Провести traversal/latency/performance tests.
|
||||
|
||||
## Fidelity evidence
|
||||
|
||||
Сценарии login, movement, selection, camera и disconnect сравниваются с клиентом 3.3.5a; улучшенный UX включается отдельно.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
Клиент стабильно входит на TrinityCore/AzerothCore, видит мир/entities, перемещается с server correction и корректно выходит/восстанавливается после ошибки.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
@@ -0,0 +1,37 @@
|
||||
# M11 — Quest End-to-End
|
||||
|
||||
<!-- OPENWC_TARGET:OPEN -->
|
||||
|
||||
## Outcome
|
||||
|
||||
Создать квест в Godot Editor, развернуть на dev-core и полностью пройти собственным клиентом.
|
||||
|
||||
## Steps
|
||||
|
||||
- [ ] Quest form и chain graph.
|
||||
- [ ] Giver/ender, kill/collect/explore objectives, prerequisites и rewards.
|
||||
- [ ] Localization и text/behavior consistency checks.
|
||||
- [ ] Reachability, ID/reference, economy и server capability validation.
|
||||
- [ ] SQL/change-set build и dev deployment.
|
||||
- [ ] Runtime gossip, accept, quest log, progress, completion и reward choice.
|
||||
- [ ] Quest UI через view models; server reject/pending states.
|
||||
- [ ] Editor playtest launcher в нужной позиции.
|
||||
- [ ] Automated integrated happy path и failure/recovery path.
|
||||
|
||||
## Fidelity evidence
|
||||
|
||||
Opcode/state/UI event sequence и quest rules сравниваются с 3.3.5a. Custom extensions маркируются и не меняют Blizzlike335.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
Новый квест создаётся и проходится без ручного SQL и оригинального клиента; повторная сборка/установка воспроизводима.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
@@ -0,0 +1,37 @@
|
||||
# M12 — WoW 3.3.5a Client Completeness
|
||||
|
||||
<!-- OPENWC_TARGET:OPEN -->
|
||||
|
||||
## Outcome
|
||||
|
||||
Последовательно закрыть всю матрицу `docs/CLIENT_FEATURES.md` до подтверждённой совместимости.
|
||||
|
||||
## Required order
|
||||
|
||||
- [ ] Combat, spells, casting, cooldowns, auras, death/resurrection.
|
||||
- [ ] Inventory, equipment, loot, vendors, trainers, trade и bank.
|
||||
- [ ] World map, minimap, exploration, taxi и transports.
|
||||
- [ ] Party, raid, social, guild и chat completeness.
|
||||
- [ ] Talents, glyphs, skills, professions и achievements.
|
||||
- [ ] Mail, auction, economy services и guild bank.
|
||||
- [ ] PvP, duel, battlegrounds, arenas и LFG.
|
||||
- [ ] Vehicles, cinematics, weather, audio и loading transitions.
|
||||
- [ ] Character/M2/WMO/liquid/material/animation fidelity gaps.
|
||||
- [ ] Lua 5.1, FrameXML, default UI и addon compatibility tiers.
|
||||
- [ ] Localization, settings, accessibility и recovery.
|
||||
|
||||
Каждая строка превращается в отдельный vertical-slice spec с acceptance criteria, fixtures и fidelity evidence. Массовая реализация opcodes или Lua stubs без работающего сценария запрещена.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
Каждая строка feature matrix имеет статус `Compatible` или `Verified`; известные расхождения перечислены, воспроизводимы и приняты явно; regression suite покрывает основные игровые циклы.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
@@ -0,0 +1,36 @@
|
||||
# M13 — Dungeon and Encounter Authoring
|
||||
|
||||
<!-- OPENWC_TARGET:OPEN -->
|
||||
|
||||
## Outcome
|
||||
|
||||
Создать custom dungeon в Godot Editor, развернуть и пройти группой собственным клиентом.
|
||||
|
||||
## Steps
|
||||
|
||||
- [ ] `DungeonPackage`: map, entrance/exit, difficulty, graveyard и lockout.
|
||||
- [ ] Spawn groups, patrols, triggers, doors и encounter ownership.
|
||||
- [ ] Encounter graph с phases, abilities, transitions, reset и tuning profiles.
|
||||
- [ ] Loot, quests, localization и instance messages.
|
||||
- [ ] SmartAI generation и/или versioned core script skeleton.
|
||||
- [ ] Validation: reachability, references, door-state graph, wipe recovery и budgets.
|
||||
- [ ] Offline preview, server deploy и group playtest launcher.
|
||||
- [ ] Deterministic encounter simulation cases и multiplayer soak.
|
||||
|
||||
## Fidelity policy
|
||||
|
||||
Базовые instance/group/loot/lockout semantics соответствуют 3.3.5a. Новые encounters могут иметь оригинальный дизайн, но используют явные content capabilities и не ломают Blizzlike335 runtime.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
Минимальный dungeon с маршрутом, trash groups, дверью и boss encounter собирается воспроизводимо, разворачивается и проходится группой; reset/wipe/loot проверены.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
@@ -0,0 +1,71 @@
|
||||
# OpenWC Targets
|
||||
|
||||
<!-- OPENWC_TARGET_INDEX_VERSION:1 -->
|
||||
|
||||
Этот каталог задаёт обязательную последовательность реализации. Архитектура описана в `docs/`, фактическое состояние renderer — в `RENDER.md`, а здесь находятся исполняемые milestones.
|
||||
|
||||
## Current target
|
||||
|
||||
`M00` — [00-render-baseline.md](00-render-baseline.md)
|
||||
|
||||
Одновременно `ACTIVE` может быть только одна цель. Следующая цель становится `ACTIVE` после появления валидной `OPENWC_TARGET_DONE` метки у предыдущей.
|
||||
|
||||
## Definition of fidelity 1:1
|
||||
|
||||
`1:1` означает совпадение наблюдаемого поведения с оригинальным клиентом WoW 3.3.5a build 12340 для выбранного сценария:
|
||||
|
||||
- wire protocol и update fields;
|
||||
- игровые состояния и переходы;
|
||||
- координаты, timing и server authority;
|
||||
- UI/Lua/FrameXML semantics;
|
||||
- выбор assets, animation, audio и visual rules;
|
||||
- edge cases, ошибки и recovery.
|
||||
|
||||
Современные улучшения разрешены только за feature flag/profile и не могут менять `Blizzlike335` по умолчанию. Визуальная пиксельная идентичность ограничена возможностями Godot, но каждое осознанное расхождение документируется и измеряется.
|
||||
|
||||
## Последовательность
|
||||
|
||||
| ID | Цель | Зависит от | Статус |
|
||||
|---|---|---|---|
|
||||
| M00 | [Renderer baseline](00-render-baseline.md) | — | ACTIVE |
|
||||
| M01 | [Coordinates and architecture seams](01-coordinates-and-seams.md) | M00 | OPEN |
|
||||
| M02 | [Player decomposition](02-player-decomposition.md) | M01 | OPEN |
|
||||
| M03 | [Renderer facade and extraction](03-renderer-facade.md) | M02 | OPEN |
|
||||
| M04 | [Godot Editor shell](04-editor-shell.md) | M03 | OPEN |
|
||||
| M05 | [Content Project](05-content-project.md) | M04 | OPEN |
|
||||
| M06 | [Server database adapters](06-server-adapters.md) | M05 | OPEN |
|
||||
| M07 | [World Editor vertical slice](07-world-editor-slice.md) | M06 | OPEN |
|
||||
| M08 | [Network foundation](08-network-foundation.md) | M03 | OPEN |
|
||||
| M09 | [Gameplay domain](09-gameplay-domain.md) | M08 | OPEN |
|
||||
| M10 | [Playable client slice](10-playable-client.md) | M09, M03 | OPEN |
|
||||
| M11 | [Quest end-to-end](11-quest-end-to-end.md) | M07, M10 | OPEN |
|
||||
| M12 | [WoW 3.3.5a completeness](12-client-completeness.md) | M11 | OPEN |
|
||||
| M13 | [Dungeon authoring](13-dungeon-authoring.md) | M12 foundation | OPEN |
|
||||
|
||||
M07 и M08 могут выполняться параллельными командами только после M06/M03 соответственно и только если пользователь явно разрешил параллельную работу. Их результаты сходятся в M11.
|
||||
|
||||
## Общий quality gate
|
||||
|
||||
Каждая цель должна сохранить:
|
||||
|
||||
- headless загрузку Godot project;
|
||||
- затронутые unit/contract/integration tests;
|
||||
- renderer checkpoints при изменении рендера;
|
||||
- отсутствие новых нарушений dependency rules;
|
||||
- обновлённые документы и diagnostics;
|
||||
- воспроизводимость без proprietary данных в Git.
|
||||
|
||||
## Evidence format
|
||||
|
||||
В конце target-файла агент заполняет:
|
||||
|
||||
```text
|
||||
## Evidence
|
||||
- Date:
|
||||
- Revision/worktree:
|
||||
- Commands:
|
||||
- Results:
|
||||
- Fidelity comparison:
|
||||
- Changed files:
|
||||
- Remaining risks:
|
||||
```
|
||||
Reference in New Issue
Block a user