风口抓猪-借助亚马逊云科技EC2服务器即刻构建PalWorld(幻兽帕鲁)私服~~~持续更新中

Pocketpair出品的生存类游戏《幻兽帕鲁》最近非常火,最高在线人数已逼近200万。官方服务器亚历山大,游戏开发商也提供了搭建私人专用服务器的方案,既可以保证稳定的游戏体验,也可以和朋友一起联机游戏,而且还能自定义经验翻倍等游戏里的一些选项。
那么如何构建一个专属于您和您的小伙伴的游戏服务器呢?这也是本文将要描述的主要内容,我们将引导您在亚马逊云科技上从最基础的服务器选型创建到Step By Step搭建游戏服务器环境,其主要步骤如下:

  1. 服务器的选型及创建
  2. 脚本部署
  3. 游戏优化
  4. 存档备份及导入

视频教程

【亚马逊云科技】幻兽帕鲁-风口抓猪-借助亚马逊云科技EC2服务器即刻构建PalWorld(幻兽帕鲁)私服~~~持续更新中

Palworld / 幻兽帕鲁

image.png
在PalWorld中,您可以在广阔的世界中收集神奇的生物“帕鲁”,派他们进行战斗、建造、做农活,工业生产等,这是一款支持多人游戏模式的全新开放世界生存制作游戏。
在帕鲁的世界,你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活,也可以投身于与偷猎者进行生死搏斗的冒险。
帕鲁可以进行战斗、繁殖、协助你做农活,也可以为你在工厂工作。当然你也可以将它们进行售卖,或肢解后食用。

利用亚马逊云科技EC2实例快速搭建私服

推荐配置

EC2服务器选型及创建

建议配置

首先参阅《Palworld tech guild》中的Requirements,我们需要4H16G的配置,那么此处建议选型m6i/7i的通用服务器,其规格比例为1:4
image.png

服务器创建

首先进入EC2控制台台,启动新实例

image.png

设置服务器名称、操作系统选择

image.png

选择实例类型、登录密钥对、网络及安全组设置

image.png

设置存储

image.png

设置User-Data

image.png

填充如下内容

#!/bin/bash
wget -O - https://raw.githubusercontent.com/flying1574/PalServerInstallScript/main/ubuntuInstall.sh|sh

sleep 5

export steam_user=steam
export log_path=/tmp/pal_server.log
export steam_user_path=~steam
export steamcmd_path=$(whereis steamcmd|awk '{print $2}')

sudo \cp $steam_user_path/Steam/steamapps/common/PalServer/DefaultPalWorldSettings.ini $steam_user_path/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
sudo chmod 777 $steam_user_path/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini 

# 更新游戏(可选)
# sudo -u $steam_user $steamcmd_path +login anonymous +app_update 2394010 validate +quit >> $log_path
sudo systemctl restart pal-server

image.png

image.png

登入服务器,查看pal-server是否正常运行
netstat -nulp
systemctl status pal-server

image.png

登入游戏

加入多人游戏

image.png

填入已配置好的EC2实例的公网IP地址

image.png

开始游戏

image.png
image.png

查看PalWorld Server连接状况

image.png

进阶配置

游戏优化-第三方优化patch

# 定义初始变量
steam_user=steam
log_path=/tmp/pal_server.log
steam_user_path=~steam
steamcmd_path=$(whereis steamcmd|awk '{print $2}')


# 定义Binaries路径
bindir=`find /home/ -name Pal`/Binaries/Linux

# 下载并替换文件
sudo systemctl stop pal-server
sudo cp $bindir/PalServer-Linux-Test $bindir/PalServer-Linux-Test.bak
sudo wget -O $bindir/PalServer-Linux-Test https://github.com/VeroFess/PalWorld-Server-Unoffical-Fix/releases/download/1.3.0-Update-3/PalServer-Linux-Test-Patch-Update-3
sudo chmod 775 $bindir/PalServer-Linux-Test
sudo systemctl restart pal-server

自定义配置(设置密码为例)

第三方前端页面配置

https://palworld-config.liziyi0914.com/

image.png

palConf=`find / -name PalWorldSettings.ini`
vi $palConf

image.png

重启游戏

systemctl restart pal-server

image.png
image.png

备份及恢复

备份游戏

# 安装zip/unzip命令
sudo apt install zip unzip
# 定义Saved路径
sd=`find /home/steam/ -name 'Pal'|awk '{print $1}'`/Saved
# 以时间为文件名打包,存储在当前目录下
zip -r PalWorld-$(date +"%Y-%m-%d_%H-%M-%S").zip $sd

恢复游戏

服务器恢复服务器存档(Linux)

请先确保您已成功上传备份的Saved压缩文件

# 定义初始变量
steam_user=steam
log_path=/tmp/pal_server.log
steam_user_path=~steam
steamcmd_path=$(whereis steamcmd|awk '{print $2}')

# 安装unzip命令
sudo apt install unzip
# 定义Saved路径
sd=`find /home/steam/ -name 'Pal'|awk '{print $1}'`/Saved
# 解压您的PalWorldSave压缩包到Saved,其中需要替换为您自己的PalWorld.zip
unzip -o PalWorld-xxx.zip -d $sd

# 替换LinuxServer
LSN=$(ls -tr $sd/SaveGames/0/|awk 'NR==1{print $1}')
sed -i "s/^DedicatedServerName=.*/DedicatedServerName=$LSN/" $sd/Config/LinuxServer/GameUserSettings.ini
chmod 777 -R $sd

# 更新并重启游戏
sudo -u $steam_user $steamcmd_path +login anonymous +app_update 1007 validate +quit >> $log_path
sudo -u $steam_user $steamcmd_path +login anonymous +app_update 2394010 validate +quit >> $log_path
sudo -u $steam_user $steamcmd_path +login anonymous +app_update 1007 +quit >> $log_path
sudo cp $steam_user_path/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so $steam_user_path/.steam/sdk64/
systemctl restart pal-server


参考文档

Palworld tech guide:https://tech.palworldgame.com/dedicated-server-guide#linux
How to Host a Dedicated Server in Palworld:https://beebom.com/how-host-dedicated-server-palworld/
【玩转轻量云】幻兽帕鲁服务器部署保姆级教程(持续更新):https://cloud.tencent.com/developer/article/2382000