Palworldというゲームが2023/1/19に発売された。
このゲームはMinecraftのようにDedicated Serverを個人で建てて誰かと一緒のワールドで遊ぶことができるようだ。友人にサーバを建ててくれと依頼されたので構築することにした。
構築の流れ
サーバを用意する
ConoHa VPSの8GBプランでVPSを建てた。これは推奨要件が
- CPU: 4コア
- メモリ: 8GB以上
だったからだ。実際にこのプランで運用しているとメモリはそれなりに使っていてCPUはかなり余っているという状態だった。ちなみに4GBのサーバでは途中で接続不能になってしまった。
(2024-01-21追記)どうやら要件が変更されて16GB(安定した稼働のためには32GB推奨)となったようです。これはちょっとしんどすぎる。
OSは使い慣れているUbuntu Server 22.04を選択した。Debianよりは色々なものが最初から入っているのでやりやすい。
SSHなどのテンプレ設定を済ませたり、監視のためにmackerel-agentをインストールしたりした。私は監視SaaS Mackerelの中の人(ダイレクトマーケティング)。
ConoHa VPSにはセキュリティグループ機能があるので、Ubuntuのファイアウォールは以下のようにして切った。
sudo ufw disable
また、Palworldのサーバで使うポート(デフォルトだと8211)を許可するセキュリティグループを作って、作成したサーバにattachしておく。
Palworldのサーバ一覧でpingの値を表示したい場合にはここでICMPを許可するセキュリティグループもつけておきましょう。
PalServerを立ち上げる
マニュアルが用意されているので、Linuxのところの記述の通りに作業していく。
一つ詰まったところとして、この手順の通りだとsteamclient.soが見つからないとエラーになってサーバが立ち上がらなかった。エラーログを読んで、以下のようにシンボリックリンクを貼ったら通った。
ln -s ~/Steam/steamapps/common/PalServer/linux64/steamclient.so ~/.steam/sdk64/steamclient.so
(2024-01-21追記)上記のハックについては、現在同様の方法がドキュメントに記載されています。
あとはSystemdにServiceとして登録して常駐できるようにしたら完成。現在はパスワード認証に対応していないということだったので、念のため port オプションを渡すことでデフォルトのポートから変えておいた。(ConoHaのセキュリティグループの設定でもこれに合わせたポートを指定することに注意。)
ExecStart=/home/steam/Steam/steamapps/common/PalServer/PalServer.sh port=12345 players=10 -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS