前言

最近,一款现象级的游戏突然爆火——《幻兽帕鲁》,Steam同时在线峰值突破183万,超过《CS2/CSGO》,跃升至Steam历史第二位,仅次于《绝地求生》(325万)。取得骄人成绩的同时,游戏的官服只能4个人联机组队游玩,并且爆满连不上、崩溃掉线、回档、删档等问题层出不穷。玩家们想获得更好的游戏体验只能选择了另一条路——自建游戏服务器。笔者也是在这个时候动起了自建私服的念头。

当然自建服务器虽然能够极大的提高玩家们的游戏体验,但是也不能解决一切问题。目前受制于官方的内存管理代码缺陷问题,内存无法自动释放,当内存爆满后游戏就会崩溃,目前只能定期重启服务器来释放内存。笔者在这里也期待官方早日修复该bug。

服务器的选择

目前官方推荐的配置是4c 8G以上的服务器,笔者试了一下在该配置下6个小伙伴一起玩了大约3个小时后出现了内存爆了,服务器崩溃重启。

一开始笔者使用的德国的netcup rs1000德国机房,配置4c 8G 320G SSD 2.5Gbps带宽,试了一下,裸连的延迟大约为350ms,比较高体验较差。使用了UU加速器后,延迟降到了大约155ms左右,和小伙伴体验了一下午玩起来延迟是能接受的,不算太影响游戏体验。


· 附上服务器的性能测试

# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2024-01-01                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Wed Jan 24 12:44:35 PM UTC 2024

Basic System Information:
---------------------------------
Uptime     : 1 days, 9 hours, 24 minutes
Processor  : AMD EPYC 7702P 64-Core Processor
CPU cores  : 4 @ 1996.249 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM        : 7.8 GiB
Swap       : 0.0 KiB
Disk       : 310.1 GiB
Distro     : Ubuntu 22.04.3 LTS
Kernel     : 5.15.0-91-generic
VM Type    : KVM
IPv4/IPv6  : ✔ Online / ✔ Online

IPv6 Network Information:
---------------------------------
ISP        : netcup GmbH
ASN        : AS197540 netcup GmbH
Host       : NETCUP-GMBH
Location   : Karlsruhe, Baden-Wurttemberg (BW)
Country    : Germany

fio Disk Speed Tests (Mixed R/W 50/50) (Partition /dev/vda1):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 142.33 MB/s  (35.5k) | 1.52 GB/s    (23.7k)
Write      | 142.71 MB/s  (35.6k) | 1.53 GB/s    (23.9k)
Total      | 285.05 MB/s  (71.2k) | 3.05 GB/s    (47.6k)
           |                      |                     
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 3.52 GB/s     (6.8k) | 3.07 GB/s     (3.0k)
Write      | 3.70 GB/s     (7.2k) | 3.28 GB/s     (3.2k)
Total      | 7.23 GB/s    (14.1k) | 6.36 GB/s     (6.2k)

iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider        | Location (Link)           | Send Speed      | Recv Speed      | Ping           
-----           | -----                     | ----            | ----            | ----           
Clouvider       | London, UK (10G)          | 2.41 Gbits/sec  | busy            | 20.4 ms        
Scaleway        | Paris, FR (10G)           | 2.68 Gbits/sec  | busy            | 20.0 ms        
NovoServe       | North Holland, NL (40G)   | 2.71 Gbits/sec  | 2.34 Gbits/sec  | 10.0 ms        
Uztelecom       | Tashkent, UZ (10G)        | 1.20 Gbits/sec  | 1.67 Gbits/sec  | 77.3 ms        
Clouvider       | NYC, NY, US (10G)         | 1.95 Gbits/sec  | 458 Mbits/sec   | 91.4 ms        
Clouvider       | Dallas, TX, US (10G)      | 1.07 Gbits/sec  | 805 Mbits/sec   | 127 ms         
Clouvider       | Los Angeles, CA, US (10G) | 1.13 Gbits/sec  | 537 Mbits/sec   | 148 ms         

