refactor(wilderness): 移除凭空发明的程序化十字矮石墙网络,回归原版自然地貌阻隔 #65

Closed
opened 2026-09-18 01:10:03 +00:00 by troytt · 0 comments
Owner

背景

在对当前地图生成器与原版暗黑 2 (D2Common.dll / D2MOO) 进行全量比对时发现:

当前 Web 引擎在 src/game/wilderness.ts 中实现了一套程序化石墙网络(stampThemedDividers / stampOutdoorDividers),沿着关卡中间的宏观网格十字轴铺设带缺口的程序化隔断矮石墙。

而在暴雪原版的暗黑破坏神 2 荒野生成器(DRLGOUTDOORS_GenerateLevel)中,完全没有这种人为的十字形/网格形程序化切分矮墙。原版的野外空间阻隔与动线引导完全由:

  1. 四周天然悬崖峭壁边界(Cliff Borders);
  2. 水系与河流湖泊(River & Water Channels);
  3. LvlSub.txt 规则按概率放置的独立树木、篱笆、石墙地标簇(如 Act 1 - Fence Fill 1..6, Stone Fill 1..2)

自然构成。当前的人工十字矮墙破坏了原版大自然的开阔感与质感,属于凭空发明的非原版机制。


改造内容

  1. 移除十字矮墙生成逻辑:
    • 移除 stampThemedDividers 与 stampOutdoorDividers 对第一、二、三、五幕野外地图强制铺设十字矮石墙的逻辑。
  2. 强化 LvlSub.txt 替代簇的地貌填充:
    • 依赖并调优 applySubstitution 与 DRLGTILESUB_DoSubstitutions,让野外空间的遮挡物完全由 MPQ 数据表驱动的 DS1 地标提供(篱笆、废墟、石块、枯木)。
  3. 清理遗留遥测与统计:
    • 清理 WildernessTelemetry 中与 proceduralDividerCells / proceduralWallCells 相关的非原版统计项。

验收标准

  • 野外地图不再生成人工十字石墙切分线
  • 关卡动线与阻隔完全由天然悬崖边界、水体以及 LvlSub.txt 真实预设地标构成
  • 所有野外关卡保持 100% 空间连通,所有出入口与地标可达
  • npm run typecheck 零错误,npx vitest run 全绿
## 背景 在对当前地图生成器与原版暗黑 2 (`D2Common.dll` / D2MOO) 进行全量比对时发现: 当前 Web 引擎在 `src/game/wilderness.ts` 中实现了一套程序化石墙网络(`stampThemedDividers` / `stampOutdoorDividers`),沿着关卡中间的宏观网格十字轴铺设带缺口的程序化隔断矮石墙。 而在暴雪原版的暗黑破坏神 2 荒野生成器(`DRLGOUTDOORS_GenerateLevel`)中,**完全没有**这种人为的十字形/网格形程序化切分矮墙。原版的野外空间阻隔与动线引导完全由: 1. 四周天然悬崖峭壁边界(Cliff Borders); 2. 水系与河流湖泊(River & Water Channels); 3. `LvlSub.txt` 规则按概率放置的独立树木、篱笆、石墙地标簇(如 `Act 1 - Fence Fill 1..6`, `Stone Fill 1..2`) 自然构成。当前的人工十字矮墙破坏了原版大自然的开阔感与质感,属于凭空发明的非原版机制。 --- ## 改造内容 1. **移除十字矮墙生成逻辑**: - 移除 `stampThemedDividers` 与 `stampOutdoorDividers` 对第一、二、三、五幕野外地图强制铺设十字矮石墙的逻辑。 2. **强化 `LvlSub.txt` 替代簇的地貌填充**: - 依赖并调优 `applySubstitution` 与 `DRLGTILESUB_DoSubstitutions`,让野外空间的遮挡物完全由 MPQ 数据表驱动的 DS1 地标提供(篱笆、废墟、石块、枯木)。 3. **清理遗留遥测与统计**: - 清理 `WildernessTelemetry` 中与 `proceduralDividerCells` / `proceduralWallCells` 相关的非原版统计项。 --- ## 验收标准 - [ ] 野外地图不再生成人工十字石墙切分线 - [ ] 关卡动线与阻隔完全由天然悬崖边界、水体以及 `LvlSub.txt` 真实预设地标构成 - [ ] 所有野外关卡保持 100% 空间连通,所有出入口与地标可达 - [ ] `npm run typecheck` 零错误,`npx vitest run` 全绿
troytt added this to the [M16] 野外生成器原版一致性:还原 Blizzard DRLG 原生机制 milestone 2026-09-18 01:10:03 +00:00
Sign in to join this conversation.
No Label
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: troytt/diablo2-web#65
No description provided.