我构建了 Project IGI Studio,这是针对《Project I.G.I.:I'm Going In》(2000年)的任务编辑器,它允许你利用复刻的游戏绿色地图电脑来设计任务:放置守卫、绘制巡逻路线、设置目标、摄像头和警报器、重塑地形,然后导出任务并在你自己的游戏副本中游玩。
这个项目最有趣的部分最终落在了文件格式上。
IGI 的任务包含编译后的 QVM 字节码,而当时没有现代化的独立工具链来编辑它。我将 HeavenHM 的 project-igi-toolkit 中的 C++ 解析器移植为读写器,并将编译器直接构建到编辑器本身中。
随后,我针对游戏内置的所有 884 个脚本 测试了实现。每个脚本都能被解析并重建为字节级别完全一致的文件。这意味着编辑器在运行时不需要旧的外部工具包。
我还想确保以下几点:
- 原始安装文件不会被修改: 14 个原始任务不会被覆盖。自定义任务会从经过校验的参考副本写入到第 15 个及之后的槽位中,只有一条受保护的代码路径负责向游戏目录写入内容。
- 不包含任何游戏文件: 你需要提供你自己的 IGI 副本。
- Windows 10/11,一个安装程序: 无需配置 Python 环境或单独的工具包。
- 还有一个 可选的 AI 辅助任务设计器,它能将文本描述转化为放置物/目标,并在应用前展示每一项更改。
安装程序尚未进行代码签名,因此 Windows SmartScreen 可能会发出警告。我正在向 SignPath Foundation 提交申请,并在每次发布时公布 SHA256 哈希值。
目前我也仅针对未修改的 零售版 1.1 安装进行了测试。如果你拥有 Steam 或 GOG 版本,我特别想知道它能否正常工作。
🌐 网站 / 下载: https://naumanhsa.github.io/project-igi-studio-site/
⭐ GitHub 源码: https://github.com/NaumanHSA/project-igi-studio
我特别感兴趣的是关于 QVM 格式、任务结构或项目逆向工程方面的问题。
评论 (0)