iperf3 Network Speed Tests (IPv6):
---------------------------------
Provider        | Location (Link)           | Send Speed      | Recv Speed      | Ping           
-----           | -----                     | ----            | ----            | ----           
Clouvider       | London, UK (10G)          | 2.68 Gbits/sec  | 2.31 Gbits/sec  | 21.1 ms        
Scaleway        | Paris, FR (10G)           | 2.60 Gbits/sec  | 2.08 Gbits/sec  | 32.0 ms        
NovoServe       | North Holland, NL (40G)   | 2.73 Gbits/sec  | 2.30 Gbits/sec  | 9.89 ms        
Uztelecom       | Tashkent, UZ (10G)        | 1.67 Gbits/sec  | 437 Mbits/sec   | 77.2 ms        
Clouvider       | NYC, NY, US (10G)         | 1.97 Gbits/sec  | 505 Mbits/sec   | 91.4 ms        
Clouvider       | Dallas, TX, US (10G)      | 896 Mbits/sec   | 486 Mbits/sec   | 127 ms         
Clouvider       | Los Angeles, CA, US (10G) | 784 Mbits/sec   | 379 Mbits/sec   | 147 ms         

Geekbench 6 Benchmark Test:
---------------------------------
Test            | Value                         
                |                               
Single Core     | 1199                          
Multi Core      | 3730                          
Full Test       | https://browser.geekbench.com/v6/cpu/4541615

YABS completed in 13 min 10 sec

后来接受了各种种草,选择了腾讯云服务器3个月有优惠款,277人民币3个月,到期后330每个月,配置为4c 16G 220G SSD 14Mbps带宽。机房地区选择距离家最近的即可,笔者选择的上海服务器,裸连延迟大约在35ms,简直是飞一样的感觉。

腾讯云服务器购买链接

带aff版本:https://curl.qcloud.com/odDVgbLl

无aff版本:https://cloud.tencent.com/act/pro/developer_business-scenario

后续发现阿里云也跟进出了一款月付113元人民币、3个月340元人民币的游戏联机云服务器,配置为4c 32G 10Mbps带宽,笔者没有购买过这一款,故不做评价。

·附上服务器性能测试

# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2024-01-01                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Wed Jan 24 08:54:48 PM CST 2024

Basic System Information:
---------------------------------
Uptime     : 0 days, 10 hours, 41 minutes
Processor  : Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz
CPU cores  : 4 @ 2500.000 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM        : 15.1 GiB
Swap       : 0.0 KiB
Disk       : 216.4 GiB
Distro     : Ubuntu 22.04 LTS
Kernel     : 5.15.0-91-generic
VM Type    : KVM
IPv4/IPv6  : ✔ Online / ❌ Offline

IPv4 Network Information:
---------------------------------
ISP        : Shenzhen Tencent Computer Systems Company Limited
ASN        : AS45090 Shenzhen Tencent Computer Systems Company Limited
Host       : Tencent cloud computing (Beijing) Co., Ltd.
Location   : Shanghai, Shanghai (SH)
Country    : China

fio Disk Speed Tests (Mixed R/W 50/50) (Partition /dev/vda2):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 34.74 MB/s    (8.6k) | 184.56 MB/s   (2.8k)
Write      | 34.84 MB/s    (8.7k) | 185.53 MB/s   (2.8k)
Total      | 69.59 MB/s   (17.3k) | 370.09 MB/s   (5.7k)
           |                      |                     
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 162.52 MB/s    (317) | 160.94 MB/s    (157)
Write      | 171.15 MB/s    (334) | 171.66 MB/s    (167)
Total      | 333.67 MB/s    (651) | 332.61 MB/s    (324)

iperf3 binary download failed. Skipping iperf network tests...

Geekbench 6 test failed. Run manually to determine cause.

YABS completed in 72 min 0 sec

阿里云服务器购买链接

无aff: https://www.aliyun.com/daily-act/ecs/activity_selection

幻兽帕鲁联机服务器搭建

Docker搭建

