本页目录

Greenworks:在 NW.js / Electron 中集成 Steamworks 的 Node.js 插件

greenworks · greenheartgames/greenworks

Greenworks 是 Greenheart Games 开源的 node.js 原生插件,它把 Steamworks 的多个 API 暴露给 JavaScript,让基于 NW.js 或 Electron 的 HTML5 游戏或应用接入 Steamworks。它最初为《Game Dev Tycoon》的 Steam 集成而开发,之后开源...

策略 模拟经营 SDL 自研引擎 C++ 存档系统 游戏状态管理 网络联机 UI 系统 高级
★ Stars 105 Forks 31 License MIT 更新 2026-11-06

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:SDL 暂无中文教程标记 未标记站长实测
从 GitHub 克隆镜像可能受网络影响;使用 SVN 主仓库需能访问 servers.simutrans.org。依赖库可通过国内镜像的包管理器获取,但 vcpkg 和 Homebrew 的下载速度可能较慢,建议配置镜像源。具体编译问题待核验。

中文项目介绍

Simutrans 是一款开源且免费的运输模拟游戏。在游戏中,玩家将扮演一家运输公司的经营者,核心目标是建立并运营一家成功的运输企业。玩家需要利用铁路、公路、船舶和航空等多种运输方式,运送旅客、邮件和各类货物。游戏的核心玩法在于将各个区域、城市、公共建筑、工业设施以及旅游景点相互连接,构建出一个玩家理想中的运输网络。

根据 README 的说明,Simutrans 最初由 Hansjörg Malthaner(“Hajo”)于 1997 年开始编写,直到 2004 年左右他退出开发。此后,由 Markus Pristovsek(“Prissi”)领导的 Simutrans 团队持续进行开发。项目采用 Artistic License 1.0 许可协议,这是一个经 OSI 批准的开源许可证,允许使用、分发、修改以及分发修改后的版本。需要注意的是,运行游戏所必需的 paksets(游戏资源包)拥有其独立的许可证,并不包含在代码仓库中。

技术架构分析

如何构建

README 提供了较为详细的编译指南,适合希望从源码构建的开发者。

获取源代码

项目的主要代码仓库使用 SVN 进行版本控制,可以通过 SVN 客户端检出:

svn checkout svn://servers.simutrans.org/simutrans/trunk

如果偏好 Git,GitHub 上有一个 SVN 仓库的镜像:

git clone http://github.com/simutrans/simutrans.git

README 特别指出,SVN 仓库是主仓库,Git 仓库仅是镜像。如果使用 Git 而非 SVN,在加入网络游戏时需要手动设置游戏版本。

依赖库

Simutrans 依赖多个库,其中部分为必需,部分为可选。README 以表格形式列出了这些库及其用途:

  • 必需库:zlib(基础压缩支持)、bzip2(替代压缩,也可选择 zstd)、libpng(图像处理)、libfreetype(TrueType 字体支持)。
  • 平台相关:libSDL2 在 Linux 和 Mac 上是必需的,在 Windows 上可选但推荐(作为图形后端)。
  • 可选库:libzstd(替代压缩,存档文件比 bzip2 大但速度更快)、libminiupnpc(简易服务器选项)、libfluidsynth(Linux 上推荐的 MIDI 播放,Mac 上暂时使用)、libSDL2_mixer(替代 MIDI 播放和声音系统)、libfontconfig(Linux/Mac 上的字体自动检测)。

此外,还需要 pkgconfig(Unix)或 vcpkg(Microsoft Visual C++)。README 针对不同平台提供了依赖安装指引:

  • MSVC:如果安装了 VCPKG,应能自动编译所需库;或者将 install-building-libs-{architecture}.bat 复制到 vcpkg 文件夹并运行。
  • MSYS2:运行 tools/setup-mingw.sh 获取库并设置环境。
  • Ubuntu/Debian:运行 tools/setup-debian.sh 获取库并设置环境。
  • Linux:使用 pkgs.org 搜索包管理器中的开发库。
  • Mac:通过 Homebrew 安装库,GitHub 目录中提供了一些指导。

编译方式

进入源代码目录后,有三种构建系统可供选择:make、MSVC 和 CMake。README 推荐使用 make 或 MSVC 进行调试构建,使用 CMake 用于 MacOS 和 Android。

编译仅生成可执行文件,运行程序仍需一个 Simutrans 安装。可以使用 -use_workdir 参数指向现有安装目录来启动游戏。

  • 使用 make:可执行文件将生成在 build/default。Linux 上运行 autoconf,MacOS 上运行 autoreconf -ivf,然后执行 ./configure 和 make -j 4(MacOS 还需 make OSX/getversion)。
  • 使用 Microsoft Visual Studio:解决方案文件 simutrans.sln 包含四个项目:Simutrans-Main(共享的非后端特定文件)、Simutrans SDL2(首选后端)、Simutrans GDI(仅 Windows 后端)、Simutrans Server(无图形界面的服务器后端)。选择其中一个作为启动项目并在配置管理器中编译。
  • 使用 CMake:可执行文件将生成在 build/simutrans。命令行示例(Linux/MinGW/MacOS)为 cmake -G "Insert Correct Makefiles Generator" -B build . 和 cmake --build build -j 4。MSVC 下则需创建 build 目录并使用相应的 CMake 命令。

对于从 Linux 交叉编译到 Windows 的情况,README 指向了 Wiki 上的交叉编译指南。

技术要点与学习参考

从 README 可以看出,Simutrans 是一个使用 C++ 编写的大型项目,具有以下技术特征:

  • 多后端支持:通过 SDL2、GDI 和服务器后端,适应不同平台和用途。
  • 跨平台构建:支持 make、MSVC 和 CMake 三种构建系统,覆盖 Linux、Windows、MacOS 等平台。
  • 依赖管理:使用 pkgconfig 或 vcpkg 管理第三方库,并提供脚本简化环境配置。
  • 网络功能:支持网络游戏,但使用 Git 镜像时需手动设置版本。
  • 模块化项目结构:Visual Studio 解决方案将共享代码与后端分离,便于维护和扩展。

对于学习 C++ 游戏开发、运输模拟类游戏逻辑或跨平台构建的开发者,Simutrans 的源码和构建文档提供了有价值的参考。

补充说明

获取与下载

README 提供了多种获取 Simutrans 的途径:

  • 官方网站:可从 Simutrans 官网下载。
  • Steam:游戏也在 Steam 平台上架。
  • Linux 包管理器:可通过 pkgs.org 搜索适用于 Linux 发行版的软件包。

此外,项目还提供“nightly”版本(每日构建版),但 README 建议大多数用户使用最新的“stable”(稳定)版本。

对于想要了解更多信息的玩家,README 列出了主要站点(包括国际论坛、德语论坛和日语论坛)、帮助资源(如 Simutrans Wiki、 starter guide PDF 以及国际论坛的帮助中心)以及额外的下载内容(如 paksets 和 addons)。

开源许可证与版权说明

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

相似项目