パルワールド Linuxサーバの建て方

2024/1/19発売のゲーム「パルワールド」について、Linuxサーバの立て方の記事になります。
自分で建てたところ、少し困った点もあったのでまとめておきます。

公式の説明に沿ってサーバを用意する

公式より説明ページが用意されています。
https://tech.palworldgame.com/dedicated-server-guide
とりあえずはこちらに沿ってサーバを用意していきます。

steamcmdコマンドが利用可能な状態にする

steamcmdというsteamで提供されているサーバなどを起動するためのコマンド群を入れます。
arkなどのサーバも本コマンドで建てることができます。aptで入るので簡単です。

ubuntu

sudo add-apt-repository multiverse; sudo dpkg --add-architecture i386; sudo update
sudo apt install steamcmd

debian

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」コマンドが利用できることを確認してください。

ubuntu@palworld:~$ steamcmd 
tid(2993) burning pthread_key_t == 0 so we never use it
Redirecting stderr to '/home/ubuntu/Steam/logs/stderr.txt'
Logging directory: '/home/ubuntu/Steam/logs'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1705108307
-- type 'quit' to exit --
Loading Steam API...dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
OK
Steam>q
Command not found: q
Steam>exit
ubuntu@palworld:~$ 

パルワールドをインストールする

サーバをインストールしたいディレクトリに移動し、下記コマンドを実行します。

私は専用の仮想環境を用意したので、カレントディレクトリの「/home/ubuntu」にインストールを行いました。

steamcmd +login anonymous +app_update 2394010 validate +quit

インストールが完了すると、「Steam」ディレクトリが作成されています。

3.パルワールドを起動する

「Steam/steamapps/common/PalServer/」に移動します。

lsコマンドで下記のようなファイルがある場所に移動してください。

ubuntu@palworld:~/Steam/steamapps/common/PalServer$ ls
DefaultPalWorldSettings.ini    Manifest_NonUFSFiles_Linux.txt  PalServer.sh
Engine                         Manifest_UFSFiles_Linux.txt     linux64
Manifest_DebugFiles_Linux.txt  Pal                             steamclient.so

「./PalServer.sh」コマンドを実行することでサーバーの起動ができます。

現時点では下記の様なエラーが出ると思われます。

ubuntu@palworld:~/Steam/steamapps/common/PalServer$ ./PalServer.sh 
Shutdown handler: initalize.
Increasing per-process limit of core file size to infinity.
dlopen failed trying to load:
steamclient.so
with error:
steamclient.so: cannot open shared object file: No such file or directory
dlopen failed trying to load:
/home/ubuntu/.steam/sdk64/steamclient.so
with error:
/home/ubuntu/.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Sys_LoadModule failed to load: /home/ubuntu/.steam/sdk64/steamclient.so

上記の例ではエラーが「/home/ubuntu/.steam/sdk64/steamclient.so」が見つからないと出ています。

その場合は下記の対応をしてください。(本例では「/home/ubuntu/Steam/steamapps/common/PalServer/」にインストールされています。ご自身の環境に合わせてください。)

  • sdk64と出る場合は、「/home/ubuntu/Steam/steamapps/common/PalServer/linux64/steamclient.so」を「/home/ubuntu/.steam/sdk64/steamclient.so」にコピー
  • sdk32と出る場合は、「/home/ubuntu/Steam/steamapps/common/PalServer/steamclient.so」を「/home/ubuntu/.steam/sdk64/steamclient.so」にコピー
ubuntu@palworld:~/Steam/steamapps/common/PalServer$ ls
DefaultPalWorldSettings.ini    Manifest_NonUFSFiles_Linux.txt  PalServer.sh
Engine                         Manifest_UFSFiles_Linux.txt     linux64
Manifest_DebugFiles_Linux.txt  Pal                             steamclient.so
ubuntu@palworld:~/Steam/steamapps/common/PalServer$ cp linux64/steamclient.so /home/ubuntu/.steam/sdk64/steamclient.so

正しく起動すると下記のような状態になります。

サーバーは初期状態でport=8211/udpで起動しています。

ubuntu@palworld:~/Steam/steamapps/common/PalServer$ ./PalServer.sh port=8211
Shutdown handler: initalize.
Increasing per-process limit of core file size to infinity.
dlopen failed trying to load:
steamclient.so
with error:
steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Loaded '/home/ubuntu/.steam/sdk64/steamclient.so' OK.  (First tried local 'steamclient.so')
CAppInfoCacheReadFromDiskThread took 4 milliseconds to initialize
dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
Setting breakpad minidump AppID = 2394010
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.

未分類

Posted by penM