返回首页

Bunker 3D 移植到 GZDoom:资源转换

开发者将手机三部曲 Bunker 3D、Laboratory 3D、Fortress 3D 移植到 GZDoom/UZDoom。两款游戏通过 Python 从原始 JSON 转储转换为 UDMF。将为 20 周年添加灯光和声音。

Bunker 3D 在 GZDoom 上:从 2006 手机游戏到 UDMF
Advertisement 728x90

移动游戏三部曲 Bunker 3D、Laboratory 3D、Fortress 3D 移植至 GZDoom/UZDoom

开发者正在将 Netsoftware 的移动游戏三部曲 Bunker 3D、Laboratory 3D 和 Fortress 3D 移植到 GZDoom 和 UZDoom。这些 2000 年代中期的原版是为没有 GPU 的手机设计的,采用类似 Wolfenstein 3D 和 Blood 风格的射线投射图形。三部游戏中有两部已完全转换:地图、纹理和精灵从专有格式中提取出来,并适配到 UDMF。计划包括添加地板/天花板纹理、动态照明(同时将原地图保留为单独模式),以及音效。目标是为首款游戏 20 周年推出发布版。

资源提取和处理阶段

过程从反编译原代码开始。将关卡加载到内存的功能保存为 .json:压缩数据(游戏体积不到 100 KB)从最小的参数集重建关卡。

转换使用 Python 完成:

Google AdInline article slot
  • JSON 解析:将数据结构化以便分析——墙壁带有纹理数组(不同于 Doom,其中 sidedef 只有一个纹理)。
  • 中间格式:适配到 Doom 逻辑——为地板/天花板高度创建扇区,将墙壁拆分为 linedef/sidedef。
  • 导出到 UDMF:生成 TEXTUREDEF、ANIMATED、MODELDEF 以实现与 GZDoom/UZDoom 的直接兼容。

移植后的关卡示例:“Warehouse”(第一关)、“Training”、“Harbor”、“Prison”。保留了原始几何形状,但添加了扇区以提升渲染效果。

适配的技术特性

原格式针对移动平台限制进行了高度优化:关卡由基本图元构建,没有明确的纹理数组。Python 脚本将其重构为 Doom 结构:

  • 墙壁:拆分为左右两侧具有独特纹理的段落。
  • 扇区:分别用于地板/天花板,并支持高度。
  • 精灵/模型:转移到 MODELDEF。

当前状态:两款游戏的资源已完全转换。剩余工作:集成照明(扇区亮度)、声音(声音序列),并打磨第三部内容。

Google AdInline article slot

转换器代码正在开发中;预计稍后推出稳定版。

关键点

  • 三部曲中的两款游戏已完全移植到 UDMF,用于 GZDoom/UZDoom。
  • 保留原始几何形状,并添加扇区用于地板/天花板。
  • 使用 Python 进行转换:从 JSON 转储生成 TEXTUREDEF/MODELDEF。
  • 计划:添加照明、声音,为 Bunker 3D 20 周年发布。
  • 对 Doom 模组作者相关:处理遗留射线投射资源的示例。

— Editorial Team

Advertisement 728x90

继续阅读