← 返回信息流
AI 资讯Hacker News·2 天前

Bohemia Interactive将冷战突击重制版源代码上传至GitHub

原标题:Bohemia Interactive: Cold War Assault Remastered Source Code on GitHub

速览

游戏开发商Bohemia Interactive近日将《Cold War Assault Remastered》的源代码上传至GitHub平台。此举旨在促进社区对游戏引擎及机制的研究,也可能为未来的模组开发或技术复用提供基础。该行动体现了游戏行业对开源协作和玩家社区参与的重视。

AI 深度解读

Bohemia Interactive 开源《武装突袭:冷战突击》重制版源码:技术遗产的社区化回归

背景

2001年,Bohemia Interactive 发布了《Operation Flashpoint: Cold War Crisis》(中文常译作《闪点行动:冷战危机》),这款作品不仅确立了该公司在军事模拟领域的地位,更开启了一条延续至今的技术血脉。从最初的 Real Virtuality 引擎,到后来的《Arma》系列,再到最新的 Enfusion 引擎,其底层技术 lineage(谱系)深刻影响了现代战术射击游戏的发展。

近日,Bohemia Interactive 在 GitHub 上公开了《Arma: Cold War Assault Remastered》(即《武装突袭:冷战突击》重制版,代号 Poseidon)的引擎及游戏源码。这一举动旨在回馈那些在过去二十多年里通过社区模组、服务器和热情维持该游戏生命力的玩家群体。此次开源并非简单的代码归档,而是经过现代化重构的工程成果,旨在让开发者能够研究、改进并基于此构建新的内容。

核心内容

本次开源的核心是代号为 Poseidon 的引擎及游戏源码。Bohemia Interactive 对原始代码进行了大规模的现代化改造,使其能够适应当前的开发环境。

技术栈现代化

  • 语言标准:源码已迁移至 C++20 标准。
  • 构建系统:采用 CMake 进行构建管理。
  • 编译器:主要使用 Clang
  • 平台支持:提供跨平台支持,包括 Windows x64 和 Linux x64。

构建与目录结构

项目提供了预设(presets)以简化构建流程:

  • Windows: 使用 cmake --preset win-x64-clang-rwdi 进行配置,随后执行 cmake --build build/win-x64-clang-rwdi
  • Linux: 使用匹配的 linux-x64-clang-rwdi 预设。

主要目录结构包括:

  • Apps: 可执行文件目标。
  • Engine: 引擎库及基于 Rust 的 Trident 工具链。
  • Master server tools: 基于 Rust 的服务端 CLI 工具包。
  • Tests: 测试源码树(目前 CI 仅编译不运行)。
  • cmake/: 包含预设、工具链、vcpkg triplets 及覆盖端口。
  • docker/: 服务和运行环境的容器支持。
  • packages/: 本地游戏数据暂存区(被忽略)。
  • thirdparty/: vendored(打包)的第三方头文件和源码。

许可协议与权利界限

Bohemia Interactive 明确区分了代码、品牌和游戏数据三者的权利归属,这是理解此次开源的关键:

  1. 源代码(本仓库)

    • 许可协议:GNU General Public License v3.0 or later(GPL-3.0-or-later)。
    • 附加条款:包含 GPL 第 7 节的额外条款。
    • 权利:允许用户研究、修改、使用和再分发,但必须保持 GPL 许可并遵守额外条款。
    • 注意thirdparty/ 目录下的第三方代码(如 glad、RenderDoc API 头文件)受其各自许可证约束,不包含在项目的 GPL 许可中。通过 vcpkg 拉取的依赖也保留其原有许可证。
  2. 名称与品牌(商标)

    • "ARMA" 是 Bohemia Interactive a.s. 的注册商标。
    • "OPERATION FLASHPOINT" 是 Electronic Arts Inc. 的注册商标。
    • 限制:开源代码不授予使用 "ARMA" 或任何其他 Bohemia Interactive 商标的权利。任何基于此代码的分叉(Fork)项目必须更改名称,且不得声称自己是 "Arma" 或 Bohemia Interactive 的官方产品。
  3. 游戏数据(独立部分)

    • 模型、纹理、声音、任务、配音等资产不在本仓库中,也不受 GPL 许可覆盖。
    • 这些数据由 Bohemia Interactive 单独发布,遵循 Arma Public License Share Alike (APL-SA)
    • 编译后的二进制文件需要游戏数据才能运行。用户可通过 Steam 获取免费的 Demo 版本(App ID: 4819000)来获取必要的数据文件。

