本页目录

Widelands:开源即时战略游戏(致敬《工人物语II》)

widelands · widelands/widelands

Widelands 是一款自由开源的即时战略游戏,提供单人战役与多人模式,灵感来自《工人物语II》,但按项目描述拥有更丰富的玩法与深度。项目以 C++ 编写,采用 GPLv2+ 许可,部分素材使用不同的 Creative Commons 许可;仓库主题涵盖 Linux...

策略 多人对战 SDL 自研引擎 C++ 寻路算法 存档系统 游戏状态管理 网络联机 高级
★ Stars 3,122 Forks 225 License GPL-2.0 更新 2026-11-09

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:SDL 暂无中文教程标记 未标记站长实测
依赖安装脚本可能从境外源下载软件包,国内网络环境建议配置镜像或手动安装依赖;CMake 与编译过程本身不依赖特定网络服务。具体依赖版本与镜像可用性待核验。

中文项目介绍

Widelands 是一款自由开源的即时战略游戏,提供单人战役与多人对战模式。项目自述其灵感来源于《工人物语II™》(Settlers II™,© Bluebyte),但在玩法多样性与深度上进行了显著扩展。游戏以 C++ 为主要开发语言,采用 GPLv2+ 许可证发布,部分美术与音频素材则依据不同的 Creative Commons 许可分发,具体可查阅仓库内相应文件夹的说明。

Widelands 的代码仓库托管于 GitHub,并在 Codeberg 设有镜像,主分支与议题、拉取请求通过 bunnybot 在两地之间双向同步。项目主题标签覆盖 Linux、BSD、macOS(含 Apple Silicon)、Windows 等平台,同时涉及 CMake、Lua、Python、JSON 等技术栈。

技术架构分析

技术要点

  • 主要语言:C++,遵循 Google C++ 风格指南。
  • 构建系统:同时提供便捷脚本与 CMake 两种构建方式,支持 Debug、Release、RelWithDebInfo 等构建类型。
  • 依赖库:SDL2、SDL2_image、SDL2_mixer、SDL2_ttf、gettext、libiconv、zlib、libpng、Asio、Python、GLEW 或 glbinding 等。
  • 脚本与工具:场景脚本使用 Lua;仓库中包含 Python 工具用于翻译构建、代码格式化、打包等辅助任务。
  • 平台支持:官方文档说明支持在 Linux、Windows(MSys2 与 MSVC)以及 macOS 上编译,要求 GCC >= 8 或 Clang/LLVM >= 7。
  • 持续集成:通过 AppVeyor 与 GitHub Actions 进行构建、代码格式检查与测试套件运行,MacOS 与 MS-Windows 的构建产物会针对拉取请求分支部署。

构建与运行

README 提供了详细的编译指引。首先需要安装依赖,在多数常见系统上可运行 ./install-dependencies.sh 自动检测操作系统并安装,也可显式指定系统,例如 ./install-dependencies.sh debian。

随后可使用便捷脚本编译:

  • ./compile.sh:完整调试构建
  • ./compile.sh -r -w:发布构建
  • ./compile.sh -e -w:带调试符号的发布构建
  • ./compile.sh -h:列出可用选项

编译完成后,执行 ./widelands 即可启动游戏。若使用 CMake 手动构建,可创建 build 目录并运行 cmake .. 与 make,再将生成的 build/src/widelands 移动到项目根目录后运行。CMake 提供多种选项,例如 CMAKE_BUILD_TYPE、OPTION_ASAN、OPTION_TSAN、OPTION_BUILD_TESTS、USE_XDG、OPTION_USE_GLBINDING 等,具体含义可参考 README 中的选项表格。

补充说明

玩法与内容

根据 README 描述,Widelands 包含单人战役和多人模式,其设计目标是在致敬经典基地建设类 RTS 的同时,提供更丰富的变体与策略深度。游戏数据目录(data)中存放了图像、音效、音乐、脚本、地图、战役、部落等资源,说明游戏内容以数据驱动的方式组织,便于扩展与本地化。

项目为场景脚本提供了 Lua 接口,相关文档位于官方网站的 Lua 索引页面。玩家与模组作者可以借助脚本系统创建自定义地图与战役任务。

学习建议

对于希望学习大型 C++ 游戏项目架构的开发者,Widelands 提供了较为完整的工程实践参考:从 CMake 多平台构建、SDL2 多媒体层集成,到 Lua 脚本扩展与 Python 辅助工具链,均可在仓库中找到对应实现。建议先阅读官方构建文档完成本地编译,再结合 src 目录与 data 目录理解游戏逻辑与数据驱动设计。若关注 RTS 的玩法实现,可重点研究场景脚本接口与地图、战役的组织方式。

开源许可证与版权说明

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

相似项目