在Ubuntu Server中搭建饥荒服务端实验手册,内容有解决环境依赖、安装 SteamCMD、安装饥荒服务端、配置饥荒服务端及起航 - 启动游戏。
一、解决环境依赖
安装必要的库文件,在Ubuntu 64 位系统需要下载下列依赖文件:
sudo apt-get install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386 lib32gcc1
二、安装 SteamCMD
1.新建目录 steamcmd
此目录用于 steam 程序的安装目录。
mkdir ~/steamcmd
2.下载 SteamCMD 安装文件
wget -P ~/steamcmd https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
3.解压压缩包
cd ~/steamcmd
tar -xvzf ~/steamcmd/steamcmd_linux.tar.gz
三、安装饥荒服务端
1.启动 steamcmd
./steamcmd.sh
请耐心等待客户端安装,直到进入了: Steam> 命令行模式。
如有遇到安装进度不走,请使用 ctrl + c 强制退出重试。
2.使用公共账户登录steam
login anonymous
3.指定游戏文件的安装目录
force_install_dir ../dontstarvetogether_dedicated_server
4.安装饥荒服务端
app_update 343050 validate
此过程所需时间视网络情况而定,请耐心等待下载。
重要:在安装完成之后,使用 quit 命令退出 steam 程序。
(1)成功安装所出现的标志:
Success! App '343050' fully installed.
(2)如果在安装过程中出现了:
Error! App '232250' state is 0x402 after update job
出现此类情况的原因是:Steam 存在网络连接问题。
解决方案则是执行 quit 先退出 Steam 程序。
重复步骤 安装饥荒服务端 的所有过程。
2.解决一个 lib 缺失
cd ~/dontstarvetogether_dedicated_server/bin/lib32
ln -s /usr/lib/libcurl.so.4 libcurl-gnutls.so.4
四、配置饥荒服务端
1.获取 cluster_token 和 UserID
打开你的饥荒联机版,点击游戏界面中右下角的个人账户。

之后选择 Generate Server Token 获取令盘。
并同时记录下令牌内容和 UserID 内容。
2.新建饥荒配置文件目录
饥荒的配置目录位于: ~/.klei/DoNotStarveTogether
该目录下存放的是游戏存档,我们手动创建一个存档目录:
mkdir -p ~/.klei/DoNotStarveTogether/MyDediServer
cd ~/.klei/DoNotStarveTogether/MyDediServer
3.配置主配置文件
新建 cluster.ini 文件,该文件定义了服务端的主要属性:
touch cluster.ini
在该文件中主要属性解释如下:
字段
释义
max_players
最大在线人数
game_mode
游戏模式,可选:survival,endless,wilderness
pause_when_empty
服务器内无玩家时暂停
vote_kick_enabled
玩家投票踢人
max_snapshots
最大存档回滚次数
请参照下列内容配置你的属性文件:
[GAMEPLAY]
max_players = 6
pvp = false
game_mode = endless
pause_when_empty = true
vote_kick_enabled = true
[NETWORK]
cluster_description = 服务器描述
cluster_name = 服务器名称
cluster_password = 服务器密码
cluster_intention = cooperative
[MISC]
max_snapshots = 6
console_enabled = true
[SHARD]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
master_port = 10889
cluster_key = supersecretkey
4.配置令牌和服务器管理员
配置令牌:
先新建 cluster_token.txt 文件,再将此前获取到的 Token 复制到文件中。
touch cluster_token.txt
先新建 adminlist.txt 文件,再将此前获取到的 UserID 复制到文件中
touch adminlist.txt
5.配置地上部分
请在 MyDediServer 目下新建 Master 目录:
mkdir Master
cd Master
配置独立配置文件,新建 server.ini 文件。
touch server.ini
文件内容如下:
[NETWORK]
server_port = 11000
[SHARD]
is_master = true
[STEAM]
master_server_port = 27018
authentication_port = 8768
[ACCOUNT]
encode_user_path = true
配置地图文件,新建 worldgenoverride.lua 文件。
touch worldgenoverride.lua
文件内容如下:
return {
override_enabled = true,
preset = "SURVIVAL_TOGETHER",
}
6.配置地下部分
地下部分与地上部分极其相似,但是两个实例互相独立。
请在 MyDediServer 目下新建 Caves 目录:
mkdir Caves
cd Caves
配置独立配置文件,新建 server.ini 文件。
touch server.ini
文件内容如下:
[NETWORK]
server_port = 11001
[SHARD]
is_master = false
name = Caves
[STEAM]
master_server_port = 27019
authentication_port = 8769
[ACCOUNT]
encode_user_path = true
配置地图文件,新建 worldgenoverride.lua 文件。
touch worldgenoverride.lua
文件内容如下:
return {
override_enabled = true,
preset = "DST_CAVE",
}
五、起航 - 启动游戏
1.建立启动脚本
先返回家目录,而后再创建启动脚本。
cd ~
touch startDST.sh
脚本内容如下:
#!/bin/bash
steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/dontstarvetogether_dedicated_server"
cluster_name="MyDediServer"
dontstarve_dir="$HOME/.klei/DoNotStarveTogether"
check_for_file "$install_dir/bin"
cd "$install_dir/bin" || fail
run_shared=(./dontstarve_dedicated_server_nullrenderer)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)
"${run_shared[@]}" -shard Caves | sed 's/^/Caves: /' &
"${run_shared[@]}" -shard Master | sed 's/^/Master: /'
给启动脚本添加权限:
chmod +x ./startDST.sh
2.启动游戏
到此所有的配置过程结束,但是为了方便饥荒在后台运行。
这里我们需要利用 screen 命令。
利用 screen 命令创建一个新窗口,便于后台运行:
screen -S DST
那么,现在请启动脚本,开始游戏吧
./startDST.sh
注意:
在该启动脚本上,将同时在一台服务器上运行地上地下两个部分,而每一个实例大概需要 500-600M 内存,两个实例大约共需要 1.2G 左右内存,本实验所提供的服务器是不够运行两个部分的,所以如果想要在该试验中验证结果,请删除启动脚本的倒数第二行地下(洞穴)部分的代码。也就是下列所述内容:
"${run_shared[@]}" -shard Caves | sed 's/^/Caves: /' &`
饥荒是一个只支持单核的游戏,所以如果需要完整的运行地上、地下两部分,以及后期打上一些 Mod。
附有关服务器配置
本教程中的饥荒服务器配置是采用手写的方式一步一步完成的,然而事实上我们可以借助饥荒客户端的游戏界面完成配置文件的生成。再通过 FTP 之类将配置文件上传到服务器中。
相关主题