diff --git a/RENDER.md b/RENDER.md index 7b6d2e8..af57f14 100644 --- a/RENDER.md +++ b/RENDER.md @@ -686,6 +686,26 @@ SKYBOX_MODEL ... - полноценный liquid rendering там не реализован; - skybox/liquid не стоит напрямую переносить как готовый код. +По WoWee (reviewed update `626243e937fb93965fa583a6507ed5a1aa7dda4b` → +`8456c236b57140e98667d6d8188f5cd1cc226daf`, 2026-08-12): + +- сильнейший M04 signal — не новый renderer целиком, а узкие regression fixtures: + M2 global-sequence/color-alpha sampling, `$FSD` event timing, 8x8 liquid masks, + rotated WMO liquid projection и CPU vertex/shader interface checks; +- общий M2+skin/external-`.anim` resolver и selective animation loading полезны как + decomposition, но должны использовать существующие OpenWC repository/worker/ + main-thread finalization boundaries; +- track sampler пока линейно обрабатывает Hermite/Bezier, а particle/ribbon path + содержит flame/smoke и orientation heuristics; это не fidelity oracle. Для + effect architecture Benilla остаётся более полным secondary reference; +- placement rotation order для наклонённых doodads в WoWee явно не решён. + OpenWC не меняет calibrated MDDF/MODF transforms без tilted build-12340 fixture; +- real-asset tests, которые превращают отсутствие assets в success, не считаются + evidence. OpenWC fixture обязан иметь provenance/hash и явно fail/skip-report; +- modified MIT license WoWee запрещает использование как основы/компонента + commercial video game без разрешения: используем только независимо проверенные + идеи и tests, не копируем/не вендорим код без legal review. + По Benilla (pinned research commit `9f3de200fb4a239809acd3641671d63146098a91`): diff --git a/docs/REFERENCES.md b/docs/REFERENCES.md index 16f29af..4e5e27f 100644 --- a/docs/REFERENCES.md +++ b/docs/REFERENCES.md @@ -22,12 +22,13 @@ Reference-код используется для исследования фор ### WoWee +- Исследование обновлено до `master` commit `8456c236b57140e98667d6d8188f5cd1cc226daf` (2026-08-12), относительно прежнего pin `626243e937fb93965fa583a6507ed5a1aa7dda4b`. - `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/TESTING.md` — единая точка запуска тестов, fixtures, sanitizers и CI discipline. - `reference/WoWee/EXPANSION_GUIDE.md` — protocol/data profile separation. -Используем: детерминированные authoring formats, headless parity, adapter profiles и validation-first pipeline. Не принимаем автоматически конкретные форматы или заявленную полноту реализации. +Особенно полезны: WotLK M2 track/footstep fixtures, liquid mask/surface-grid tests, shader-interface checks, retained widget tree, единый XML→Lua `CreateFrame` path, поэлементный takeover default UI и большая система headless/static FrameXML/Lua audits. Не переносим монолитный Lua/game binding, unknown-API fallback, Vulkan-specific ownership или native-padding `.w*` formats. Particle/render rules, placement rotations и UI semantics требуют независимых build-12340 fixtures; часть real-asset tests WoWee пропускает отсутствие assets как success. Лицензия содержит дополнительный запрет commercial-game use, поэтому WoWee остаётся research-only reference без копирования или вендоринга кода. Полная evaluation card: [`TOOLING_CATALOG.md`](TOOLING_CATALOG.md#wowee--карточка-референса). ### Noggit Red diff --git a/docs/TOOLING_CATALOG.md b/docs/TOOLING_CATALOG.md index 547d9ac..dbce93d 100644 --- a/docs/TOOLING_CATALOG.md +++ b/docs/TOOLING_CATALOG.md @@ -40,7 +40,7 @@ Decision/ADR: | OpenWC native loaders | ADOPTED | MPQ/BLP/ADT/WDT/M2/WMO | Текущий import/render pipeline | Неполная fidelity форматов | | StormLib | ADOPTED | MPQ | Чтение архивов через native extension | Version/license/update audit | | WowUnreal | REFERENCE | Полный клиент | Coverage, acceptance criteria, networking/UI research | Unreal-specific design | -| WoWee | REFERENCE | Клиент/editor/formats | Architecture, editor workflows, tests, open formats | Заявления требуют независимой проверки | +| WoWee | REFERENCE | WotLK client/render/UI/editor | M2/liquid fixtures, retained FrameXML UI, Lua diagnostics, progressive UI takeover и authoring validation | Modified MIT запрещает commercial-game use; fidelity claims требуют build-12340 oracle | | Original WoW 3.3.5a build 12340 client | ADOPTED | Visual/behavior oracle | Private static/temporal capture corpus, settings and paired comparison | Proprietary artifacts remain outside Git; camera/settings provenance must be explicit | | Noggit Red | REFERENCE | World editor | Terrain/placement UX, UID workflows и secondary render-composition reference | Не Godot architecture; не authoritative lighting/material/shadow/liquid oracle | | open-realm | REFERENCE | Formats/runtime | Независимая проверка parsers/render behavior | Другая архитектура и coverage | @@ -59,6 +59,22 @@ Decision/ADR: | [Keira3](https://github.com/azerothcore/Keira3) | REFERENCE | AzerothCore DB editor | Field semantics, SQL generation и DB editor UX | AGPL; schema-specific web architecture | | [WowBench](https://sourceforge.net/projects/wowbench/) | REFERENCE | WoW UI/API | Offline XML/Lua API emulation и addon test ideas | Старый и неполный implementation | +## WoWee — карточка референса + +- **Name / URL:** [WoWee](https://github.com/WoWee-Dev/WoWee), локально `reference/WoWee`. +- **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. +- **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. +- **Placement warning:** WoWee прямо оставляет rotation order наклонённых doodad placements нерешённым; имеющийся test различает только upright yaw. OpenWC не меняет calibrated transforms без tilted `MDDF`/`MODF` fixture из build 12340. +- **UI/FrameXML findings:** retained widget tree отделён от renderer, сохраняет WoW bottom-left/y-up coordinates до единственного draw-boundary flip и покрывает anchors, draw order, hit testing, visibility, scroll, controls и ownership headless tests. XML компилируется в Lua и проходит тот же `CreateFrame`/template path, что Lua-created widgets. Progressive takeover передаёт отдельные default-UI элементы FrameXML с явными bridges для portrait/model/minimap/world-map content. Это сильная модель поэтапной миграции M05, но не готовая архитектура OpenWC. +- **Lua/tooling findings:** runtime ограничивает стандартные библиотеки, ставит instruction-hook timeout, копирует listener list перед dispatch, ограничивает event recursion, нормализует event argument types и диагностирует stack/source/line. Большой headless corpus и статические audits проверяют XML emission, templates, `$parent`, handler arity, event order/arity, missing APIs, nil arithmetic, globals и keybinding takeover. Однако `lua_engine.cpp` монолитен, unknown-API fallback маскирует отсутствующие контракты, а настоящих taint/secure execution semantics нет; OpenWC сохраняет отдельный `LuaRuntime`, view models/intents и fail-closed compatibility tiers. +- **Pipeline/editor findings:** общий bounded binary-I/O layer, finite vertex sanitization, DXT block tests, streaming manifest parse и единые validation/save reports полезны как test/validation patterns. Собственные `.w*` formats зависят от native padding/endianness и не подходят как canonical portable OpenWC artifacts без отдельной спецификации. +- **License/data risk:** repository LICENSE — MIT с дополнительным запретом использовать software как основу или компонент commercial video games без письменного разрешения; original music имеет отдельный all-rights-reserved notice. Поэтому допустимы research, decomposition и независимо реализованные fixtures; копирование/вендоринг кода требует предварительного legal review. +- **Fidelity limits:** проект WotLK-aware и использует build 12340, но остаётся active WIP. В исследованном diff нет систематического paired original-client visual corpus; часть tests повторяет internal implementation, а README перечисляет runtime regressions. WoWee — источник гипотез и test cases, не oracle. Oracle OpenWC остаётся оригинальный клиент 3.3.5a build 12340. +- **Bounded adoption:** для M04 приоритетны обязательные (не silent-skip) build-12340 fixtures для M2 global-sequence/color-alpha sampling, MH2O/MCLQ/MLIQ masks и rotated WMO water, CPU-mesh/shader interface verification и tilted placement order. Для M05 — engine-free widget/layout core, единый XML/Lua creation path, progressive takeover и headless audit taxonomy. Любое поведение принимается только после paired capture/fixture с provenance и hash. +- **Decision / ADR:** `REFERENCE`, не dependency. ADR нужен, если WoWee-inspired решение меняет публичный renderer/UI/Lua contract, artifact schema, engine boundary или вводит third-party code. + ## rilua — карточка кандидата - **Problem solved:** Lua 5.1.1 VM, bytecode, embedding и официальный compatibility corpus для addon runtime. diff --git a/targets/roadmap/02-rendering-and-graphics.md b/targets/roadmap/02-rendering-and-graphics.md index 07cb751..69fed4d 100644 --- a/targets/roadmap/02-rendering-and-graphics.md +++ b/targets/roadmap/02-rendering-and-graphics.md @@ -22,6 +22,15 @@ effect buffers, M2 particles/ribbons и WMO portal traversal. Поскольку проверяется на build-12340 fixture и адаптируется к существующим Godot/M03 ownership, scheduling и finalization boundaries. +WoWee revision `8456c236b57140e98667d6d8188f5cd1cc226daf` добавляет полезные WotLK-oriented +test patterns для M2 global sequences/color-alpha tracks, `$FSD` event timing, +liquid masks, rotated WMO water projection и CPU/shader vertex contracts. Они +становятся M04 fixture candidates, но не oracle: Hermite/Bezier sampling и effects +частично аппроксимированы, tilted placement order не решён, а часть asset tests +silent-skips missing data. OpenWC fixtures обязаны фиксировать build 12340, +provenance/hash и фактическое исполнение. Из-за дополнительного license restriction +WoWee используется только как research reference без копирования/вендоринга кода. + Reference corpus принимает versioned CSV и приватные captures. Для каждой выбранной локации базовый набор содержит две позиции: `wide` для sky/fog/WDL и общей композиции, `ground` для terrain/material/M2/WMO. Специализированные diff --git a/targets/roadmap/05-ui-lua-audio.md b/targets/roadmap/05-ui-lua-audio.md index 52f4757..04afe30 100644 --- a/targets/roadmap/05-ui-lua-audio.md +++ b/targets/roadmap/05-ui-lua-audio.md @@ -90,7 +90,13 @@ - 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. -- WowBench/Wowser/WowUnreal/WoWee provide API/event/loader test ideas. +- WoWee revision `8456c236b57140e98667d6d8188f5cd1cc226daf` provides a large + headless FrameXML/Lua corpus, retained widget-tree/layout tests, a unified + XML-to-Lua `CreateFrame` path, progressive default-UI takeover and static API/ + event/handler audits. OpenWC reuses the test taxonomy and staged-handover model, + not its monolithic Lua/game binding, permissive unknown-API fallback or absent + secure/taint semantics; its restricted license also keeps it reference-only. +- WowBench/Wowser/WowUnreal provide additional API/event/loader test ideas. - Pinned [Benilla](https://github.com/samwhosung/benilla) provides a strong engine-free TOC/FrameXML/Lua decomposition and compatibility-test reference: document/load order, templates, anchors, widget identity, handler globals,