L0stInFades/dbh-engine-analysis
GitHub: L0stInFades/dbh-engine-analysis
Stars: 0 | Forks: 0
# DBH Engine Analysis
这是一份面向游戏引擎开发者的中文整理稿。它把我对《Detroit: Become Human》PC 版资源包、依赖图、渲染管线、导演时间线、对白/动画/UI 等系统的离线分析,整理成更容易读的版本。
我想回答的不是“DBH 某个文件格式怎么解”,而是一个更适合做引擎的人关心的问题:
这里的结论不是官方文档,也不是源码级逆向。更准确地说,它是一份工程复盘:从可验证的资源索引、依赖表、时间线扫描、shader/pipeline 统计、对白和 UI 联表里,推导出 DBH 的系统组织方式,并把它翻译成自研引擎可以吸收的设计建议。
## 最短结论
DBH 不是“普通游戏引擎 + 播片系统”。它更像一套围绕互动电影生产定制的 cooked asset-graph cinematic engine。
这句话听起来很硬,换成通俗说法就是:
- 资源不是简单打包进一个大文件,而是进入全局资源表和依赖图。
- 剧情段落不是散落在脚本回调里,而是进入 `SEQUENCE` 这类导演时间线。
- 镜头、动画、对白、声音、UI 提示、输入窗口、变量、分支、材质状态和后处理,都能被放到同一个时间窗里检查。
- 渲染不是运行时临时拼 shader,而是提前 cook 出 shader library、pipeline-state record、descriptor/resource ABI 和 pass family 证据。
- 工具链可以反查一个段落为什么复杂、为什么像电影、为什么会贵、为什么会难维护。
所以 DBH 真正值得学的不是某个具体 shader,也不是某个二进制格式,而是它把“作者意图”变成可追踪、可统计、可审计的数据。
## 一眼看证据
| 方向 | 关键证据 |
|---|---:|
| 资源索引 | 373,748 个 idx 条目,41 类资源,约 57.31 GB unpadded 数据 |
| 依赖图 | 1,002,543 条 DEP edge,117,586 个 owner 有依赖 |
| Sequence | 5,479 个 `SEQUENCE`,1,117,054 个 timeline chunk |
| 导演事件 | 616,474 个 director event,其中 590,149 个带时间 |
| 镜头 | 27,959 个 timed shot,109,424 个 light group |
| 对白 | 80,976 个 `FLOW_DIALOG` atom,6,748 个多语言对白 base |
| 渲染 | 81,649 个 SPIR-V module,99,453 条 pipeline-state record |
| 材质控制 | 5,283 个 timed `MVSHADER`,8,909 次参数引用 |
| UI/Flowchart | 128 个 UI resource,32 个 flowchart UI resource,2,692 个英文 flowchart node key |
| 互动时间窗 | 17,903 个 timed core logic seed,2 秒内 91.83% 有 cinematic response |
| 对白时间窗 | 7,560 个 timed dialogue seed,2 秒内 98.84% 有 delivery context |
| UI 时间窗 | 1,414 个 timed UI seed,2 秒内 99.22% 有 cinematic context |
| Top 40 sequence 资源组成 | 11,622 个 nonexclusive unique resource refs,平均每个 sequence 290.55 个 |
这些都是公开版保留的聚合证据。仓库不会上传原始游戏资产、二进制样本、对白全文、本地化全文或大型扫描表。
## 怎么读
如果你只想快速理解整体架构,先读:
- [docs/01-overview.md](docs/01-overview.md)
如果你想看“证据从哪里来”,读:
- [docs/02-evidence-map.md](docs/02-evidence-map.md)
- [docs/07-evidence-catalog.md](docs/07-evidence-catalog.md)
- [docs/08-public-data-guide.md](docs/08-public-data-guide.md)
如果你关心渲染,读:
- [docs/03-rendering.md](docs/03-rendering.md)
如果你关心剧情、分支、镜头、对白、UI,读:
- [docs/04-cinematic-director.md](docs/04-cinematic-director.md)
如果你想把这些东西转成自己的引擎设计,读:
- [docs/05-build-your-engine.md](docs/05-build-your-engine.md)
如果你想知道哪些说法不能过度解读,读:
- [docs/06-boundaries.md](docs/06-boundaries.md)
## 仓库内容
- `docs/`:通俗版正文和证据说明。
- `data/key_metrics.json`:关键聚合指标。
- `data/resource_type_summary.csv`:公开安全的资源类型概览。
- `data/system_evidence_matrix.csv`:系统、证据、指标和工程含义的对照表。
- `data/evidence_sources.json`:本整理稿使用的主要原始研究产物索引。
- `data/interaction_window_summary.csv`:互动逻辑事件周围 2 秒的同窗证据。
- `data/dialogue_delivery_window_summary.csv`:对白事件周围 2 秒的镜头/相机/表演/声音证据。
- `data/ui_prompt_window_summary.csv`:UI prompt 周围 2 秒的输入、分支和电影化上下文证据。
- `data/director_event_category_summary.csv`:导演事件类别和 timed event 对照。
- `data/shot_lens_light_summary.csv`:shot、镜头参数和灯光组的聚合证据。
- `data/camera_bank_summary.csv`:camera bank 的 modifier、target、noise profile 聚合证据。
- `data/material_controller_family_summary.csv`:`MVSHADER` controller family 的参数出现次数。
- `data/render_family_profiles.csv`:渲染 pass family candidate 的 pipeline、shader pair 和变体压力概览。
- `data/sequence_resource_composition_summary.csv`:top 40 cinematic sequence 的资源组成聚合证据。
- `assets/dbh_vs_ue_unity_architecture.svg`:DBH 与常见 UE/Unity 项目组织方式的架构对照图。
- `assets/evidence_chain.svg`:从资源包到工程结论的证据链图。
## 不包含什么
这个仓库刻意不包含以下内容:
- 游戏原始文件。
- 提取出的贴图、音频、动画、脚本 bytecode。
- 二进制样本。
- 大型 CSV 原始扫描表。
- 对白、本地化全文或可还原游戏内容的大段导出。
- Quantic Dream、Sony 或其他权利方的专有代码/资产。
公开版只保留聚合指标、解释性文字、证据索引和自研引擎设计建议。
## License
本文档和本仓库自写内容使用 JSON License,见 [LICENSE](LICENSE)。
注意:JSON License 带有 “The Software shall be used for Good, not Evil.” 条款,在某些严格开源生态中可能存在兼容性争议。本仓库按最初整理需求采用它。
## Disclaimer
Detroit: Become Human is a trademark and copyrighted work of its respective owners. This repository is an independent educational analysis and is not affiliated with or endorsed by Quantic Dream, Sony, or the game's publishers.