国内看了半天全都是windows server环境的,蚌埠住了,自己去外边搜了一下ubuntu版
本教程创建时Core Keeper版本0.7.3
貌似国内第一份求求了三连点个赞
发现了一点错误,二次修改时版本为0.7.3.3
发现了一个我写的逆天错误,又重新从一个完全空白的服务器重搭了一遍,文章重新订正,三次修改版本为1.0.0.2
不小于1核2G ubuntu22.04 云服务器(具体搭建及ssh连接教程请自行检索,tx云al云都可)
我用的2核4G的但看了一下后台看着占用不高,内存占用2G以内,感觉玩的人不多单核完全能cover住,甚至看到有老哥把这玩意放树莓上跑(
目测带宽占用很低
apt安装steamcmd有点问题我这里放的是安装包的教程
配置环境steamcmd环境
中间全部yesOK就可以
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install lib32gcc-s1 安装steamcmd
mkdir ~/steamcmd
cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz 启动steamcmd(不要使用sudo权限去启动steamcmd)
./steamcmd.sh 看到steam>说明大功告成
遇到下面这个报错可无视不会有影响
Loading Steam API...dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory 然后在steam>输入
login anonymous
app_update 1963720
app_update 1007
quit P.S. 如果登录运行上面的某行一直在retrying,建议quit退出steamcmd并重进
以后遇到版本更新的操作请终止游戏进程后从启动steamcmd操作开始执行一遍就ok
进入游戏目录
cd ~/Steam/steamapps/common/Core\ Keeper\ Dedicated\ Server/ 里面有一个README.txt的文件那个是游戏服务器执行的说明文档
先运行一遍游戏(请使用root权限执行,貌似不用会报错)
./_launch.sh 看到Game ID弹出说明游戏正常运行了
先按ctrl+C终止游戏进程
然后去找配置文件(要先执行过游戏一次才会产生配置文件)
cd ~/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/
#或者 cd /root/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/
#配置文件夹会在用户home目录里,无法访问root文件夹可以使用sudo -s的方式切换为root用户
ls -l 配置文件目录里有如下几个文件和文件夹
-rw-rw-r-- 1 ubuntu ubuntu 234 Aug 31 00:15 Admins.json
-rw-rw-r-- 1 ubuntu ubuntu 234 Aug 31 00:11 Admins.json.pugbackup
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 30 22:39 modloader
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 30 22:39 mods
-rw-rw-r-- 1 ubuntu ubuntu 21 Aug 31 00:15 PlayerBans.json
-rw-rw-r-- 1 ubuntu ubuntu 21 Aug 31 00:11 PlayerBans.json.pugbackup
-rw-rw-r-- 1 ubuntu ubuntu 257 Aug 31 00:13 ServerConfig.json
-rw-rw-r-- 1 ubuntu ubuntu 257 Aug 31 00:12 ServerConfig.json.pugbackup
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 31 00:15 worlds 介绍一下每一个文件和文件夹的作用
worlds文件夹是服务器内存
所有结尾是pugbackup的都是原文件的备份文件
Admin.json是管理员用户配置,默认第一个进入服务器的人会成为管理员
PlayerBans.json是黑名单
mods和modloader文件夹是跟mod相关的,新版本中增加了一个modloader(不知道不会用)
ServerConfig.json是服务器配置,文件中各个配置的含义如下所示
{
"gameId": "2222222222222222222222",
//用于服务器的游戏ID。需要至少28个字符的字母和数字,不包括Y,y,x,0,O.不填或无效表示将在开始时生成一个新的ID。这里我用了一堆2来举例
"world": 0,
//表示使用哪个世界文件,0将会使用worlds文件夹中0.world.gzip
"worldName": "Core Keeper",
//服务器名称
"worldSeed": 0,
//生成新世界时使用的种子,设置为0将会随机
"maxNumberPlayers": 100,
//最大游玩人数
"maxNumberPacketsSentPerFrame": 1,
"networkSendRate": 20,
//网络配置,不懂请无视
"worldMode": 0,
//为世界设置世界模式。可以是普通(0),困难(1),创意(2),休闲(4)。注意:目前不支持在创意和非创意世界之间切换。
"seasonOverride": -1
//通过设置为None (0), Easter (1), Halloween (2), Christmas (3), Valentine (4), Anniversary (5), CherryBlossom(6)中的任何一个来覆盖当前季节。-1是根据系统日期设置的默认设置。
} 或者在执行_launch.sh时带参数执行,与上面同理,具体请看README.txt
其中有三个是ServerConfig.json中没有的
-port
-ip 0.0.0.0 仅当设置了端口时使用。设置服务器将绑定到的地址。
所以如果不想使用steam中转可以使用如下命令执行
./_launch.sh -port 27015 -ip 0.0.0.0 -datapath 这个是1.0.0新加的参数,是保存的文件位置。如果没有设置,它默认是一个名为“DedicatedServer”的子文件夹,位于默认的Core Keeper保存位置(上文提到的配置文件目录)。P.S. 非常不建议使用,这玩意可以理解为快速更换服务器的方法,对于普通使用者不建议使用(主要是我没试过)
如果想要替换本地已有的存档请找到本地存档后替换
本地存档位置C:\Program Files (x86)(steam安装位置,装其他盘的自行替换)\steam\userdata\(你的ID)\1621690\remote\map
将本地存档中的.gzip放到刚才讲的服务器配置文件夹中的worlds文件夹里(注意ServerConfig.json配置文件中的world项)
P.S. 本地存档可能会存在多个.gzip文件,可以通过先进入你需要的地图,随便挖两下,然后保存退出,查看文件修改时间哪个最新来判断自己需要的文件
执行游戏需要挂在到后台,不推荐使用nohup,子进程有点多自己不会杀比较麻烦,容易有漏的,以下将展示使用screen运行游戏
sudo apt install screen 创建一个名叫corekeeper的窗口并进入
screen -S corekeeper 进入游戏目录并运行
cd ~/Steam/steamapps/common/Core\ Keeper\ Dedicated\ Server/
./_launch.sh 看到GAME ID就可以进游戏联机了(这里贴一个正常启动的样子)

按ctrl + A +D退出窗口后台运行(不是关闭窗口)
输入以下可再次进入
screen -r corekeeper 按ctrl +C终止游戏服务器进程,输入exit关闭窗口

游戏本体大概占1.5~1.8G内存,我服务器后台还有其他业务,游戏流畅丝滑
研究了一晚上累死了,等我看看什么时候有空研究研究扔到docker里,有用的话给个三连吧orz