本文适合有一定Linux基础的同学阅读
前言
最近在玩Core Keeper,还算有趣,虽然自动化上还差点意思,和mc比确实还差不少东西。不过已经有一些能把玩的东西了。
昨天玩是朋友开房间,我们加进去玩,类似帕鲁。所以还是有很多不便,总不可能其他人想玩就叫房主开服吧。
于是就有了这篇文章,主要介绍一下core keeper的开服流程,和一些心得。
开服手段
稍微了解了一下开服方式,其实和帕鲁几乎一模一样,都是用steam开服,个人PC机就是去下Steam的服务端开服,而服务器就是用SteamCMD开服。
所以既然有Steam CMD了,那也必然会有封装好的Docker镜像,网上找了一下确实有,但是经过我的使用验证,这些Docker镜像都创建的太久远了,GitHub上能搜到的都是22年的,在此期间CK已经跟新了很多个版本,因此已经不再适用。
因此最后还是选择了最基础的Steam CMD开服方法。
快速上手
SteamCMD
SteamCMD是steam的命令行版本,它保留了一些steam的基础功能,例如账号登录,联机。主要的目的就是用来开专有服务器。(有很多游戏例如CS,帕鲁都是用的SteamCMD开私服)
安装SteamCMD
steamCMD官方手册:https://developer.valvesoftware.com/wiki/SteamCMD#Linux_2
安装手册上写的非常清楚了,这里贴一下原文:
账户:
创建一个名为 steam
的用户帐户,以安全地运行 SteamCMD,并将其与操作系统的其他部分隔离开来。
警告:
请勿在 root 用户的身份下运行 steamcmd。这样做存在安全风险。
-
以 root 用户身份创建 steam 用户:
sudo useradd -m steam sudo passwd steam
-
进入其主目录:
sudo -u steam -s
cd /home/steam
Ubuntu安装:
要安装 SteamCMD,必须启用 multiverse 仓库和 x86 架构的软件包。
sudo add-apt-repository multiverse; sudo dpkg --add-architecture i386; sudo apt update
sudo apt install steamcmd
安装完成后输入 steamcmd
看一下是否能进入steamcmd的编辑模式。
SteamCMD基础使用
匿名登录:
login anonymous
退出:
quit
安装某个服务(例如1007)
app_update 1007 validate
安装Core keeper服务器
在装好steam CMD后,进入Steamcmd
steamcmd
- 匿名登录
Steam> login anonymous
- 安装Steamworks SDK Redist服务
因为某些原因(可以看后面安装服务端自带的README),Core keeper的服务端服务要调用Steam works SDK服务。
Steam> app_update 1007 validate
- 安装Core Keeper服务端服务
Steam>app_update 1963720 validate
- 退出SteamCMD
Steam>quit
如果你没有修改过SteamCMD的安装目录的话,此时你可以去到~/.steam/SteamApps/common/'Core Keeper Dedicated Server'
这个目录找到启动脚本_launch.sh
cd ~/.steam/SteamApps/common/'Core Keeper Dedicated Server'
运行这个启动脚本
sudo bash _launch.sh
正常无误的话,在运行过后会给出一段Game-ID:xxxxxxxxxxxxxxxxxxx
,这个就是平时和朋友联机,朋友发的那一段代码,打开游戏输入后就可以进入了。
存档替换
存档位置是在~/.config/unity3d/Pugstorm/‘Core Keeper’/DedicatedServer/worlds
很蛋疼的是存档居然不和启动脚本在一个位置,隔着好几层层级嵌套。要替换存档就把以前的存档重命名为这个目录内的,然后覆盖即可。
服务器其他属性配置
服务器属性配置文件在~/.config/unity3d/Pugstorm/‘Core Keeper’/DedicatedServer/ServerConfig.json
具体属性解释如下:
参数 | 描述 |
---|---|
-world 0 | 要使用的世界索引。 |
-worldname “Core Keeper Server” | 服务器的名称。 |
-worldseed 0 | 用于新世界的种子。设置为0以生成随机种子。 |
-gameid “” | 用于服务器的游戏ID。需要至少28个字符且是字母数字的组合,不包括Y、y、x、0、O。空或不有效意味着在启动时将生成一个新的ID。 |
-datapath “” | 保存文件位置。如果未设置,则默认为默认的Core Keeper保存位置下的名为"DedicatedServer"的子文件夹。 |
-maxplayers 100 | 允许连接到服务器的最大玩家数。 |
-worldmode 0 | 设置世界的世界模式。可以是Normal (0)、Hard (1)、Creative (2)、Casual (4)。注意:当前不支持在创造模式和非创造模式世界之间切换。 |
-port |
要绑定到的端口。如果未设置,则服务器将使用Steam中继网络。如果设置了端口,客户端将直接连接到服务器,且端口需要打开。 |
-ip 0.0.0.0 | 仅在设置了端口时使用。设置服务器将绑定到的地址。 |
-season -1 | 通过将其设置为None (0)、Easter (1)、Halloween (2)、Christmas (3)、Valentine (4)、Anniversary (5)、CherryBlossom (6)中的任何一个来覆盖当前季节。-1是默认设置,其根据系统日期设置。 |
参考:
中文教程:
开服流水账:https://steamcommunity.com/app/1621690/discussions/0/3275817873363439916/
异常问题解决:https://steamcommunity.com/app/1621690/discussions/0/3271312871346466708/?l=norwegian
wiki开服指南:注意有坑,它的steamworks SDK和游戏服务端不在同一级目录内。
https://core-keeper.fandom.com/wiki/Dedicated_Server#Setup_on_a_Debian_based_distro_(Debian/Ubuntu/Mint/etc.)
Q.E.D.