yeager/firestaff

GitHub: yeager/firestaff

一款确定性、模块化的开源引擎复现,解决了跨平台可复现执行与精准存档验证的问题。

Stars: 0 | Forks: 0

# Firestaff [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/104f832e22180357.svg)](https://github.com/yeager/firestaff/actions/workflows/verify.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Milestone](https://img.shields.io/badge/milestone-M10%20engine--core%20complete-success)](https://github.com/yeager/firestaff/blob/main/TODO.md) [![Platforms](https://img.shields.io/badge/platforms-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey)](#building) [![Invariants](https://img.shields.io/badge/invariants-500%2B%20passing-brightgreen)](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项目解析, 不变式验证, 位相同, 保存与读取, 博物馆级, 反向工程, 只读数据, 回归测试, 复古游戏, 客户端加密, 平台支持, 序列化, 开源, 数据层, 无头驱动, 模块化, 模块化架构, 游戏引擎, 确定性, 确定性随机数, 端口, 重构