肺炎当道,每天宅在家里无所事事。刷面试题在这么多人宅在客厅的情况下实在是干扰太多了。这个时候刷B站突然看到一个1000天大佬的饥荒世界。突然就想到曾经自己也和小伙伴一起快乐饥荒,是跟文明六一样“我再过一天就退游戏”然后就天亮了的杀时间利器。因为饥荒这个游戏联机是创建房间的那个人当服务器的,然而我们自己的电脑做服务器。缺点有很多
- 网络不稳定,毕竟所有人都连你这台机器
- 负载也不太行。如果联机的玩家一多,就会出现主机流畅无比,其余玩家卡的飞起的尴尬情况。
- 主机一退,其他人都玩不了了
所以饥荒开放了玩家自己搭建服务器的能力。让有能力的玩家(没错就是我们程序员)自行搭建服务器来进行联机操作。
服务器搭建部分
在google过程中,突然就很神奇的找到了docker版本的饥荒服务器(以下简称dst-server)。今年刚好自己也学过docker。就想着试试能不能用docker来搭建,结果发现果然还是docker牛逼。以前自己搭的时候最终以失败告终,还是拜托另一个小伙伴搭建的。这次自己基本docker run就搞定了。
服务器的选择
服务器这里我选的是腾讯云按量计费,根据docker上推荐的(linux系统,1核CPU,1G运存,至少2G内存)。选择了一个按量计费的centos服务器。
注意,如果你不懂服务器的话,最好咨询一下懂行的同学。曾经我自己因为不懂服务器的计费模式,导致账户的200余额被扣光了TAT
安装docker
用ssh登陆进服务器,然后安装docker,这里随便找个教程就行。然后键入docker如果成功出现命令就证明装好了
使用docker运行命令
docker run -v ${HOME}/.klei/DoNotStarveTogether:/data -p 10999-11000:10999-11000/udp -p 12346-12347:12346-12347/udp -it jamesits/dst-server:latest
首次运行这个命令后。docker会在你项目的根路径创建一个隐藏文件夹.klei,这里就是你的饥荒服务器项目啦。
申请token
- 首先在游戏中,点击游戏账户

- 然后在klei网站打开dst-server

- 新增一个user后,将生成的token复制下来

- 将token输入到
.klei/DoNotStarveTogether/DoNotStarveTogether/Cluster_1/cluster_token.txt中

- 配置服务器相关设置
服务器相关设置文件在.klei/DoNotStarveTogether/DoNotStarveTogether/Cluster_1/cluster.ini中
这里基本就是改一下服务器名称和服务器密码即可
[GAMEPLAY]
game_mode = endless ;游戏模式,可选项有三个 survival(生存)、wilderness(荒野)、endless (无尽)
max_players = 6 ;游戏最大玩家数
pvp = false ;是否启用玩家伤害
pause_when_empty = true ;当服务器内没人时暂停时间
[NETWORK]
cluster_name = 服务器名称
cluster_description = 服务器简介
cluster_password = 服务器密码
cluster_intention = cooperative ;服务器风格,类型有四种 交际、合作、竞争、疯狂
autosaver_enabled = true ;是否启用自动存档
enable_vote_kick = false ;是否启用投票踢人
[MISC]
console_enabled = true ;是否启用控制台
[SHARD]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
cluster_key = DontStarveTogetherDedicatedServer
- 重启server
docker container stop 镜像ID
docker run -v ${HOME}/.klei/DoNotStarveTogether:/data -p 10999-11000:10999-11000/udp -p 12346-12347:12346-12347/udp -it jamesits/dst-server:latest
- 检测是不是启动成功
在Don't Starve Together Server List网站上搜自己的服务器名称,如果搜到就证明成功了。
服务器的配置
服务器配置修改后,重启docker即可生效
添加mod
mod的配置文件在.klei/DoNotStarveTogether/DoNotStarveTogether/Cluster_1/mods/dedicated_server_mods_setup.lua中
可以通过两种方式来添加mod。
- ServerModSetup("12346")
添加单个mod,modid从下图这里拿,订阅多个mod就调用多次该方法即可 - ServerModCollectionSetup("12346")
添加mod合集,推荐,可以一次性添加n个mod,可以把自己的mod弄一个合集,然后让小伙伴统一订阅这个合集就行了,不用再一个一个订阅

订阅完毕后重启镜像就会下载这些mod
启用mod
光是告诉服务器去下载哪些mod还不够,还需要告诉服务器启用哪一些mod。在DoNotStarveTogether/Cluster_1/Master/modoverrides.lua中来配置启动哪些mod。(没有就新建一个)
return {
["workshop-797304209"]={ configuration_options={ }, enabled=true },
["workshop-806984122"]={ configuration_options={ }, enabled=true },
["workshop-758532836"]={
configuration_options={
AUTOPAUSECONSOLE=false,
AUTOPAUSEMAP=false,
AUTOPAUSESINGLEPLAYERONLY=true,
ENABLECLIENTPAUSE=false,
ENABLEHOTKEY=false,
KEYBOARDTOGGLEKEY="P"
},
enabled=true
}
}
配置文件大概就是这样,配置起来会非常繁琐。这里建议自己在本地房间创建一个服务器,然后把相应的mod勾选设置都配置好。然后将本地的服务器配置文件Documents\Klei\DoNotStarveTogether\Cluster_1\Master\modoverrides.lua复制到服务器上即可。
然后重启服务器看是否生效
控制台命令
有时候需要执行一些控制台命令为了更好的游戏体验(比如全都死了需要重启世界,就要执行c_regenerateworld())。
控制台命令自行google即可,这里给个我自己搜到的饥荒命令大全
总结
宅在家里无所事事,不如约上二三好友一起去饥荒世界过家家呀,打猎,造房子,种地,应有尽有(逃