笔者比较喜欢docker的管理方式,故采用的是docker部署的方式。也有参考了一些其他的方式,一并附上。

Docker的安装

如果比较懒不想研究的话可以用官方的一键安装脚本安装,包含了Docker Compose,不需要自己再手动安装。

curl -fsSL https://get.docker.com | bash -s docker

可在此命令后附带--mirror参数设置镜像源,以提高国内服务器下载docker的速度,如使用阿里云进行加速:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

需要注意的是安装完毕后,使用Docker Compose时,需要输入的命令为docker compose而非我们手动安装时输入的docker-compose,笔者也是弄了好久才明白是这样。

国外的服务器至此就已经完成了所有的准备工作,而国内的服务器因为docker源下载速度慢的问题,需要配置Docker Hub 镜像加速器。具体步骤为:

  1. 创建或修改 /etc/docker/daemon.json

    vim /etc/docker/daemon.json
    {
      "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
    }
    #因为笔者用的是腾讯云,故配置了腾讯云镜像,如果需要配置其他镜像加速器可以参考前文链接。
  2. 重启docker服务

    sudo systemctl daemon-reload
    sudo systemctl restart docker

    安装完毕后就可以愉快的部署docker啦。

docker部署

使用的项目链接:GitHub DockerHub

笔者使用了docker compose 部署,docker-compose.yml配置文件如下:

version: '3.9'
services:
  palworld-dedicated-server:
    #build: .
    container_name: palworld-dedicated-server
    image: jammsen/palworld-dedicated-server:latest
    restart: always
    network_mode: bridge
    ports:
      - target: 8211 # 游戏服务器端口
        published: 8211 # 游戏服务器端口
        protocol: udp
        mode: host
      - target: 25575 # rcon控制端口
        published: 25575 # rcon控制端口
        protocol: tcp
        mode: host
    environment:
      - ALWAYS_UPDATE_ON_START=true 
      - MAX_PLAYERS=32 #最大游戏人数
      - MULTITHREAD_ENABLED=true
      - COMMUNITY_SERVER=true #社区内公开游戏服务器
      - RCON_ENABLED=true #是否可以使用rcon控制
      - RCON_PORT=25575 
      - PUBLIC_IP=xxx #游戏服务器ip
      - PUBLIC_PORT=8211 #游戏服务器端口
      - SERVER_NAME=MyPalworldServerName
      - SERVER_DESCRIPTION=MyPalworldDescription
      - SERVER_PASSWORD=xxx
      - ADMIN_PASSWORD=xxx
      #- BACKUP_ENABLED=true 备份配置,笔者没有配置
      #- BACKUP_CRON_EXPRESSION=0 * * * * 备份cron时间间隔
    volumes:
      - ./game:/palworld
  
  rcon:
    image: outdead/rcon:latest
    entrypoint: ['/rcon', '-a', 'xxx:25575', '-p', 'xxx']
    profiles: ['rcon'] 

配置完毕docker-compose.yml文件后,在docker-compose.yml文件所在目录创建game文件夹,并且赋予全部权限:

sudo mkdir game
sudo chmod -R 777 game 

之后就可以使用docker compose up -d部署了,部署完毕后需要等待片刻,第一次运行加载比较慢,第二次就快了。

· 附上docker中的参数描述表:

变量描述默认值允许值范围
ALWAYS_UPDATE_ON_START启动时更新服务器truefalse/true
MAX_PLAYERS最大游戏人数321-32
MULTITHREAD_ENABLED"改进的多线程 CPU 性能”选项truefalse/true
COMMUNITY_SERVER居中truefalse/true
RCON_ENABLED是否允许rcon控制,启用后使用 ADMIN_PASSWORD 登录 - 将监听容器内的端口 25575居右false/true
PUBLIC_IP服务器IP10.0.0.1IP地址
SERVER_NAME服务器端口82111024-65535
SERVER_DESCRIPTION服务器描述jammsen-docker-generated-###RANDOM###字符串
SERVER_PASSWORD服务器密码serverPasswordHere字符串
ADMIN_PASSWORD服务器管理员密码adminPasswordHere字符串
BACKUP_ENABLED在game文件夹中创建备份truefalse/true
BACKUP_CRON_EXPRESSIONCron表达式0 (每小时备份一次)参考Cron表达式

