帕鲁——启动!幻兽帕鲁私人服务器搭建以及排雷

帕鲁——启动!幻兽帕鲁私人服务器搭建以及排雷

最近很火的资本家模拟器游戏幻兽帕鲁大家都玩了吧,是不是想到你一睡觉帕鲁也跟着睡觉就浑身难受?正好最近我们几个朋友也在一起玩幻兽帕鲁,所以就搭建了一个私人服务器,这里水一篇文章记录一下。

发布于 7个月前
预计阅读 10 分钟

文章内容可能已过时

本文发布于 212 天前,文中的信息可能已经发生变化,请读者注意甄别。

本文头图:BlueArchive Fankit@アビドスリゾート復旧対策委員会

最近很火的资本家模拟器游戏幻兽帕鲁大家都玩了吧,是不是想到你一睡觉帕鲁也跟着睡觉就浑身难受?正好最近我们几个朋友也在一起玩幻兽帕鲁,所以就搭建了一个私人服务器,其中遇到不少问题,这里水一篇文章记录一下其中遇到的问题。

前置需求

硬件

根据幻兽帕鲁官方的推荐,需要准备一个 4C16G 以上的服务器。考虑到它的服务端其实就是没有界面的客户端,这个服务器还是能性能能搞多高就搞多高吧~我们的服务器最多有七八个人同时在线,从最初的 4C16G 一路加到了 20C32G...

0203_JK6NeD.png

所以 在预算充足的情况下可以多搞一点性能。

系统

对于服务器来说,我比较推荐使用 Linux 系统,一是远程时可以使用 ssh 非常方便,二是 Linux 系统没有 GUI 可以把更多的性能放在游戏服务端的资源上。我们的服务器是运行了 Debian 11 的操作系统,如果你习惯用 Ubuntu 的话,也是没有问题的。

安装控制台程序

Linux 操作系统的唯一缺点可能就是操作控制方面不够直观了,我阅读了幻兽帕鲁官方提供的开服教程,发现官方是提供了一个 sh 文件用来运行服务端。这就好多了 —— 我们可以使用一些第三方控制台来管理这个 sh 文件。还记得我之前介绍过 Minecraft 时候介绍的控制台程序 MCSManager 吗?那个就挺不错的,如果你有正在运行的 MC 服务器,可以借用那个控制台程序来管理幻兽帕鲁的服务端进程。安装指令是:

Bash
bash
wget -qO- https://gitee.com/mcsmanager/script/raw/master/setup_cn.sh | bash

如果你还是不知道该怎么安装的话,我想你可以前往:Minecraft 开服教程(一)|方块人,启动! 这个文章中一探究竟,里面已经写的非常明白啦!

安装 SteamCMD

幻兽帕鲁服务端是使用 SteamCMD 来管理游戏内容和文件的。官方提供了包管理器安装和直接安装两种方式,根据我在 Debian 12 和 11 上的多次安装,我发现直接安装相对来说会直观快捷一些。先在这里放出 SteamCMD 的官方教程页面:SteamCMD - Valve Developer Community 我将上文进行整理,总结出手动安装 SteamCMD 的步骤

新建非 Root 用户

SteamCMD 不允许 Root 用户直接启动,因此我们需要创建一个非 Root 用户。在 Root 用户或者具有 root 权限的用户下执行

other
sudo useradd -m steam sudo passwd steam

来创建名为 steam 的用户和为 steam 用户创建密码,随后前往这个用户和进入这个用户的家目录

other
sudo -u steam -s cd /home/steam

如果你发现切换用户之后没有办法使用 Tab 键补全指令了,那么请在 「$」符号后输入 bash 并回车来开启一个 Bash。

然后切换回 Root 用户,进行下一步

如果你想退出 Steam 这个用户,请按 Ctrl+D 退出到上一个界面。

安装依赖

对于 Debian 用户来说,在 Root 用户先执行

other
sudo apt-get install lib32gcc-s1

来更新软件包,随后切换到 steam 用户

other
sudo -iu steam

安装 SteamCMD

新建一个文件夹来存放 SteamCMD 以及由 SteamCMD 下载的文件

other
mkdir ~/Steam && cd ~/Steam

