本页目录

Warzone 2100:开源 3D 即时战略游戏

warzone2100 · Warzone2100/warzone2100

Warzone 2100 是一款 100% 免费开源的 3D 即时战略游戏,用 C++ 编写,支持 Windows、macOS、Linux 与 BSD。它提供剧情驱动的单人战役(基地可持久扩张,并包含外出任务)、最多 10 人的在线多人对战或组队模式,以及离线遭遇战 AI 模式...

策略 多人对战 自研引擎 C++ 敌人 AI 存档系统 游戏状态管理 网络联机 高级
★ Stars 4,051 Forks 640 License GPL-2.0 更新 2026-11-08

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
从 GitHub 克隆仓库及下载子模块可能受网络影响,建议配置代理或使用镜像;构建依赖需通过系统包管理器安装,具体依赖列表请参考 README 的构建章节。

中文项目介绍

Warzone 2100 是一款以剧情驱动的 3D 即时战略游戏,最初由 Pumpkin Studios 开发并于 1999 年发行。2004 年,Eidos 与 Pumpkin Studios 合作,以 GNU GPL 许可证公开了游戏源代码,随后又公开了音乐与视频文件。此后,社区以“Warzone 2100 Project”的名义持续开发、维护和改进该项目。

游戏背景设定在人类被核导弹近乎毁灭之后,玩家需要指挥“The Project”的部队重建世界。作为一款 100% 免费且开源的 RTS,它提供了完整的单人战役、在线多人对战以及离线遭遇战模式。

核心功能

重制版单人战役

包含可持久扩张的基地、外出任务等要素,剧情驱动。

在线多人对战

最多支持 10 名玩家,可选择自由混战或组队模式,适合大规模战斗。

本地遭遇战

与 AI 机器人对战,提供无尽的重复可玩性。

庞大科技树

包含超过 400 项不同技术,为玩家提供丰富的研发路线。

单位自定义设计系统

灵活搭配单位部件,衍生出多样化的战术可能。

跨平台联机

不同操作系统玩家可以一同游戏。

多图形后端支持

兼容 OpenGL、OpenGL ES 与 Vulkan。

完全免费开源

源代码基于 GNU GPL 发布。

技术架构分析

开发状态与构建

自 2004 年 12 月 6 日源代码开放以来,所有专有技术均已替换为开源实现,并在保留原版精髓的基础上进行了大量改进与新增。开发工作持续在 GitHub 上进行,欢迎提交错误报告与贡献。

最新开发构建

项目通过 GitHub Actions 为多个平台提供持续集成构建,包括 Windows、macOS、Ubuntu、Fedora、WebAssembly 以及 FreeBSD。

  • Windows:访问最新的成功 Windows 构建,选择最新的工作流运行,下载 warzone2100_win_installer 制品。注意:下载制品目前需要一个免费的 GitHub 账户。
  • macOS:类似地,下载 warzone2100_macOS_universal 或 warzone2100_macOS_universal_novideos 制品。
  • Ubuntu:下载对应版本的 warzone2100_ubuntu<version>_amd64_deb 制品,解压后使用 sudo apt install ./warzone2100_ubuntu<version>_amd64.deb 安装。

开发构建是当前开发状态的快照,来自最新成功构建的提交,属于进行中的工作,欢迎帮助测试。

从源码构建(Linux)

克隆 Git 仓库并按照“How to build”部分的说明进行构建。注意:必须初始化子模块,不要使用 GitHub 的“Download Zip”选项,因为它不包含子模块或基于 Git 的自动版本信息。

git clone https://github.com/Warzone2100/warzone2100.git
cd warzone2100
git fetch --tags
git submodule update --init --recursive

补充说明

安装与获取

稳定版游戏需前往官方网站 wz2100.net 下载,适用于 Windows、macOS 和 Linux。

对于 Ubuntu 用户,若希望在游戏中看到重要信息的视频,需要手动下载视频文件。假设游戏安装在标准的 ~/.local/share/ 目录下,可执行以下命令:

