Files
game-code-4/README.md
T
程基岩(engineering-lead) 856326a766 chore: W1 项目骨架 — 基线 v1.0 架构落盘(Godot 4.7.2 / gl_compatibility)
架构基线:docs/architecture/2026-10-19-F-architecture.md(v1.0)
范围:WRATH OF THE DEAD《怨返》单人挂机 · GDScript · 1280×720 · 12 班底数据驱动

- 骨架:project.godot(4.7 + GL Compatibility)、架构 §2.1 完整目录树(含占位说明)、
  .gitignore/.gitattributes(LF 纪律)、README.md、CLAUDE.md、export_presets.cfg 占位、
  pipeline/README.md(3ds Max 侧契约)
- 数据管线段 1:data/sheets/generators.csv(GDD §3.1 十二班底逐值抄录)
  + data/schema/generators.schema.json(v0)+ src/tools/sheet_importer.gd
  (import_all/import_sheet/validate + ImportReport + .tres stub + 行号/列名/原因失败策略)
  + src/tools/import_main.gd(CI CLI 入口)+ data/build/generators.json(字节级确定性产物)
- 探针:P1(SCREEN_TEXTURE/CanvasLayer 排序)与 P3(NoiseTexture2D seamless)场景代码与
  截图/统计工具;实测手册与结论模板在工作区 docs/engineering/(随仓库外文档树)
- CI:数据门激活(import_all + schema validate + build 漂移门);单测/sim/导出 W3+ 注释占位;
  4.7.2 headless CLI 行为标注待本机验证

待用户侧:P1/P3 实测回填结论;P6 字体许可 / P7 GPU 实测;look-dev 游魂初版(Max 侧)
2026-10-19 15:13:10 +08:00

94 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# WRATH OF THE DEAD / 怨返(项目代号 F)
> 含冤而死,那就招一支阴兵,杀回人间。
> Wrongfully dead? Raise a ghost army and fight your way back to the living world.
单人挂机(idle)· Godot 4.7.2 + GDScript · Zad Archery 式横版 · 水墨绘卷视觉
架构基线:`docs/architecture/2026-10-19-F-architecture.md`(v1.0,2026-10-19)
工程宪法摘要:`CLAUDE.md`(必读)
## 1. 环境要求
| 项 | 要求 | 备注 |
|---|---|---|
| 引擎 | **Godot 4.7.2**(.NET 不需要,纯 GDScript) | 钉 4.7.x 补丁线;跨 minor 不追 |
| 导出模板 | 4.7.2 stable 模板(W5 CI 打包前安装) | Editor → Manage Export Templates |
| Steam | GodotSteam v4.23.1(W5 接入,W1 不依赖) | addon 二进制暂未入库 |
| GPU | 核显可跑(性能底线 30fps) | 用户 GPU 实测定预算(探针 P7) |
## 2. 快速开始
```bash
# 1) 编辑器打开本目录(project.godot)→ 等待首次资源导入
# 2) 数据门验证(headless)
godot --headless --path . --import
godot --headless --path . -s res://src/tools/import_main.gd # import_all(期望 RESULT: PASS)
godot --headless --path . -s res://src/tools/import_main.gd -- --validate-only
# 3) 跑探针:编辑器打开 tests/probe_p1_screen_texture/probe_p1.tscn → F6
# (main scene 自 W2 起由 game/ 编排层提供,F5 直接运行)
git status # import_all 后 data/build 应无 diff(提交物已校准)
```
## 3. 仓库地图(架构 §2.1)
```
project.godot / export_presets.cfg / icon.svg / CLAUDE.md
data/sheets/*.csv 内容唯一源(策划维护;一行=一资产/一参数)
data/schema/*.json 每张表一份 JSON Schema(CI 数据门)
data/build/*.json SheetImporter 产物(提交;sim 与游戏共用)
src/core/ 纯逻辑:numbers / economy / save / sim(W3 起)
src/game/ 编排层:GameState / DataRegistry / 各 Director
src/platform/ SteamService(W5)
src/presentation/ 表现层:stage / hud / panels / modals / post
src/tools/ @tool:sheet_importer.gd + import_main.gd(CI 入口)
assets/ sprites / luts / shaders / themes / fonts
tests/ probe_*(W1)/ unit(W3 起)/ sim_reports(W4 起)
pipeline/ 3ds Max 侧契约(README.md;Max 脚本用户主场)
.github/workflows/ CI 数据门(W3+ 激活单测/sim/导出)
```
## 4. 数据管线("年更=加行"的地基,架构 §3)
```
data/sheets/*.csv ──SheetImporter(src/tools/,@tool/CI headless)──► data/build/*.json
│ schema 校验(违规=中止+行号/列名/原因)
▼(W3)
*.tres Resource ──► DataRegistry ──► 游戏 + sim(同一份,零漂移)
```
- 三条铁律:① 单向流动(游戏永不写 `data/`);② sim 与游戏读同一份 build;③ 数值改动**只改 CSV 不动代码**;
- CSV 规范:稳定字符串 ID(不重编号);`_cn/_en` 后缀;数值列禁千分位;引用列填目标 ID;
- build JSON 由导入器的确定性序列化器生成(字节稳定)——**改 CSV 后必须重跑 import 并提交 build**,否则 CI 漂移门红;
- **W1 已知**:`display_en` 为工程侧临时译名(待文策渊按 GDD §8.4 glossary 确认);`unlock_hall/unlock_gate` 引用的 halls/upgrades 表 W2 落盘后激活跨表引用校验。
## 5. CI(架构 §7.2)
`.github/workflows/ci.yml`:push/PR → checkout → setup Godot 4.7.2 → headless import → `import_all` → schema `validate` → build 漂移门(git diff)。
单元测试(W3,GUT)、sim 14 门(W4)、Windows 导出(W5)为注释占位,标注了激活条件。
**待本机验证**:4.7.2 的 `--headless --import` CLI 行为(备选 `-e --quit-after 200`)——首跑后按实际更新本 README。
## 6. W1 探针(用户侧实测,30min/项)
| 探针 | 手册(工作区 docs/engineering/) | 回填 |
|---|---|---|
| P1 后处理纹理语义 | `2026-10-19-f-w1-probe-p1-manual.md` | `docs/engineering/probes/P1-result.md` |
| P3 noise 平铺 | `2026-10-19-f-w1-probe-p3-manual.md` | `docs/engineering/probes/P3-result.md` |
P6(字体许可)/P7(GPU)为用户侧任务,结论同样回填 probes/。
## 7. 纪律速览(详见 CLAUDE.md / 架构 §9)
- look-dev 冻结(W2 生死门):冻结前不加新资产类型;Max 侧不回炉;调色只在 Godot 侧;
- 水墨四色面积纪律:墨 ~65 / 骨白 ~25 / 朱砂 ≤8% / 靛 ≤7%;
- 终局 ≤1e14;三乘区加法优先禁乘性深度叠加;
- network 作用域不适用(单人无网络代码);AI 不进包体(ADR-4)。
## 8. W1 状态与待办
- [x] 项目骨架 + git 首提交(本 README 同步日期)
- [x] 数据管线段 1(generators.csv 12 行 + schema v0 + SheetImporter v0.1 + build 提交)
- [x] 探针 P1/P3 代码 + 实测手册 + 结论模板
- [ ] 用户:跑 P1/P3 实测并回填结论;P6/P7 用户侧任务
- [ ] 用户:look-dev 游魂初版(Max 侧)→ 导入验证 sprite_row 路径
- [ ] W2 计划:管线贯通 demo(CSV→12 槽 UI)、sim 骨架、军列带纸面原型