docker运行后的管理

rcon远程控制游戏服务器

可以使用rcon命令来操控游戏服务器,具体命令列表参考官网:https://tech.palworldgame.com/server-commands
docker compose运行rcon命令

 docker compose run --rm rcon "Shutdown {Seconds} {MessageText}" #在游戏内给所有玩家发送MessageText并在Seconds秒后关闭并重启服务器
 docker compose run --rm rcon "DoExit" #强制关闭服务器
 docker compose run --rm rcon "ShowPlayers" #游戏服务器内玩家信息
 docker compose run --rm rcon "Info" #游戏服务器信息
 docker compose run --rm rcon "Save" #保存游戏精度
 docker compose run --rm rcon "KickPlayer {SteamID}" #从服务器中踢掉SteamID用户
 docker compose run --rm rcon "BanPlayer {SteamID}" #禁止SteamID用户进入游戏服务器
 docker compose run --rm rcon "TeleportToPlayer {SteamID}" #传送到目标玩家的当前位置
 docker compose run --rm rcon "TeleportToMe {SteamID}" #传送到目标玩家的当前位置

需要注意的是rcon后的命令为字符串,因此rcon命令前后需要加上"",否则会报错unknown commmand,笔者一开始是不知道的,一直报错没办法解决,翻看了rcon官方doc后才知道有这样的坑。

游戏配置文件修改