仓库维护政策

  • 锁定仓库:这是一个只读仓库,不接受 Pull Requests,也不会持续更新。
  • Issue 用途:仅用于报告 Steam 上官方 Bohemia Interactive 构建版本的 Bug。
  • 社区开发:对于新功能、开发版本、移植工作或社区合作项目,开发者应 Fork 代码或加入社区延续项目。

关键要点

  • 技术代际跨越:源码已从 2001 年的原始代码重构为符合现代标准的 C++20 项目,使用 CMake 和 Clang 构建,支持 Windows 和 Linux 双平台。
  • 权利分离原则
    • 代码自由:引擎和源码遵循 GPL-3.0,允许自由修改和分发。
    • 品牌保留:"ARMA" 和 "Operation Flashpoint" 商标权归原厂商所有,衍生作品必须改名且不得冒充官方产品。
    • 资产独立:游戏美术和音频资产受 APL-SA 许可约束,需单独从 Steam 获取 Demo 或购买零售版以获得完整数据。
  • 非官方维护通道:该仓库为静态归档,不接受社区代码贡献(PR),Bug 反馈仅限 Steam 官方版本。社区创新需通过 Fork 进行。
  • 依赖管理:第三方库(如 glad)和通过 vcpkg 管理的依赖保留其原始许可证,需开发者自行合规。
  • 构建工具链:推荐使用 Rust 编写的 Trident 工具链和 Master Server 工具,体现了 Bohemia Interactive 在服务器端技术上的现代化尝试。

意义与影响

Bohemia Interactive 此次开源《Arma: Cold War Assault Remastered》源码,具有多重深远意义:

  1. 对社区长期支持的回馈: 《Operation Flashpoint》及其续作《Arma》系列拥有极其庞大且忠诚的社区。在过去二十多年里,正是社区制作的模组(Mods)、自定义任务和服务器插件维持了游戏的热度。此次开源是官方对这一生态贡献的正式认可,旨在降低社区继续开发、修复和扩展该游戏的门槛。

  2. 军事模拟技术的开源传承: 从 Real Virtuality 到 Enfusion,Bohemia Interactive 的技术栈是军事模拟领域的标杆。开源早期的 Poseidon 引擎代码,为研究者、教育机构和独立开发者提供了一个研究大规模战场模拟、AI 行为树、网络同步机制以及 C++20 在大型游戏引擎中应用的绝佳案例。

  3. 确立“代码开源,品牌私有”的行业范式: 此次许可协议清晰地划定了界限:代码可以成为公共知识财富,但品牌资产必须受到保护。这为其他老牌游戏公司处理经典 IP 的技术遗产提供了参考——既可以通过开源激发社区活力,又可以通过商标法防止品牌稀释和混淆。

  4. 推动跨平台与现代化开发实践: 将一款 20 多年前的游戏引擎现代化至 C++20 和 CMake 体系,展示了传统游戏代码库重构的可能性。对于希望将老旧 C++ 项目迁移至现代构建系统(如 CMake)和编译器(Clang)的开发者而言,这是一个极具价值的参考实现。

  5. 社区主导的延续性: 通过明确指示开发者 Fork 代码而非提交 PR,Bohemia Interactive 实际上是将后续的开发主导权移交给了社区。这意味着未来的创新(如新平台移植、新游戏模式)将由社区驱动,而官方则专注于维护 Steam 上的标准版本。这种模式有助于保持官方版本的稳定性,同时释放社区的创造力。

查看原文 →github.com