本页目录

开源复刻《UFO:未知敌人》回合制策略游戏(OpenXcom)

OpenXcom · OpenXcom/OpenXcom

OpenXcom 是用 C++/SDL 编写、以 GPL 授权的开源复刻项目,重现 Microprose 的《UFO: Enemy Unknown》(美版《X-COM: UFO Defense》)与《X-COM: Terror From the Deep》。项目本身不含游戏素材,需自备原版资源:Steam 版可由 Windows...

★ Stars 2,250 Forks 604 License GPL-3.0 更新 2026-11-09

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:SDL 暂无中文教程标记 未标记站长实测
依赖 SDL 1.2 系列库和 yaml-cpp,国内可通过系统包管理器安装;从 GitHub 克隆源码可能受网络影响,建议配置镜像或代理。原版游戏资源需自行准备,Steam 购买可能受区域限制。

中文项目介绍

OpenXcom 是一个以 GPL 协议开源的游戏复刻项目,目标是用现代代码重现 Microprose 出品的经典回合制策略游戏《UFO: Enemy Unknown》(在北美发行时名为《X-COM: UFO Defense》)以及其续作《X-COM: Terror From the Deep》。项目使用 C++ 与 SDL 库编写,代码结构清晰,适合对经典游戏机制或 C++ 游戏开发感兴趣的开发者研究。

需要特别注意的是,OpenXcom 本身不包含任何原版游戏素材。要运行游戏,你必须拥有上述两款游戏的正版资源(例如 Steam 版本)。Windows 安装器可以自动检测 Steam 安装并复制所需文件;你也可以手动从游戏目录中拷贝资源。README 明确提醒:不要使用经过修改的版本(例如使用 XcomUtil 修改过的资源),否则可能导致 bug 或崩溃。

项目官网为 openxcom.org,更多技术资料和社区讨论可查阅 UFOpaedia wiki。

技术架构分析

开发与构建

OpenXcom 使用以下开发库:

源码中包含了以下构建工具所需的文件:

  • Microsoft Visual C++ 2010 或更新版本
  • Xcode
  • Make(参见 Makefile.simple)
  • CMake

项目也已在 Windows/Mac/Linux 上的多种其他工具链中测试过。更详细的编译说明和预编译依赖包可在 UFOpaedia 编译页面 找到。

补充说明

安装与资源准备

OpenXcom 的运行依赖于原版游戏的数据文件。根据 README,安装流程分为两种情况:

  • Steam 版本(Windows):运行 Windows 安装器时,程序会自动检测 Steam 库中的游戏并复制资源。
  • 手动复制:如果自动检测失败,可以手动定位 Steam 游戏目录:
    • UFO: Steam\SteamApps\common\XCom UFO Defense\XCOM
    • TFTD: Steam\SteamApps\common\X-COM Terror from the Deep\TFD

将 UFO 子文件夹复制到 OpenXcom 数据目录或用户目录下的 UFO 子目录,将 TFTD 子文件夹复制到 TFTD 子目录即可。具体目录位置因操作系统而异,下文会详细说明。

模组(Mods)支持

模组是 OpenXcom 生态的重要组成部分。项目自带一套标准模组,基于传统的 XcomUtil 和 UFOExtender 功能实现。此外,社区维护的 mod 门户网站 提供了数百个创新模组可供选择。

安装模组的步骤如下:

  1. 打开用户目录下的 mods 子目录(目录位置见下文)。
  2. 将模组压缩包解压到一个新的子目录中,目录名称任意,只要保持唯一即可。
  3. 部分模组压缩包内可能多套了一层目录(例如 mods/LulzMod/data/TERRAIN/),需要将内部文件上移一层,使其变为 mods/LulzMod/TERRAIN/ 这样的结构。
  4. 启动游戏后,在“选项 -> 模组”页面启用新模组。

配置与选项

OpenXcom 提供了丰富的游戏设置和额外选项,可以在游戏内或游戏外进行调整。这些选项是全局的,会影响所有新旧存档。更多细节请参考 UFOpaedia 的选项页面。

学习建议

OpenXcom 是一个成熟的 C++ 游戏项目,适合学习以下内容:

  • 经典回合制策略游戏的架构设计,包括游戏状态管理、单位控制与战斗逻辑。
  • 使用 SDL 进行跨平台游戏开发的基本模式。
  • 模组系统的设计与实现,了解如何通过数据驱动的方式扩展游戏内容。
  • 多平台目录管理与配置文件的处理方式。

如果你对回合制策略游戏或 C++ 游戏开发感兴趣,可以从阅读源码和尝试编译开始,逐步理解其模块划分。

开源许可证与版权说明

许可证标识:GPL-3.0。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目