然后下载 SteamCMD 的二进制执行文件

other
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

下载完毕后使用 chmod +x steamcmd.sh 提升权限

首次运行和下载游戏

使用 steam 用户进入 steam 文件夹并运行 steamcmd.sh 文件

other
cd ~/Steam ./steamcmd.sh

SteamCMD 会加载一些必要的文件,完成后会显示 Steam>

0203_eNXzaj.png

输入 login anonymous 来匿名登录,如果此步骤出现问题,则可能需要(ProxyChains 等工具)配置网络环境;出现 OK 则为登录成功。

0203_unJPZK.png

然后输入 app_update 2394010 validate 来下载游戏,其中「2394010」 就是 幻兽帕鲁的服务端 ID,下载大概大小为 4GB 左右,具体速度视网络环境而定。下载完成之后会进行校验。

下载游戏依赖

使用下面的指令安装游戏依赖(SteamCMD)

other
app_update 1007

下载完成按下 exit 退出 steamCMD。新建文件夹并将下载的文件放入

other
mkdir -p ~/.steam/sdk64/ cp /home/steam/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so ~/.steam/sdk64/

配置 MCSManager 使其能够控制服务端启停

登录你的 MCSManager 控制台,创建用户(或者登录管理员账户),在左边菜单栏中的「应用实例」中选择新建实例

0203_9RRVnn.png

选择「其他游戏服务端」或者「通用控制台程序」,再新界面中选择「无需文件或选择已存在文件」

0203_Fq5T81.png

其中:

  • 实例名:随意填写,方便记忆即可
  • 启动命令: sudo -u steam bash PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS EpicApp=PalServer
  • 服务端文件目录: /home/steam/Steam/steamapps/common/PalServer

如果你不是按照我的方法创建用户和安装 SteamCMD 的,请调整对应的用户名和服务端文件的路径。

随后进入控制台选择「开启实例」即可。

0203_JkxHbs.png

配置自动重启和更新指令

配置定时重启

使用 MCSManager 管理服务端进程的最大好处就是可以配置自动重启。由于这个游戏的服务端没有自动卸载区块和自动回收内存机制,导致它占用的内存会越来越大,这时我们就可以使用 MCSManager 的计划任务功能来配置自动重启。点击「计划任务」,选择「新增计划任务」

0203_e6kNZ3.png

将「发送命令」修改为「重启实例」,将「间隔时间性任务」改为「周期时间性任务」。调整时间和星期,然后直接点击保存即可。如果需要在一天内多次重启,请添加多个计划任务。

配置意外重启

MCSManager 支持非计划终止实例后自动重启,也就是说如果不是你手动终止的实例,控制台可以帮助你自动重启。这在服务端崩溃时很有帮助。在控制台的「事件任务」中勾选「自动重启」即可。

0203_AtRxn6.png

配置更新指令

幻兽帕鲁的服务端更新指令本质上就是重新下载新内容,所以按照 SteamCMD 的指南,我们只要在需要更新时重新运行 steamcmd +login anonymous +app_update 239401 validate +quit 即可。

我们前往 MCSManager 控制台,进入实例,选择「高级实例设置」,在更新文件命令处输入上面的指令即可

0203_4UCaJp.png

other
sudo -iu steam bash -c './steamcmd +login anonymous +app_update 239401 validate +quit'

如果你不是按照我的方法创建用户和安装 SteamCMD 的,请调整对应的用户名和服务端文件的路径。

已知问题

如果你之前使用幻兽帕鲁官方教程进行开服和游玩,按照我的方法操作后会出现用户资料丢失的情况,包括但不限于:

  • 重新捏脸
  • 重新开图和传送点
  • 背包清空
  • 公会信息丢失

等问题。除了删档重新来过之外,还可以通过迁移 UUID 的方式恢复上述内容,这个迁移方法我另开一文说明。当然,最理想的还是重新开档重新来过,不然遇到小问题也是在所难免的,毕竟这个游戏的服务端做的不那么令人满意...

版权声明

本文采用 CC BY-NC-SA 4.0 许可协议

我非常荣幸您愿意:

  • 共享和演绎

但是还请您务必:

  • 署名、仅非商业性的使用和使用相同的方式共享

目录