yeager/firestaff
GitHub: yeager/firestaff
一款确定性、模块化的开源引擎复现,解决了跨平台可复现执行与精准存档验证的问题。
Stars: 0 | Forks: 0
# Firestaff
[](https://github.com/yeager/firestaff/actions/workflows/verify.yml)
[](LICENSE)
[](https://github.com/yeager/firestaff/blob/main/TODO.md)
[](#building)
[](https://github.com/yeager/firestaff/blob/main/run_firestaff_m10_verify.sh)
一款开源的 **Dungeon Master**(1987)和 **Chaos Strikes Back**(1989)引擎端口,专为现代平台设计。
**状态:** M10 完成 — 20/20 个引擎核心阶段通过确定性验证。尚未有 UI/渲染功能(M11+)。
## 什么是 Firestaff
Firestaff 是一个确定性、模块化的 FTL Games 引擎复现,旨在从第一天起即可在 **macOS、Linux 和 Windows** 上运行。整个引擎使用可移植的 C 语言编写,保证跨平台序列化结果完全一致。
- 纯数据层模块,基于不变式验证
- 超过 500 个通过的不变式检查,覆盖 20 个引擎阶段
- 确定性随机数生成,支持位级一致的存档/读档往返
- 无头驱动程序,用于回归测试与回放验证
- 设计用于读取用户本地的原始 `DUNGEON.DAT` 文件,不分发任何游戏资源
## 目前尚未实现的功能
- 传统意义上的可玩性(UI/渲染/音频层尚在 M11+ 开发中)
- 任何 FTL Games 游戏资源
- 其他项目的反编译源代码
## 架构
引擎分为 20 个阶段,每个阶段是一个独立的、可编译模块,并带有自己的不变式探针:
| 阶段 | 模块 | 功能 |
|------|------|------|
| 1-9 | 地牢数据层 | 瓦片、文本、门、传感器、怪物、物品 |
| 10 | 移动与角色 | 队伍位置、角色状态、物品栏 |
| 11 | 传感器执行 | 压力板、触发器、执行器链 |
| 12 | 时间线调度器 | 16 种事件类型,按确定性优先级调度 |
| 13 | 战斗 | 角色与生物伤害结算 |
| 14 | 魔法 | 符文与效果的法术系统 |
| 15 | 保存/读取 | CRC32 完整性校验,位级一致往返 |
| 16 | 怪物 AI | 生物行为状态机 |
| 17 | 投射物 | 飞行、碰撞与爆炸 |
| 18 | 角色生命周期 | 饥饿、状态效果、经验值、休息 |
| 19 | 运行时动态 | 生成器、光衰、能量笼 |
| 20 | 刻钟调度器 | 主循环与确定性测试框架 |
每个阶段都会输出一组包含数十个不变式的探针,确保每次编译后结果完全一致。
## 构建
目前支持 Unix 风格系统(macOS、Linux)。Windows 支持将在 M11 中通过 MSYS2/WSL 实现。
```
./run_firestaff_m10_verify.sh
```
该命令编译全部 20 个阶段并运行其不变式探针。成功时退出码为 0,并打印各阶段的 PASS/FAIL 汇总。
### 无头驱动程序
通过命令行运行确定性游戏模拟:
```
./run_firestaff_headless_driver.sh /path/to/DUNGEON.DAT --seed 42 --ticks 100
```
输出包括最终世界哈希、队伍状态与随机种子。相同种子的两次运行将产生位级一致的输出。
## 路线图
- **M11** — SDL3 集成:渲染、音频、输入(macOS/Linux/Windows)
- **M12** — 启动菜单、国际化(sv/fr/de)、通过 MD5 校验资源
- **M13** — 集成 Chaos Strikes Back 与 Dungeon Master II
## 许可证
Firestaff 在 **MIT 许可证** 下发布。参见 [LICENSE](LICENSE)。
该许可证**仅涵盖引擎代码**。Dungeon Master 与 Chaos Strikes Back 均为 © FTL Games / Software Heaven, Inc. 所有。要运行游戏,您必须拥有原始游戏的合法副本(软盘、CD-ROM 或官方数字发行版)。本项目不包含任何游戏资源。
## 贡献
Firestaff 处于早期开发阶段。待 M11 完成并实现端到端可玩后,将发布贡献指南。目前欢迎提交问题与讨论。
## 链接
- Dungeon Master 百科全书:[dmweb.free.fr](http://dmweb.free.fr/)
- ReDMCSB 参考项目:[dmweb.free.fr/?q=community/redmcsb](http://dmweb.free.fr/?q=community/redmcsb)
- 项目标语:*一款开源的 Dungeon Master 引擎 — 确定性、模块化、可展示级*
标签:Chaos Strikes Back, Dungeon Master, FTL引擎, M10引擎, Waymore结果处理, ZAP项目解析, 不变式验证, 位相同, 保存与读取, 博物馆级, 反向工程, 只读数据, 回归测试, 复古游戏, 客户端加密, 平台支持, 序列化, 开源, 数据层, 无头驱动, 模块化, 模块化架构, 游戏引擎, 确定性, 确定性随机数, 端口, 重构