OpenLoco/OpenLoco
GitHub: OpenLoco/OpenLoco
经典运输模拟经营游戏 Chris Sawyer's Locomotion 的开源 C++ 重制版,目标是改进原版游戏并新增多人游戏等扩展能力。
Stars: 1744 | Forks: 197
# OpenLoco
Chris Sawyer's Locomotion 的开源重制版。这是一款模拟经营运输公司的建造与管理模拟游戏。

# 目录
- 1 - [简介](#1-introduction)
- 2 - [下载游戏(预构建版本)](#2-downloading-the-game-pre-built)
- 3 - [参与贡献](#3-contributing)
- 4 - [编译游戏](#4-compiling-the-game)
- 4.1 - [构建前置条件](#41-building-prerequisites)
- 4.2 - [编译与运行](#42-compiling-and-running)
- 5 - [许可证](#5-licence)
- 6 - [更多信息](#6-more-information)
### 构建状态
| | Windows / Linux / MacOS | 下载 |
|-------------|-----------------|----------|
| **master** |  | [](https://github.com/OpenLoco/OpenLoco/releases) |
### 交流
欢迎加入我们的 Discord 服务器,讨论游戏开发或获取运行帮助。
[](https://discord.gg/vEuNRHD)
# 1 简介
**OpenLoco** 是 *Chris Sawyer's Locomotion* (CSL) 的开源重制版,CSL 是《Transport Tycoon》的精神续作。OpenLoco 的目标是改进游戏,就像 [OpenTTD](https://openttd.org) 改进了《Transport Tycoon》以及 [OpenRCT2](https://openrct2.io) 改进了《RollerCoaster Tycoon》那样。
CSL 最初使用 x86 汇编语言编写,基于 RollerCoaster Tycoon 2 引擎构建。然而,该引擎后来经历了大幅修改,因此 OpenLoco 目前并没有与 OpenRCT2 共享代码库。
截至 2025 年 12 月,我们已经完成了使用 C++ 重新实现该游戏的工作。我们现在的目标是在 OpenLoco 中实现完善的多人游戏体验。我们的另一个目标是提高地图和交通工具的数量上限。然而,在创建全新的存档格式 (NSF) 之前,我们仍受限于 CSL 存档格式 (SV5/SC5) 所施加的限制。
# 2 下载游戏(预构建版本)
最新版本可以从 [GitHub 下载](https://github.com/OpenLoco/OpenLoco/releases)。目前提供适用于 Windows、Linux 和 MacOS 的发布版本。
对于 BSD 发行版,我们目前不提供任何构建版本。请参阅下一节手动编译游戏。对于 macOS,构建版本未经签名且未经公证。这意味着 Gatekeeper 可能会拦截它们。
请注意,OpenLoco 需要原始《Chris Sawyer's Locomotion》的资源文件才能运行游戏。
您可以在例如 [Steam](https://store.steampowered.com/app/356430/) 或 [GOG.com](https://www.gog.com/game/chris_sawyers_locomotion) 购买到它。
# 4 编译游戏
如果您想为 OpenLoco 贡献代码,请按照以下说明开始编译游戏。
如果您只是想玩游戏,可以直接从 GitHub [下载最新版本](https://github.com/OpenLoco/OpenLoco/releases)。
提供的发布版本适用于 Windows(64 位和 32 位) / Linux(仅 64 位) / MacOS(仅 arm64)。
## 4.1 构建前置条件
使用到以下库/依赖项:
- [libpng](http://www.libpng.org/pub/png/libpng.html)
- [libzip](https://libzip.org)
- [OpenAL](https://www.openal.org/)
- [SDL3](https://github.com/libsdl-org/SDL/releases)
- [yaml-cpp](https://github.com/jbeder/yaml-cpp)(在 CMake 生成期间获取)
- [fmt](https://github.com/fmtlib/fmt)(在 CMake 生成期间获取)
- [sfl](https://github.com/slavenf/sfl-library)(在 CMake 生成期间获取)
- [breakpad](https://github.com/google/breakpad)(仅在 Windows 上需要)
- [tbb](https://www.intel.com/content/www/us/en/developer/tools/oneapi/onetbb.html)(仅在使用 libstdc++ 时需要)
### Windows
- 10 / 11
- [Visual Studio 2022](https://www.visualstudio.com/vs/community/)
- 使用 C++ 的桌面开发(确保已选择 MFC 组件)
- 依赖项通过 [vcpkg](https://github.com/Microsoft/vcpkg) 管理
### Linux
- cmake 3.22+
- make 或 ninja
- 如果构建 x86-32 版本,则需要上述库的 32 位版本
- 依赖项可选择由 vcpkg 管理
### MacOS
- cmake 3.22+
- make 或 ninja
- 使用 Homebrew 等工具将上述库安装到标准路径中
- 依赖项可选择由 vcpkg 管理
## 4.2 编译与运行
### Windows:
1. 检出代码库。这可以使用 [GitHub Desktop](https://desktop.github.com) 或[其他工具](https://help.github.com/articles/which-remote-url-should-i-use)来完成。
2. 使用 VS 2022 的“打开本地文件夹”选项来启动项目文件生成。由于需要下载依赖项,这可能需要一些时间。
3. 成功生成项目文件后,打开“build/windows/openloco.sln”。
4. 选择 Debug 或 Release 配置,然后运行 Build -> Build Solution。
5. 从“build/windows//OpenLoco.exe”或在 VS 中运行游戏。
或者使用 CMake 及以下命令。
1. 运行 `cmake --preset windows`
2. 运行 `cmake --build --preset windows-release`
### Linux:
标准的 CMake 构建流程是安装所需的库,然后:
```
cmake --preset posix
cmake --build --preset posix-release
```
注意:如果构建 x86-32 版本,安装某些软件包可能会遇到问题。要解决此问题,您可以使用[我们的 Docker 镜像](https://github.com/OpenLoco/openloco-docker-build)进行编译。
注意:由于发行版的 yaml-cpp 软件包存在问题,其源码会在 CMake 生成期间被下载。
### MacOS
标准的 CMake 构建流程是安装所需的库,然后:
```
cmake --preset posix
cmake --build --preset posix-release
```
注意:目前仅测试过 arm64 构建。
# 5 许可证
**OpenLoco** 采用 MIT 许可证授权。
# 6 更多信息
- [GitHub](https://github.com/OpenLoco/OpenLoco)
- [TT-Forums](https://www.tt-forums.net)
- [Locomotion subreddit](https://www.reddit.com/r/locomotion/)
标签:Bash脚本, C++, 交通模拟, 开源游戏, 数据擦除, 模拟经营