如果需要修改游戏配置文件的话,需要修改game/Pal/Saved/Config/LinuxServer/目录下PalWorldSettings.ini文件。具体游戏参数可以参考:

    # 难度
    Difficulty=None,
    # 白天时间流速
    DayTimeSpeedRate=1.000000,
    # 夜晚时间流速
    NightTimeSpeedRate=1.000000,
    # 经验倍率
    ExpRate=2.000000,
    # 帕鲁捕捉倍率
    PalCaptureRate=2.000000,
    # 帕鲁重生倍率
    PalSpawnNumRate=1.000000,
    # 帕鲁伤害倍率
    PalDamageRateAttack=1.000000,
    # 帕鲁防御倍率
    PalDamageRateDefense=1.000000,
    # 玩家攻击倍率
    PlayerDamageRateAttack=1.000000,
    # 玩家防御倍率
    PlayerDamageRateDefense=1.000000,
    # 玩家饥饿消耗倍率
    PlayerStomachDecreaceRate=1.000000,
    # 玩家耐力消耗倍率
    PlayerStaminaDecreaceRate=1.000000,
    # 玩家HP恢复倍率
    PlayerAutoHPRegeneRate=1.000000,
    # 玩家休息时HP恢复倍率
    PlayerAutoHpRegeneRateInSleep=1.000000,
    # 帕鲁饥饿消耗倍率
    PalStomachDecreaceRate=1.000000,
    # 帕鲁耐力消耗倍率
    PalStaminaDecreaceRate=1.000000,
    # 帕鲁HP恢复倍率
    PalAutoHPRegeneRate=1.000000,
    # 帕鲁休息时HP恢复倍率
    PalAutoHpRegeneRateInSleep=1.000000,
    # 建筑伤害倍率
    BuildObjectDamageRate=1.000000,
    # 建筑老化倍率
    BuildObjectDeteriorationDamageRate=1.000000,
    # 采集掉落倍率
    CollectionDropRate=1.000000,
    # 可采集物恢复倍率
    CollectionObjectHpRate=1.000000,
    # 可采集物重生倍率
    CollectionObjectRespawnSpeedRate=1.000000,
    # 掉落倍率
    EnemyDropItemRate=1.000000,
    # 死亡是否掉落 ALL全掉 None不掉
    DeathPenalty=None,
    # 是否允许友伤
    bEnablePlayerToPlayerDamage=False,
    # 
    bEnableFriendlyFire=False,
    # 是否允许入侵事件
    bEnableInvaderEnemy=True,
    # 
    bActiveUNKO=False,
    # 手柄是否可以辅助瞄准
    bEnableAimAssistPad=True,
    # 键鼠是否可以辅助瞄准
    bEnableAimAssistKeyboard=False,
    # 地面最多存在掉落物数量
    DropItemMaxNum=3000,
    # 
    DropItemMaxNum_UNKO=100,
    # 最多据点数量
    BaseCampMaxNum=128,
    # 据点最多工作帕鲁数量
    BaseCampWorkerMaxNum=15,
    # 掉落物最多存在时间
    DropItemAliveMaxHours=1.000000,
    # 是否开启公会超时销毁
    bAutoResetGuildNoOnlinePlayers=False,
    # 公会超时销毁时间
    AutoResetGuildTimeNoOnlinePlayers=72.000000,
    # 公会人数上限
    GuildPlayerMaxNum=20,
    # 孵蛋消耗时间倍率
    PalEggDefaultHatchingTime=72.000000,
    # 帕鲁工作速率
    WorkSpeedRate=1.000000,
    # 
    bIsMultiplay=False,
    # 开启PVP
    bIsPvP=False,
    # 是否可以捡其他部落的死亡掉落
    bCanPickupOtherGuildDeathPenaltyDrop=False,
    # 
    bEnableNonLoginPenalty=True,
    # 是否可以快速传送
    bEnableFastTravel=True,
    # 是否可以选择出生点
    bIsStartLocationSelectByMap=True,
    # 玩家是否停留在游戏中当退出以后
    bExistPlayerAfterLogout=False,
    # 
    bEnableDefenseOtherGuildPlayer=False,
    # 合作玩家数量,似乎没用
    CoopPlayerMaxNum=4,
    # 服务器人数
    ServerPlayerMaxNum=32,
    ServerName="服务器名称",
    ServerDescription="服务器描述信息",
    # 管理员密码和RCON密码
    AdminPassword="",
    # 服务器密码建议先别设
    ServerPassword="",
    # 服务器端口
    PublicPort=8211,
    # 公网Ip 可以不设
    PublicIP="palworld.elmagnifico.tech",
    # RCON相关配置
    RCONEnabled=False,
    RCONPort=25575,
    # 地区配置
    Region="",
    #
    bUseAuth=True,
    # 
    BanListURL="https://api.palworldgame.com/api/banlist.txt"

也有大神搭建了在线生成配置文件生成器网站使用起来也比较方便:https://dysoncheng.github.io/PalWorldSettingGenerator/setting.html

游戏服务器自动重启

因为游戏存在内存泄露问题,目前无法解决,因此当内存爆满后docker内加上restart: always即可实现重启。但是这样的方式在最后内存很高的情况下游戏会出现卡顿影响体验,始终不够优雅,也存在着游戏存档丢失的风险。因为是docker部署,所以可以很轻松的通过crontab来实现,间隔时间段采用rcon给游戏服务器内的玩家发送提示信息后进行自动重启。笔者根据游玩体验选择了间隔4h自动保存并重启,大家也可以根据自己的实际情况进行修改。当然还可以对内存进行监控,写个脚本定期执行来进行重启,笔者觉得太麻烦,偷个懒没有折腾。。。crontab使用起来也很简单只需要键入crontab -e添加以下命令,即可完成自动重启的添加。

0 */4 * * * cd /path/to/game && /usr/bin/docker compose run --rm rcon "Save"
0 */4 * * * cd /path/to/game && /usr/bin/docker compose run --rm rcon "Shutdown {Seconds} {MessageText}"

Edit(2024.1.25 18:30) : 笔者戒除偷懒,已添加脚本memory.sh,通过crontab来每5分钟执行一次检测内存是否在90%以上,在90%以上后执行脚本自动重启,memory.sh脚本和crontab配置如下。

