OpenTTD建立专用服务器—Debian Linux
最近在我的nas(基于Debian的openmediavault)上装了一个OpenTTD,发现过程好像和以前在CentOS上的不太一样,不排除是我以前太菜了……所以重新记录一下,方便以后安装。
OpenTTD的联机功能是游戏的一大特色,虽然在游戏界面可以直接开启联机服务器,但是在服务器上运行带GUI的程序会严重拖慢服务器性能。OpenTTD的程序内置了命令行形式运行的专用服务器端,开服及其方便。
前段时间介绍了Windows服务器的开服方法,不过对于配置较低的服务器,Windows还是不如Linux流畅,所以研究了Linux下的开服方法。
开服准备
- 运行Linux系统的计算机/服务器 一台(废话),本处使用Debian 9 (Stretch)
- 互联网(废话)
安装过程
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 正在选中未选择的软件包 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 --fix-broken install”来修正上面的错误。 下列软件包有未满足的依赖关系: libsdl2-2.0-0 : 依赖: libsndio6.1 (>= 1.1.0) 但是它将不会被安装 依赖: libxss1 但是它将不会被安装 E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。
root@HTPC:/home/openttd 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 正在修复依赖关系... 完成 下列软件包是自动安装的并且现在不需要了: 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 (正在读取数据库 ... 系统当前共安装有 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
|
成功
启动服务器
进入游戏文件夹后,直接使用命令
即可开启专用服务器
配置服务器
有三种方法配置你的服务器:
- 在正常图形界面下修改配置,然后再运行服务器版。(最简单)
- 直接修改OpenTTD的配置文件openttd.cfg
- 使用控制台命令配置服务器。(较困难但是很方便)
第一种方法不解释。用第二种方法配置服务器可以参考官方wiki上的Openttd.cfg页面。第三种方法可以参考官方wiki上的Console页面。
载入存档
载入存档需要在命令行中进入存档所在的文件夹,使用load命令载入存档。
更多
开服时Openttd.cfg的常用修改选项:
OpenTTD常用配置项目
更多有关OpenTTD的文章:
点击查看
本文参考自官方wiki文章Dedicated server,更多高级内容请参考原文。