一个挺有意思的开源游戏,但是开服务器的资料好少,wiki上的甚至还是1.4版的。这里记录一下开服过程。

安装

linux一般安装直接从源下载就行了。这里使用的armbian。不幸的是,debian使用的是13.0而最新是13.4,更不幸的是13.4没有任何地方提供aarch64框架的包,所以只能从源码编译

本体

首先下载源码包解压然后编译

编译依赖be likebuild-essential,sdl2-dev,sdl1.2-dev。当然,如果不全就按照报错添加吧。

be like

1
2
3
4
5
unzip openttd-13.4-source.zip
cd openttd
mkdir bulid
cmake ../
make install

opengfx

奇怪的是我并不运行gui但是他需要图形资源,而且并没有提供无图形资源的选项。我这里使用的是debian库里的openttd-opengfx包,然后把/usr/share/games/openttd/baseset软链接到了~/.local/share/openttd/baseset下,奇怪的是编译得到的/usr/local/share/games/openttd/baseset不能达到效果

设置

这里给一些.config\openttd\openttd.cfg里头的东西

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server_name = yourname

# 自动清除公司
autoclean_companies = true
autoclean_unprotected = 24
autoclean_protected = 36
autoclean_novehicles = 1

# 人数小于该值游戏将停止
min_active_clients =

# 最大连接时长
max_join_time =
max_init_time =

# 禁止90度转弯
forbid_90_deg =

# 设置种子
generation_seed =

# 设置地图生成大小
map_x =
map_y =

自启动

/etc/systemd/system/openttd.service

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=OpenTTD Server
Documentation=""

[Service]
Type=simple
ExecStart=/usr/games/openttd -D
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target
1
systemctl enable openttd

开放到i2p

/etc/i2pd/tunnels.d/openttd.conf中添加如下

1
2
3
4
5
[openttd]
type=server
host=127.0.0.1
port=3979
keys=openttd.dat

然后到控制台获得地址qd4ktzjfhmgznevgxb7u25ticcb3h7cvxmazajk6swrjk4ahcj4a.b32.i2p我的是这个

添加i2p服务器到本地

只需要添加一个tunnel就行了be like

1
2
3
4
5
6
7
8
9
10
11
[openttd-tcp]
type = client
address = 127.0.0.1
port = 3979
destination = qd4ktzjfhmgznevgxb7u25ticcb3h7cvxmazajk6swrjk4ahcj4a.b32.i2p
destinationport = 3979
inbound.length = 1
outbound.length = 1
inbound.quantity = 5
outbound.quantity = 5
keys = openttdclient

服务器加newGRF

一个类似于模组的东西,这里建议在图形界面配置好了之后把配置复制到服务端,配置内容be like

1
2
3
4
5
6
7
[newgrf]
414E0201|0DA3A80B986BC3C17C20CA4CE9CA26AA|fish_2-2.0.3/fish.grf = 1 1 0
43411222|2CDFD414CABA87E4170828944B42FCDF|iron_horse_3_trains-3.2.0/iron-horse.grf = 2 0 0 0 0 2 2 0
F1250008|6A2E778BFF67AB76437696ED1C3C780A|firs_industry_replacement_set_4-4.15.1/firs.grf = 0 0 0 0 0 0 16 150 80 300 1
41560103|FAD3EB34DE1CBAF515FD7A870C4F9A08|egrvts_v2.1-r237/egrvts2_1.grf = 0 63 0 3 0
44440A01|FCEEC76CF44EC23E7FE9C88048CF11CC|av8_aviators_aircraft_set-2.21/pb_av8w.grf =

自动保存和使用存档

启动命令后的-g选项是用于选择存档的,可以用awk指令选择最新的存档启动,也可以直接把存档个数限制到1个,然后直接启动autosave0.sav

介于i2p下游戏服务器效果太差,现已经关闭