#!/bin/bash
z=`free -m | awk '/Mem:/ {print int($3/($2)*100)}'`
if [ $z -gt 90 ]
then
        cd ~/palworld
        /usr/bin/docker compose run --rm rcon "Save"
        /usr/bin/docker compose run --rm rcon "Shutdown <Second> <Message>" 
fi
*/5 * * * * ~/palmem.sh

需要注意的是,crontab添加之前需要自己执行一次命令确认是自己想要的效果后再进行添加。

游戏服务器的备份

为了防止数据的丢失导致小伙伴大半年玩的游戏数据没了,心碎退游惨剧的发生,数据备份是很必要的。备份的方式多种多样,即可以通过Syncthing备份到其他服务器,也可以通过rclone的方式备份到自己的云盘。笔者选择了后者,因为rclone sync操作起来异常的方便。因为备份前最好关闭游戏服务器,因此可以写一个备份脚本来定期执行备份,用vim创建backup_script.sh:

#!/bin/bash
cd /path/to/game
docker compose down
rclone sync /path/to/game drive:/path/to/game
docker compose up -d

创建完成后chmod +x ~/path/to/backup_script.sh赋予该脚本执行权限,并且使用crontab -e加上定期执行脚本的命令,即可完成定期备份。

0 8 * * * ~/backup_script.sh

一键脚本搭建

笔者是在已经部署完毕玩了两天以后才在论坛发现了有大神分享了这个脚本,原理其实也是docker方式进行部署。试着用闲置机器操作了一下,总之一键脚本优点和缺点一样明显,优点就是非常简单,傻瓜式的,缺点的话,很难自行管理,甚至不知道安装在了哪里。。。至于要不要用,就见仁见智了。如果担心存在会影响机器原有环境等问题的话,笔者还是推荐自己操作一下吧。毕竟docker也很简单。笔者这里贴一下大神的一键安装脚本,也感谢大神的用爱发电的付出。

wget https://www.xuehaiwu.com/wp-content/uploads/shell/Pal/PalServerInstall.sh && chmod +x PalServerInstall.sh && ./PalServerInstall.sh

steamcmd搭建

参考了腾讯云官方的安装方式,该方法操作起来比较复杂,对新手而言不够友好,但是相比于docker占用内存更小,运行游戏更佳。

服务器搭建

以此执行以下代码即可:

#添加steam用户
sudo useradd -m steam
sudo passwd steam

#赋予steam sudo权限
sudo echo "steam   ALL=(ALL:ALL) ALL" >> /etc/sudoers

#切换至steam账号开始部署游戏服务器
sudo -u steam -s
cd /home/steam

# Ubuntu系统steamcd下载安装包
sudo add-apt-repository multiverse; sudo dpkg --add-architecture i386; sudo apt update
sudo apt install steamcmd

# Debian系统steamcd下载安装包
sudo apt update
sudo apt install software-properties-common 
sudo apt-add-repository non-free
sudo dpkg --add-architecture i386 
sudo apt update
sudo apt install steamcmd

#把安装的steamcmd的路径/usr/games/steamcmd链接到系统路径
sudo ln -s /usr/games/steamcmd /usr/bin/steamcmd

#下载服务器程序
steamcmd +login anonymous +app_update 2394010 validate +quit

