最近在我的nas(基于Debian的openmediavault)上装了一个OpenTTD,发现过程好像和以前在CentOS上的不太一样,不排除是我以前太菜了……所以重新记录一下,方便以后安装。

OpenTTD的联机功能是游戏的一大特色,虽然在游戏界面可以直接开启联机服务器,但是在服务器上运行带GUI的程序会严重拖慢服务器性能。OpenTTD的程序内置了命令行形式运行的专用服务器端,开服及其方便。
前段时间介绍了Windows服务器的开服方法,不过对于配置较低的服务器,Windows还是不如Linux流畅,所以研究了Linux下的开服方法。

开服准备

  1. 运行Linux系统的计算机/服务器 一台(废话),本处使用Debian 9 (Stretch)
  2. 互联网(废话)

安装过程

Debian可以通过apt安装openttd,但是apt上的openttd版本很旧了(Debian9),所以只能手动安装。

下载OpenTTD游戏文件

最新版链接请自行查找:https://www.openttd.org/downloads/openttd-releases/latest.html

此处使用Linux Debian Stretch (x86_64, 64bit)

可以使用wget命令直接下载,也可以下载后使用FTP上传

1
wget -c https://cdn.openttd.org/openttd-releases/1.10.3/openttd-1.10.3-linux-debian-stretch-amd64.deb

下载后尝试安装:

1
dpkg -i openttd-1.10.3-linux-debian-stretch-amd64.deb

结果提示缺少依赖:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
root@HTPC:/home/openttd# dpkg -i openttd-1.10.3-linux-debian-stretch-amd64.deb
正在选中未选择的软件包 openttd。
(正在读取数据库 ... 系统当前共安装有 132624 个文件和目录。)
正准备解包 openttd-1.10.3-linux-debian-stretch-amd64.deb ...
正在解包 openttd (1.10.3-0) ...
dpkg: 依赖关系问题使得 openttd 的配置工作不能继续:
openttd 依赖于 libsdl2-2.0-0 (>= 2.0.4);然而:
未安装软件包 libsdl2-2.0-0。

dpkg: 处理软件包 openttd (--install)时出错:
依赖关系问题 - 仍未被配置
正在处理用于 mime-support (3.60) 的触发器 ...
正在处理用于 hicolor-icon-theme (0.15-1) 的触发器 ...
在处理时有错误发生:
openttd

安装依赖:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
root@HTPC:/home/openttd# apt install libsdl2-2.0-0
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
您也许需要运行“apt --fix-broken install”来修正上面的错误。
下列软件包有未满足的依赖关系:
libsdl2-2.0-0 : 依赖: libsndio6.1 (>= 1.1.0) 但是它将不会被安装
依赖: libxss1 但是它将不会被安装
E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。


#这里报了一个错,不知道是不是与机器有关,安照他的提示修复一下就好了
root@HTPC:/home/openttd# apt --fix-broken install
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
正在修复依赖关系... 完成
下列软件包是自动安装的并且现在不需要了:
linux-headers-4.19.0-0.bpo.6-amd64 linux-headers-4.19.0-0.bpo.6-common
使用'apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
libsdl2-2.0-0 libsndio6.1 libxss1
建议安装:
sndiod
下列【新】软件包将被安装:
libsdl2-2.0-0 libsndio6.1 libxss1
升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 106 个软件包未被升级。
有 1 个软件包没有被完全安装或卸载。
需要下载 399 kB 的归档。
解压缩后会消耗 1,323 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://mirrors.tuna.tsinghua.edu.cn/debian stretch/main amd64 libsndio6.1 amd64 1.1.0-3 [23.5 kB]
获取:2 http://mirrors.tuna.tsinghua.edu.cn/debian stretch/main amd64 libxss1 amd64 1:1.2.2-1 [17.5 kB]
获取:3 http://mirrors.tuna.tsinghua.edu.cn/debian stretch/main amd64 libsdl2-2.0-0 amd64 2.0.5+dfsg1-2 [358 kB]
已下载 399 kB,耗时 1秒 (259 kB/s)
正在选中未选择的软件包 libsndio6.1:amd64。
(正在读取数据库 ... 系统当前共安装有 132752 个文件和目录。)
正准备解包 .../libsndio6.1_1.1.0-3_amd64.deb ...
正在解包 libsndio6.1:amd64 (1.1.0-3) ...
正在选中未选择的软件包 libxss1:amd64。
正准备解包 .../libxss1_1%3a1.2.2-1_amd64.deb ...
正在解包 libxss1:amd64 (1:1.2.2-1) ...
正在选中未选择的软件包 libsdl2-2.0-0:amd64。
正准备解包 .../libsdl2-2.0-0_2.0.5+dfsg1-2_amd64.deb ...
正在解包 libsdl2-2.0-0:amd64 (2.0.5+dfsg1-2) ...
正在设置 libxss1:amd64 (1:1.2.2-1) ...
正在处理用于 libc-bin (2.24-11+deb9u4) 的触发器 ...
正在设置 libsndio6.1:amd64 (1.1.0-3) ...
正在设置 libsdl2-2.0-0:amd64 (2.0.5+dfsg1-2) ...
正在设置 openttd (1.10.3-0) ...
正在处理用于 libc-bin (2.24-11+deb9u4) 的触发器 ...

再次安装游戏:

1
2
3
4
5
6
7
root@HTPC:/home/openttd# dpkg -i openttd-1.10.3-linux-debian-stretch-amd64.deb
(正在读取数据库 ... 系统当前共安装有 132772 个文件和目录。)
正准备解包 openttd-1.10.3-linux-debian-stretch-amd64.deb ...
正在将 openttd (1.10.3-0) 解包到 (1.10.3-0) 上 ...
正在设置 openttd (1.10.3-0) ...
正在处理用于 mime-support (3.60) 的触发器 ...
正在处理用于 hicolor-icon-theme (0.15-1) 的触发器 ...

尝试运行游戏:

1
2
cd /usr/games
./openttd -D

提示没有安装图形集

Error: Failed to find a graphics set. Please acquire a graphics set for OpenTTD. See section 1.4 of README.md.

不太清楚为什么作为服务器也需要图形集

继续下载opengfx图形集

1
2
3
4
5
6
#进入图形集的存放目录,没有就创建(运行一下游戏可能就自动创建了)
cd ~/.openttd/baseset
#下载图形集
wget https://cdn.openttd.org/opengfx-releases/0.6.0/opengfx-0.6.0-all.zip
#解压
unzip opengfx-0.6.0-all.zip

此时再次运行游戏:

1
2
cd /usr/games
./openttd -D

成功

启动服务器

进入游戏文件夹后,直接使用命令

1
./openttd -D

即可开启专用服务器

配置服务器

有三种方法配置你的服务器:

  1. 在正常图形界面下修改配置,然后再运行服务器版。(最简单)
  2. 直接修改OpenTTD的配置文件openttd.cfg
  3. 使用控制台命令配置服务器。(较困难但是很方便)

第一种方法不解释。用第二种方法配置服务器可以参考官方wiki上的Openttd.cfg页面。第三种方法可以参考官方wiki上的Console页面。

载入存档

载入存档需要在命令行中进入存档所在的文件夹,使用load命令载入存档。

更多

开服时Openttd.cfg的常用修改选项:

OpenTTD常用配置项目

更多有关OpenTTD的文章:

点击查看

本文参考自官方wiki文章Dedicated server,更多高级内容请参考原文。

评论