Ubuntu 搭建饥荒熔炉服务端
Ubuntu 搭建饥荒熔炉服务端
0 说明
熔炉模式下线后,在steam创意工坊提供了关于熔炉模式的mod,下面就关于在Ubuntu搭建饥荒熔炉服务器进行说明。(该方法适用于搭建简单的饥荒服务器)
1 本地
(1) 获取USER ID,获取联机**
打开steam客户端,打开Don’t Starve Together游戏。
选择“个人资料”,弹出的界面中“USER INFO”选项下的KLEI USER ID为饥荒中玩家ID。
选择GAMES中MY GAMES中的Servers,可以查看联机许可证,如果没有需要自动生成。
复制ACCESS TOKEN下的**到cluster_token.txt文件中待用。
(2)配置地图(mod选择(非熔炉还可以对地图等进行选择))
进入Steam创意工坊订阅“Forged Forge”mod。
点击创建世界,进入图形化世界地图配置界面。如下图所示:
Mod:只启用服务器Mod中的“Forged Forge”
接下来,点击“创建世界”完成配置文件的生成,等待服务器启动,当出现人物选择界面时,无需进入游戏,直接点击断开即可。
(3)获取服务器文件
对于 Windows 端的饥荒,此时的配置文件应该存放于文档目下的 Klei 目录里:
C:\Users\你的用户名\Documents\Klei\DoNotStarveTogether*****(数字)
具体到目录(存档)则是:Cluster_X ,X 取决于当前地图存档数量。
复制该存档到桌面,删除一些无用的文件,确保删除后的文件结构为:(其中cluster_token.txt为上文获取到的服务器ACCESS TOKEN的**)
└── Cluster_1
├── cluster.ini
├── cluster_token.txt
└── Master
├── server.ini
├── modoverrides.lua
└── leveldataoverride.lua
(4)简要的配置
需要为服务器指定管理员,在 Cluster_1 目录下,新建 adminlist.txt 文件,将前面获取到的 UserID 复制到该文件。
因为在选择 MOD 时,是已经在创意工坊下载好了,但是在服务器端,服务器还未下载,所以需要先告诉饥荒需要下载的内容 。
新建 dedicated_server_mods_setup.lua 文件(不放在 Cluster_1 目录里,另有他用),然后打开 Master 目录中的 modoverrides.lua 文件,在该文件中能够看到形如 [“workshop-1531169447”] 之类的字符,记录下后面的那串数字(数字对应的是 Mod 在创意工坊中的 ID)。
在 dedicated_server_mods_setup.lua 文件中写入 ServerModSetup(“1531169447”) 。
2 服务器
平台:阿里云
主机:1核 2GB 40GB 1Mbps
操作系统:Ubuntu 16.04 64位
使用SSH工具连接服务器(如:Xshell、SecureCRT等)
使用WinSCP工具连接服务器(协议可以选择FTP、SCP等)
(1)安装环境依赖
sudo apt-get install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386 lib32gcc1
如果报错,请更新
sudo apt-get update
(2)下载和安装Steam客户端
mkdir ~/steamcmd
cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
./steamcmd.sh
此时进入 steam> 应用,在该模式下通过匿名账户登录,然后指定安装目录,最后再安装饥荒服务端:
login anonymous
force_install_dir ../dontstarvetogether_dedicated_server
app_update 343050 validate
quit
(3)解决 lib 缺失
mkdir -p ~/dontstarvetogether_dedicated_server/bin/lib32
ln -s /usr/lib/libcurl.so.4 libcurl-gnutls.so.4
(4)上传配置文件
首先,创建游戏文件夹:
mkdir -p ~/.klei/DoNotStarveTogether
然后,通过WinSCP将1 本地中所准备的文件夹整体上传到 DoNotStarveTogether 目录下(也就是前文提到的 Cluster_1 文件夹)。
(PS:使用WinSCP时无法查看隐藏文件(文件前有点表明这个隐藏文件,因此.klei为隐藏文件夹,需要在选项——>面板——>通用中勾选显示隐藏文件))
接下来上传 MOD 配置文件,还记得另有他用的 dedicated_server_mods_setup.lua 文件吗,将它上传到 ~/dontstarvetogether_dedicated_server/mods 目录下(覆盖文件)。
(5)制作启动脚本
回到家目录 cd ~
,在该目录下创建 vim startDST.sh
脚本,内容如下:
#!/bin/bash
steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/dontstarvetogether_dedicated_server"
cluster_name="Cluster_1"
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 Master | sed 's/^/Master: /'
赋于启动权限:
chmod +x ./startDST.sh
注意:
脚本中最一行代表了启动Master
(其他说明中可以再看到脚本启动了两个实例,Caves和Master,这两个大约共需要1.2G左右的内存,如果只玩地上部分,可以将含有Caves一行删除。)脚本中的 cluster_name=”Cluster_1” ,指的是存档的名称,通过修改这个值就可以启动不同的存档啦。
(6)启动游戏
利用 screen 命令启动一个新窗口,便于后台运行
screen -S DST
启动脚本文件
./startDST.sh
可通过 Ctrl + A + D
进入后台,通过 screen -r DST
返回窗口。
(7)终止服务器
请先断开连接,即所有玩家退出服务器。然后回到SSH工具,按住Ctrl + C
断开连接。
参考资料:
https://blog.****.net/szhiy/article/details/79996017
感谢大神!!!