#启动PalServer
cd ~/.steam
mkdir sdk64
cd ~/.steam/SteamApps/common/PalServer
cp linux64/* ~/.steam/sdk64

#启动服务器的脚本,出现AppID即运行成功
cd ~/.steam/SteamApps/common/PalServer
./PalServer.sh

至此服务端搭建已完毕,为了服务器更好的运行管理,可以配置systemd。

Systemd配置

systemd配置步骤如以下:

  1. 使用vim编辑/etc/systemd/system/palserver.service

    [Unit]
    Description=Palworld Server
    Wants=network-online.target
    After=syslog.target network.target nss-lookup.target network-online.target
    
    [Service]
    WorkingDirectory=/home/steam/PalServer
    
    ExecStart=/bin/bash -c "/home/steam/PalServer/PalServer.sh -port=xxx -players=xx -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS"
    
    LimitNOFILE=100000
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s INT $MAINPID
    
    Restart=always
    RestartSec=10
    
    User=steam
    Group=steam
    
    [Install]
    WantedBy=multi-user.target
  2. 导入palserver.service并启动

    sudo systemctl daemon-reload
    sudo systemctl enable palserver
    sudo systemctl start palserver

写在最后

无论使用什么方法搭建,享受游戏是最重要的啦,笔者希望大家都玩的开心!

最后,我们一起回归到游戏本身吧!笔者想谈谈自己对这款游戏的一些想法。从销量上来看,这款游戏的出现无疑是成功的,在初上线的几天,笔者的朋友圈里的同学动态平均三四条就能看见一个玩帕鲁的,其火爆程度可见一斑。俗话说的好,“莫看江面平如镜,要看水底万丈深。”笔者也想进行一些这款游戏爆火背后的思考。

从游戏内容上看,大家都知道这是一款缝合怪游戏,顾名思义就是把各种游戏的比较优秀的元素融为了一体,比如塞尔达里面的射箭、骑马、滑翔伞飞等等宝可梦类似的捕捉和世界观各种FPS游戏的射击元素方舟里的生存挑战资源收集等等诸如此类的,这些都是看得见的。如果说缝合的有什么令笔者感觉极度不适的地方的话,当属它的美工,可以说是毫无新意可言,里面的很多帕鲁都是宝可梦的融合比如笔者还没玩就看见了很像是路卡利欧的黑色帕鲁只换了个皮肤和毛发的颜色、长得很像皮皮和喵喵合体的帕鲁、有着血翼飞龙配色和拉帝欧斯外形的鸟类帕鲁。。。诸如此类的,我居然每一只都能算是找得到原型,很难有让我眼睛一亮的帕鲁的出现,更加体现了他们美工方面的不用心,让我玩起来确实感觉非常不适。或许可以玩玩这个游戏,但笔者却很难支持这样做法。又或许缝合本身就是一种创新吧,但笔者还是希望以后少一些缝合,多一些新意,这虽然听起来简单却是最难的事情。

游戏可玩性而言,因为它确实缝了很多东西,玩法确实特别多,但虽然玩法众多,但是让笔者难以接受的是它的对战做的非常的简陋,笔者又是一个比较喜欢研究宝可梦对战属性克制、技能效果等等的玩家,其实它也远没有网上吹的那么优秀,说白了确实是靠着同行的“衬托”。

作为一名宝可梦的粉丝,我内心十分的五味杂陈。GF多年的摆烂让宝可梦游戏的质量堪忧,各种bug层出不穷,然鹅坐拥世界第一IP的GF仍旧可以坐着赚米。相反的《幻兽帕鲁》也确实做到了宝可梦没有做到的很多的事情,里面又有多少和我一样天天骂GF的宝迷们,看着这样一款没什么创新点(我这么说应该不过分)全靠着同行衬托游戏的爆火,而内心五味杂陈。其实,我们心中想更想那一只只帕鲁不是帕鲁,而是真正进过美工精心建模的pokemon吧。

后续更新

  • 2024.1.25 20:00:游戏服务器更新了v0.1.3.0版本,因为小伙伴们大家一起使用的是v0.1.2.0的开心版客户端,因此由于客户端与服务器版本不匹配不匹配产生了报错。解决方法的思路要么就是把服务器降级,要么就是升级客户端版本,由于开心版的v0.1.3.0还没有出来,迫不及待的想要继续玩,因此只能选择服务器降级。然鹅了解了一圈之后发现:我们是选择无法在 SteamCmd 中安装特定版本,只能是最新的版本。所以一旦自动更新完成了就和笔者一样杯具了。但是可以通过设置ALWAYS_UPDATE_ON_STARTfalse来避免更新。
  • 2024.1.26 8:00:开心版也有v0.1.3.0了,问题完美收官。