Files
healer-man/dungeon-pipeline/WOW_ENVIRONMENT_REVIEW.md
2026-09-13 11:07:56 -04:00

5.9 KiB

WoW dungeon lighting and stair review - 2026-09-13

Implemented coverage

All 54 campaign WoW dungeons now receive environment-specific lighting using Stockades' reviewed ambient/hemisphere fill as the baseline. Stone, cavern, fire, arcane, crypt, and outdoor profiles preserve atmosphere without applying the old dark expansion palettes. Stockades' existing presentation and three reviewed stair proxies remain unchanged. RuneWaker environments are excluded.

The fleet scan produced 347 additional collision-verified walking proxies in 22 dungeons, and eight filled Recast boundary bridges in Uldaman. This makes 350 walking proxies including the three existing Stockades flights. Visual stairs remain steps: source visual/collision/navigation GLBs were not modified. The shared prepared collision is used by players, companions, and enemies.

Dungeon Additional walking proxies Additional navigation bridges
Shadowfang Keep 41 0
Blackfathom Deeps 5 0
Uldaman 5 8
Gnomeregan 4 0
Sunken Temple 2 0
Scarlet Monastery 37 0
Zul'Farrak 1 0
Scholomance 36 0
Stratholme 12 0
Blood Furnace 1 0
Shadow Labyrinth 1 0
Mana-Tombs 3 0
Auchenai Crypts 5 0
Magister's Terrace 10 0
Escape From Durnholde 120 0
Utgarde Keep 8 0
Utgarde Pinnacle 32 0
Culling of Stratholme 11 0
Halls of Stone 2 0
Halls of Lightning 1 0
Pit of Saron 1 0
Halls of Reflection 9 0

The machine-readable src/game/generated/wowDungeonStairs.generated.json records a scan for every WoW dungeon, including entries with no accepted new proxy, collision package identities, candidate/rejection counts, and exact navigation portals. Authored Wailing Caverns is scanned against its actual source assets, rather than the campaign's separate canonical package.

Safety and verification

  • Require repeated short risers with consistent rise/run and overlapping width.
  • Merge compatible continuous flights; independently verify short fallbacks when a merged flight is unsafe.
  • Rebuild after rejected proxies are removed, so accepted paths do not depend on rejected geometry edits.
  • Check real terrain support and capsule sweeps uphill/downhill along the center and two interior lateral lanes at approximately 0.35m intervals.
  • Fill only separate existing boundary portals wholly within a verified flight. Do not invent off-mesh links across unrelated floors or walls.
  • Gate generated coordinates by collision package URL/checksum identity, and navigation identity where exact portal bridges are present.
  • Keep existing validation/availability gates unchanged. Stair checks do not certify boss routes, encounters, resets, checkpoints, or complete runs.
  • Spatially index ramp footprints during preparation to avoid checking every ramp against every vertex in large, multi-chunk environments.

The shipping-asset regression tests independently exercise all 347 new proxies through prepareCollision and the live NPC direct-segment validator in both directions and all three tested lanes. All generated portals match the actual shipping navigation vertices. Existing Stockades player/NPC/wall regressions pass.

Full validation: 247 Vitest files passed, 1,599 tests passed, six existing tests skipped. Production TypeScript/Vite build, texture/performance audits, bundle compression/verification, and release candidate checking passed. Existing physics initialization and bundle-size/import advisories remain.

Visual evidence and remaining QA

The local visual viewer uses the runtime definitions/material policy, shipped GLBs, Meshopt/KTX2 decoding, ACES tone mapping, and 1280x720 screenshots. It does not modify saved characters or party state. Evidence is under artifacts/wow-dungeon-environment/ (ignored QA artifacts).

Uldaman's new/old-fill comparison shows clearer stone walls, columns, and floor tiles. Wailing Caverns retains green coloration with readable rock formations. Mechanar retains cool purple/blue interiors and unchanged visible steps. Scholomance's entrance stairs and masonry remain visible with the crypt profile. Blood Furnace's dark source textures remain atmospheric; the entrance viewpoint faces a nearby wall, so this is not a full-room traversal review.

Zul'Farrak showed a geometry/viewpoint gap in the standalone entrance and boss views. Do not treat its lighting profile or passing isolated proxy sweep as an end-to-end visual/playability pass. Durnholde's large package completed loading without console errors; its cavern entrance and outdoor fort masonry/trees were readable, but the boss viewpoint also showed missing terrain/viewpoint coverage. That environment needs a separate terrain/spawn review and live traversal check.

This is not an exhaustive certification that every staircase is repaired. Conservative repeated-riser detection can miss curved flights, one/two-step transitions, and heavily decimated source geometry. A rejected candidate may be decorative, lack headroom/ground, or require an individually reviewed footprint. An entry with no new proxy is not proof that it contains no stairs. Full-dungeon actor traversal, entrance/exit lips, outer stair edges, manual review of rejected or undetected flights, full clears, and physical Android QA remain open.

Repeating the checks

Requires the project's Node 24 runtime for native TypeScript pipeline execution.

npm run dungeon:wow:stairs:audit
npm run dungeon:wow:stairs:refresh
npm run dungeon:wow:stairs:audit -- scholomance --diagnostics
node scripts/dungeon-pipeline/audit-wow-stairs.ts wailing-caverns --update
npm test -- --run src/game/wowDungeonStairAssets.test.ts

The audit is read-only by default. Refresh writes the full generated catalog; --update replaces only the named entry while retaining the other entries. Campaign regeneration does not erase the runtime lighting/stair adapter.