mkdir ~/.local/share/warzone2100
wget https://github.com/Warzone2100/wz-sequences/releases/download/v3/standard-quality-en-sequences.wz -O ~/.local/share/warzone2100/sequences.wz

视频文件

游戏视频可从 wz-sequences 发布页 或 SourceForge 下载。下载后需将文件重命名为 sequences.wz 并放入游戏目录。.wz 文件本质上是 .zip 压缩包,可以重命名后解压查看内容。

报告问题

游戏仍存在 bug,若遇到问题请使用 GitHub 问题追踪器(https://github.com/Warzone2100/warzone2100/issues)报告。为了更快修复,请遵循以下规则:

  1. 若游戏崩溃,可保存内存转储并上传(Linux 位于 /tmp/warzone2100.gdmp,Windows 位于 Program Files/Warzone 2100/warzone2100.RPT,macOS 可通过崩溃错误消息中的“Details”获取)。自行创建的回溯信息同样有用。
  2. 提供崩溃/ bug 发生前你正在进行的操作的详细信息。
  3. 尝试重现 bug 并在报告中描述过程。
  4. 可以上传存档文件(一个 .gam 文件和一个同名文件夹)。
  5. 错误报告不是“提交后即忘”,请关注后续评论,可开启邮件通知。

配置与命令行

游戏在用户主目录下使用独立子目录保存配置数据、存档等。查找配置目录的简便方法:启动游戏,点击“Options”,然后点击左下角的“Open Configuration Directory”链接。

配置文件名为 config,包含若干配置选项。部分选项可通过命令行或游戏内菜单修改,其他只能手动编辑。若配置出错,可删除配置文件并重启游戏,游戏将重新生成默认配置。

游戏支持多种命令行选项,使用 --help 查看列表。注意:选项均使用两个连字符(--),若选项带参数,需用 = 连接,空格无效。部分选项会持久化到配置文件。

互联网多人游戏

通过互联网开始多人游戏有两种方式:使用主机 IP 或使用大厅服务器。请确保 TCP 端口 2100 和 9999 可通信。端口转发只需在路由器上转发 2100 端口。

  • 选择 IP 方式时,游戏会要求输入主机 IP 并尝试连接。
  • 选择大厅方式时,游戏将连接大厅服务器(前提是配置文件中 lobby-server-address 未被更改)。

你将看到游戏列表可供选择。在游戏开始前,可以按住鼠标右键并左键点击不想要的玩家将其踢出。

作为主机时,游戏会自动列在大厅服务器上。若不想列出,可将配置中的 masterserver_name=lobby.wz2100.net 改为无效值,例如 nomasterserverplease。若想查看大厅服务器上的游戏,可在提示输入主机 IP 时输入 lobby.wz2100.net,或改回配置项。更改配置后需重启游戏生效。

作弊与模组

游戏内置许多作弊码,详见 Warzone 2100 Cheats。

Warzone 2100 的 AI、地图和战役可使用 JavaScript 进行脚本编写。相关文档包括:Scripting、Model format、Animation。

学习建议

对于希望学习大型开源游戏项目的开发者,Warzone 2100 提供了丰富的参考价值:

  • C++ 工程实践:项目使用 C++ 编写,并采用 CMake 构建系统,可学习跨平台大型项目的组织方式。
  • 图形后端抽象:支持 OpenGL、OpenGL ES 和 Vulkan,可研究多图形 API 的适配与抽象层设计。
  • 网络联机:跨平台多人对战涉及网络同步与大厅服务器交互,是学习网络编程的实例。
  • 脚本系统:使用 JavaScript 进行 AI、地图和战役脚本编写,可了解游戏脚本引擎的集成。
  • 社区协作:项目拥有活跃的社区和清晰的贡献指南,适合学习开源协作流程。

建议从阅读文档和构建项目开始,逐步深入特定模块。

开源许可证与版权说明

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

相似项目