обновление
This commit is contained in:
@@ -687,7 +687,7 @@ SKYBOX_MODEL ...
|
|||||||
- skybox/liquid не стоит напрямую переносить как готовый код.
|
- skybox/liquid не стоит напрямую переносить как готовый код.
|
||||||
|
|
||||||
По WoWee (reviewed update `626243e937fb93965fa583a6507ed5a1aa7dda4b` →
|
По WoWee (reviewed update `626243e937fb93965fa583a6507ed5a1aa7dda4b` →
|
||||||
`8456c236b57140e98667d6d8188f5cd1cc226daf`, 2026-08-12):
|
`607ea3b8369851014721416293f8e95dfbe64eec`, 2026-09-05):
|
||||||
|
|
||||||
- сильнейший M04 signal — не новый renderer целиком, а узкие regression fixtures:
|
- сильнейший M04 signal — не новый renderer целиком, а узкие regression fixtures:
|
||||||
M2 global-sequence/color-alpha sampling, `$FSD` event timing, 8x8 liquid masks,
|
M2 global-sequence/color-alpha sampling, `$FSD` event timing, 8x8 liquid masks,
|
||||||
@@ -707,7 +707,7 @@ SKYBOX_MODEL ...
|
|||||||
идеи и tests, не копируем/не вендорим код без legal review.
|
идеи и tests, не копируем/не вендорим код без legal review.
|
||||||
|
|
||||||
По Benilla (pinned research commit
|
По Benilla (pinned research commit
|
||||||
`9f3de200fb4a239809acd3641671d63146098a91`):
|
`bc1a2428dd7e00ca8abbfb8f0bf53750dae7b123`):
|
||||||
|
|
||||||
- полезна граница `world renderer -> asset/formats` без зависимости от game/UI;
|
- полезна граница `world renderer -> asset/formats` без зависимости от game/UI;
|
||||||
- M2 animation разделяет selection policy и renderer machinery: pose sampling,
|
- M2 animation разделяет selection policy и renderer machinery: pose sampling,
|
||||||
|
|||||||
+2
-2
@@ -22,7 +22,7 @@ Reference-код используется для исследования фор
|
|||||||
|
|
||||||
### WoWee
|
### WoWee
|
||||||
|
|
||||||
- Исследование обновлено до `master` commit `8456c236b57140e98667d6d8188f5cd1cc226daf` (2026-08-12), относительно прежнего pin `626243e937fb93965fa583a6507ed5a1aa7dda4b`.
|
- Исследование обновлено до `master` commit `607ea3b8369851014721416293f8e95dfbe64eec` (2026-09-05), относительно прежнего reviewed pin `8456c236b57140e98667d6d8188f5cd1cc226daf`.
|
||||||
- `reference/WoWee/docs/architecture.md` — разделение renderer/network/game/UI/pipeline.
|
- `reference/WoWee/docs/architecture.md` — разделение renderer/network/game/UI/pipeline.
|
||||||
- `reference/WoWee/tools/editor/FORMAT_SPEC.md` — open formats, coordinates, collision, packaging и SQL export.
|
- `reference/WoWee/tools/editor/FORMAT_SPEC.md` — open formats, coordinates, collision, packaging и SQL export.
|
||||||
- `reference/WoWee/TESTING.md` — единая точка запуска тестов, fixtures, sanitizers и CI discipline.
|
- `reference/WoWee/TESTING.md` — единая точка запуска тестов, fixtures, sanitizers и CI discipline.
|
||||||
@@ -59,7 +59,7 @@ Reference-код используется для исследования фор
|
|||||||
|
|
||||||
### Benilla
|
### Benilla
|
||||||
|
|
||||||
- [`reference/benilla`](../reference/benilla) ([upstream](https://github.com/samwhosung/benilla)) — pinned research submodule с независимым клиентом WoW 1.12.1 build 5875 на Rust/Bevy; исследование OpenWC зафиксировано на commit `9f3de200fb4a239809acd3641671d63146098a91`.
|
- [`reference/benilla`](../reference/benilla) ([upstream](https://github.com/samwhosung/benilla)) — pinned research submodule с независимым клиентом WoW 1.12.1 build 5875 на Rust/Bevy; исследование OpenWC зафиксировано на commit `bc1a2428dd7e00ca8abbfb8f0bf53750dae7b123`.
|
||||||
- Renderer references: M2 pose/palette animation, global sequences, material/pass ordering, общий dynamic-effect stream, particles, model particles, ribbons, WMO portal visibility, lighting, sky/weather и streaming.
|
- Renderer references: M2 pose/palette animation, global sequences, material/pass ordering, общий dynamic-effect stream, particles, model particles, ribbons, WMO portal visibility, lighting, sky/weather и streaming.
|
||||||
- UI references: отдельный engine-free TOC/FrameXML/Lua core, template/layout/widget model, deterministic event/`OnUpdate` ordering, legacy+modern handler arguments, sandbox, SavedVariables и большой набор compatibility tests.
|
- UI references: отдельный engine-free TOC/FrameXML/Lua core, template/layout/widget model, deterministic event/`OnUpdate` ordering, legacy+modern handler arguments, sandbox, SavedVariables и большой набор compatibility tests.
|
||||||
|
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ Decision/ADR:
|
|||||||
- **Name / URL:** [WoWee](https://github.com/WoWee-Dev/WoWee), локально `reference/WoWee`.
|
- **Name / URL:** [WoWee](https://github.com/WoWee-Dev/WoWee), локально `reference/WoWee`.
|
||||||
- **Status:** `REFERENCE`; код не подключается как dependency и не вендорится.
|
- **Status:** `REFERENCE`; код не подключается как dependency и не вендорится.
|
||||||
- **Reviewed update:** `master` от `626243e937fb93965fa583a6507ed5a1aa7dda4b` до `8456c236b57140e98667d6d8188f5cd1cc226daf` (2026-08-12): 2557 commits. Raw diff содержит 1622 files, 164940 additions и 1595923 deletions, но объём deletions в основном создают удалённые generated SQL/data/build artifacts; полезный signal сосредоточен в renderer, UI/FrameXML, pipeline и tests.
|
- **Reviewed update:** `master` от `626243e937fb93965fa583a6507ed5a1aa7dda4b` до `8456c236b57140e98667d6d8188f5cd1cc226daf` (2026-08-12): 2557 commits. Raw diff содержит 1622 files, 164940 additions и 1595923 deletions, но объём deletions в основном создают удалённые generated SQL/data/build artifacts; полезный signal сосредоточен в renderer, UI/FrameXML, pipeline и tests.
|
||||||
|
- **Checkout refresh:** текущий upstream checkout — `607ea3b8369851014721416293f8e95dfbe64eec` (2026-09-05). Это обновление pins не является новой fidelity evaluation; релевантные изменения требуют отдельного bounded review перед использованием.
|
||||||
- **Renderer findings:** новый общий M2 track sampler отделяет global-sequence time от animation sequence и добавляет finite-value guards, но Hermite/Bezier пока линейно аппроксимируются. Централизованный M2+skin/external-`.anim` loader и selective animation loading полезны как pattern для границы parser/resolver. Новые water-mask и water-surface-grid tests фиксируют LSB-first 8x8 chunk masks, solid fallback, rotated WMO liquid projection, inclusive far edge и degenerate axes. Vertex-layout tests сверяют CPU declarations с shader inputs. GPU lifetime/deferred-release решения полезны концептуально, но Vulkan implementation не переносится в Godot.
|
- **Renderer findings:** новый общий M2 track sampler отделяет global-sequence time от animation sequence и добавляет finite-value guards, но Hermite/Bezier пока линейно аппроксимируются. Централизованный M2+skin/external-`.anim` loader и selective animation loading полезны как pattern для границы parser/resolver. Новые water-mask и water-surface-grid tests фиксируют LSB-first 8x8 chunk masks, solid fallback, rotated WMO liquid projection, inclusive far edge и degenerate axes. Vertex-layout tests сверяют CPU declarations с shader inputs. GPU lifetime/deferred-release решения полезны концептуально, но Vulkan implementation не переносится в Godot.
|
||||||
- **Animation/effects evidence:** WotLK asset tests покрывают color/alpha tracks, независимый wrap global sequences и `$FSD` footstep events. Отсутствующие private assets в части тестов дают `SUCCEED`, поэтому зелёный run не доказывает, что fixture реально исполнялся. Particle/ribbon delta в основном добавляет sampling, batching, descriptor reuse и diagnostics; flame/smoke/ribbon поведение содержит эвристики и не заменяет build-12340 capture oracle. Для архитектуры shared effect stream Benilla остаётся более сильным secondary reference.
|
- **Animation/effects evidence:** WotLK asset tests покрывают color/alpha tracks, независимый wrap global sequences и `$FSD` footstep events. Отсутствующие private assets в части тестов дают `SUCCEED`, поэтому зелёный run не доказывает, что fixture реально исполнялся. Particle/ribbon delta в основном добавляет sampling, batching, descriptor reuse и diagnostics; flame/smoke/ribbon поведение содержит эвристики и не заменяет build-12340 capture oracle. Для архитектуры shared effect stream Benilla остаётся более сильным secondary reference.
|
||||||
- **Placement warning:** WoWee прямо оставляет rotation order наклонённых doodad placements нерешённым; имеющийся test различает только upright yaw. OpenWC не меняет calibrated transforms без tilted `MDDF`/`MODF` fixture из build 12340.
|
- **Placement warning:** WoWee прямо оставляет rotation order наклонённых doodad placements нерешённым; имеющийся test различает только upright yaw. OpenWC не меняет calibrated transforms без tilted `MDDF`/`MODF` fixture из build 12340.
|
||||||
@@ -99,7 +100,7 @@ Decision/ADR:
|
|||||||
|
|
||||||
- **Name / URL:** [samwhosung/benilla](https://github.com/samwhosung/benilla), локально `reference/benilla`.
|
- **Name / URL:** [samwhosung/benilla](https://github.com/samwhosung/benilla), локально `reference/benilla`.
|
||||||
- **Status:** `REFERENCE`; исходники доступны как pinned research submodule, но не подключены к build/runtime как dependency и не вендорятся.
|
- **Status:** `REFERENCE`; исходники доступны как pinned research submodule, но не подключены к build/runtime как dependency и не вендорятся.
|
||||||
- **Pinned research revision:** `9f3de200fb4a239809acd3641671d63146098a91` (проверен 2026-08-12). Репозиторий публикуется автором как squashed snapshots из private tree, поэтому при повторном исследовании revision фиксируется заново.
|
- **Pinned research revision:** `bc1a2428dd7e00ca8abbfb8f0bf53750dae7b123` (проверен 2026-09-05). Репозиторий публикуется автором как squashed snapshots из private tree, поэтому при повторном исследовании revision фиксируется заново.
|
||||||
- **Problem studied:** полный независимый клиент WoW 1.12.1 build 5875 на Rust/Bevy, включая streamed world renderer, M2 animation/materials, WMO portal visibility, liquids/sky/weather, particles/ribbons/spell visuals и собственный TOC/FrameXML/Lua UI runtime.
|
- **Problem studied:** полный независимый клиент WoW 1.12.1 build 5875 на Rust/Bevy, включая streamed world renderer, M2 animation/materials, WMO portal visibility, liquids/sky/weather, particles/ribbons/spell visuals и собственный TOC/FrameXML/Lua UI runtime.
|
||||||
- **Planned boundary:** использовать только как независимый источник алгоритмов, decomposition, diagnostics и test cases. OpenWC сохраняет свои `WorldRenderFacade`, Godot main-thread/finalization boundaries, `LuaRuntime`, immutable UI view models/intents и build-12340 contracts; прямой Bevy/ECS или Rust-type bridge не вводится.
|
- **Planned boundary:** использовать только как независимый источник алгоритмов, decomposition, diagnostics и test cases. OpenWC сохраняет свои `WorldRenderFacade`, Godot main-thread/finalization boundaries, `LuaRuntime`, immutable UI view models/intents и build-12340 contracts; прямой Bevy/ECS или Rust-type bridge не вводится.
|
||||||
- **Useful renderer source map:** `crates/benilla-world/src/model_render*`, `rig_anim*`, `rig_palette*`, `particles*`, `ribbons.rs`, `wmo_portal*`, `lighting*`, `weather*`, `terrain_stream*` и `shaders/wow_effect.wgsl`; format-side M2 animation/particle/ribbon tracks находятся в `crates/benilla-formats/src/models/anim.rs`, `particles.rs` и `ribbons.rs`.
|
- **Useful renderer source map:** `crates/benilla-world/src/model_render*`, `rig_anim*`, `rig_palette*`, `particles*`, `ribbons.rs`, `wmo_portal*`, `lighting*`, `weather*`, `terrain_stream*` и `shaders/wow_effect.wgsl`; format-side M2 animation/particle/ribbon tracks находятся в `crates/benilla-formats/src/models/anim.rs`, `particles.rs` и `ribbons.rs`.
|
||||||
|
|||||||
+4
-4
@@ -9,19 +9,19 @@ not generate `.import` sidecars inside nested reference repositories.
|
|||||||
## Git reference revisions
|
## Git reference revisions
|
||||||
|
|
||||||
Remote branches were fetched with pruning and the checked-out default branches
|
Remote branches were fetched with pruning and the checked-out default branches
|
||||||
were fast-forwarded on 2026-08-12. The parent repository pins the exact commits
|
were fast-forwarded on 2026-09-05. The parent repository pins the exact commits
|
||||||
through gitlinks; `.gitmodules` records the branch used for an intentional future
|
through gitlinks; `.gitmodules` records the branch used for an intentional future
|
||||||
`git submodule update --remote`. Inspect local state before advancing the parent
|
`git submodule update --remote`. Inspect local state before advancing the parent
|
||||||
gitlink pins; checked-out branches in this refresh used `git pull --ff-only`.
|
gitlink pins; checked-out branches in this refresh used `git pull --ff-only`.
|
||||||
|
|
||||||
| Reference | Canonical branch | Pinned commit |
|
| Reference | Canonical branch | Pinned commit |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| `open-realm` | `main` | `550973e5172e13f8d0178cbeb69611d5af68935c` |
|
| `open-realm` | `main` | `950a1e8c1343a6e2139cc448f779cb2957a8d3f8` |
|
||||||
| `whoa` | `master` | `ea1345636045635ac601b7d525eb0c38c6c0f6dd` |
|
| `whoa` | `master` | `ea1345636045635ac601b7d525eb0c38c6c0f6dd` |
|
||||||
| `WoWee` | `master` | `8456c236b57140e98667d6d8188f5cd1cc226daf` |
|
| `WoWee` | `master` | `607ea3b8369851014721416293f8e95dfbe64eec` |
|
||||||
| `WowUnreal` | `main` | `c2a4b9827b2e7672e799085c5bf631d37c4ca5d3` |
|
| `WowUnreal` | `main` | `c2a4b9827b2e7672e799085c5bf631d37c4ca5d3` |
|
||||||
| `wow.export` | `main` | `c2fd7bde36a712be78a5da896c995b84fbfa2545` |
|
| `wow.export` | `main` | `c2fd7bde36a712be78a5da896c995b84fbfa2545` |
|
||||||
| `benilla` | `main` | `9f3de200fb4a239809acd3641671d63146098a91` |
|
| `benilla` | `main` | `bc1a2428dd7e00ca8abbfb8f0bf53750dae7b123` |
|
||||||
| `blender-wow-studio/.../pywowlib` | `master` | `55276dc5c2195da7fe136638a2a59716622f8c65` |
|
| `blender-wow-studio/.../pywowlib` | `master` | `55276dc5c2195da7fe136638a2a59716622f8c65` |
|
||||||
|
|
||||||
`blender-wow-studio-3.4-1.1.0_Experimental` and `noggit-red` are tracked
|
`blender-wow-studio-3.4-1.1.0_Experimental` and `noggit-red` are tracked
|
||||||
|
|||||||
+1
-1
Submodule reference/WoWee updated: 8456c236b5...607ea3b836
+1
-1
Submodule reference/benilla updated: 9f3de200fb...bc1a2428dd
+1
-1
Submodule reference/open-realm updated: 550973e517...950a1e8c13
+6
-37
@@ -8,19 +8,19 @@
|
|||||||
|
|
||||||
Параллельная командная работа выполняется по [`../docs/TEAM_WORKFLOW.md`](../docs/TEAM_WORKFLOW.md): отдельные worktrees, claims, exclusive paths, contract-first и интегратор milestone.
|
Параллельная командная работа выполняется по [`../docs/TEAM_WORKFLOW.md`](../docs/TEAM_WORKFLOW.md): отдельные worktrees, claims, exclusive paths, contract-first и интегратор milestone.
|
||||||
|
|
||||||
## Current target
|
## Текущая цель
|
||||||
|
|
||||||
`M04` — [04-renderer-fidelity.md](04-renderer-fidelity.md)
|
`M04` — [04-renderer-fidelity.md](04-renderer-fidelity.md)
|
||||||
|
*Начало фазы выполнения:* `YYYY-MM-DD`
|
||||||
Одновременно `ACTIVE` может быть только одна цель. Следующая цель становится `ACTIVE` после появления валидной `OPENWC_TARGET_DONE` метки у предыдущей.
|
Одновременно `АКТИВНАЯ` может быть только одна цель. Следующая цель становится `АКТИВНОЙ` после появления валидной метки `OPENWC_TARGET_DONE` у предыдущей.
|
||||||
|
|
||||||
Статусные метки применяются только к исполняемым файлам `targets/[0-9][0-9]-*.md`. `DEVELOPMENT_ROADMAP.md` и `targets/roadmap/` являются нормативной декомпозицией, но не создают параллельную систему статусов.
|
Статусные метки применяются только к исполняемым файлам `targets/[0-9][0-9]-*.md`. `DEVELOPMENT_ROADMAP.md` и `targets/roadmap/` являются нормативной декомпозицией, но не создают параллельную систему статусов.
|
||||||
|
|
||||||
## Definition of fidelity 1:1
|
## Определение фидели 1:1
|
||||||
|
|
||||||
`1:1` означает совпадение наблюдаемого поведения с оригинальным клиентом WoW 3.3.5a build 12340 для выбранного сценария:
|
`1:1` означает совпадение наблюдаемого поведения с оригинальным клиентом WoW 3.3.5a build 12340 для выбранного сценария:
|
||||||
|
|
||||||
- wire protocol и update fields;
|
- жилл протокол и обновляемые поля;
|
||||||
- игровые состояния и переходы;
|
- игровые состояния и переходы;
|
||||||
- координаты, timing и server authority;
|
- координаты, timing и server authority;
|
||||||
- UI/Lua/FrameXML semantics;
|
- UI/Lua/FrameXML semantics;
|
||||||
@@ -55,35 +55,4 @@ M08 и M09 могут выполняться параллельными кома
|
|||||||
|
|
||||||
`recast-rs` запланирован как optional navigation backend в M06, исследовательский CLI spike и world validation в M08, затем полноценная dungeon navigation validation в M14. Он не блокирует M00–M05 и не считается автоматически совместимым с server `mmaps`.
|
`recast-rs` запланирован как optional navigation backend в M06, исследовательский CLI spike и world validation в M08, затем полноценная dungeon navigation validation в M14. Он не блокирует M00–M05 и не считается автоматически совместимым с server `mmaps`.
|
||||||
|
|
||||||
`rilua` зарегистрирован как Lua 5.1.1 runtime/test-oracle candidate для M13. До compatibility spike он не добавляется как dependency; UI строится через заменяемый `LuaRuntime`, поскольку WoW API, FrameXML, secure actions и taint не входят в готовый VM.
|
`rilua` зарегистрирован как Lua 5.1.1 runtime/test-oracle
|
||||||
|
|
||||||
Wowser зарегистрирован как независимый MIT reference для M09 и M13: auth → world protocol lifecycle, binary/data handling, asset pipeline и общий client coverage. Его старый browser stack не является кандидатом на интеграцию; полезные решения принимаются только после проверки против build 12340 и server cores.
|
|
||||||
|
|
||||||
## Общий quality gate
|
|
||||||
|
|
||||||
Каждая цель должна сохранить:
|
|
||||||
|
|
||||||
- headless загрузку Godot project;
|
|
||||||
- затронутые unit/contract/integration tests;
|
|
||||||
- renderer checkpoints при изменении рендера;
|
|
||||||
- отсутствие новых нарушений dependency rules;
|
|
||||||
- обновлённые документы и diagnostics;
|
|
||||||
- выполнен documentation gate: inline public API, module spec, inputs/outputs и обязательные diagrams;
|
|
||||||
- выполнен coding gate: явные имена, KISS, отсутствие premature abstraction и необоснованной optimization;
|
|
||||||
- проходят `tools/verify_coordination.ps1` и `tools/verify_documentation.ps1`;
|
|
||||||
- воспроизводимость без proprietary данных в Git.
|
|
||||||
|
|
||||||
## Evidence format
|
|
||||||
|
|
||||||
В конце target-файла агент заполняет:
|
|
||||||
|
|
||||||
```text
|
|
||||||
## Evidence
|
|
||||||
- Date:
|
|
||||||
- Revision/worktree:
|
|
||||||
- Commands:
|
|
||||||
- Results:
|
|
||||||
- Fidelity comparison:
|
|
||||||
- Changed files:
|
|
||||||
- Remaining risks:
|
|
||||||
```
|
|
||||||
@@ -22,7 +22,7 @@ effect buffers, M2 particles/ribbons и WMO portal traversal. Поскольку
|
|||||||
проверяется на build-12340 fixture и адаптируется к существующим Godot/M03
|
проверяется на build-12340 fixture и адаптируется к существующим Godot/M03
|
||||||
ownership, scheduling и finalization boundaries.
|
ownership, scheduling и finalization boundaries.
|
||||||
|
|
||||||
WoWee revision `8456c236b57140e98667d6d8188f5cd1cc226daf` добавляет полезные WotLK-oriented
|
WoWee revision `607ea3b8369851014721416293f8e95dfbe64eec` добавляет полезные WotLK-oriented
|
||||||
test patterns для M2 global sequences/color-alpha tracks, `$FSD` event timing,
|
test patterns для M2 global sequences/color-alpha tracks, `$FSD` event timing,
|
||||||
liquid masks, rotated WMO water projection и CPU/shader vertex contracts. Они
|
liquid masks, rotated WMO water projection и CPU/shader vertex contracts. Они
|
||||||
становятся M04 fixture candidates, но не oracle: Hermite/Bezier sampling и effects
|
становятся M04 fixture candidates, но не oracle: Hermite/Bezier sampling и effects
|
||||||
|
|||||||
@@ -90,7 +90,7 @@
|
|||||||
|
|
||||||
- Original 3.3.5a FrameXML/Lua extracted from legally owned data is primary behavior corpus.
|
- Original 3.3.5a FrameXML/Lua extracted from legally owned data is primary behavior corpus.
|
||||||
- `rilua`/PUC-Rio are VM candidates/oracles, not complete WoW UI.
|
- `rilua`/PUC-Rio are VM candidates/oracles, not complete WoW UI.
|
||||||
- WoWee revision `8456c236b57140e98667d6d8188f5cd1cc226daf` provides a large
|
- WoWee revision `607ea3b8369851014721416293f8e95dfbe64eec` provides a large
|
||||||
headless FrameXML/Lua corpus, retained widget-tree/layout tests, a unified
|
headless FrameXML/Lua corpus, retained widget-tree/layout tests, a unified
|
||||||
XML-to-Lua `CreateFrame` path, progressive default-UI takeover and static API/
|
XML-to-Lua `CreateFrame` path, progressive default-UI takeover and static API/
|
||||||
event/handler audits. OpenWC reuses the test taxonomy and staged-handover model,
|
event/handler audits. OpenWC reuses the test taxonomy and staged-handover model,
|
||||||
|
|||||||
Reference in New Issue
Block a user