パルワールドのサーバーを無料で3カ月間建てる方法を解説。Google Cloudで専用サーバーを構築する。
Google Cloudと呼ばれるクラウドシステムを使って、パルワールドの最大同時接続数32人の専用サーバーを構築する。コードを書いたことのない完全に初心者の人にも分かるように解説するので参考にしてほしい。
長所と短所
〇初回は無料クレジットが300ドル分ある。3カ月の有効期限付き。
〇IPアドレスの変更が簡単にできる。荒らし対策に。
〇自動起動や自動停止がスケジュール管理によって簡単にできる。コード不要。
×最初はコードを書く必要がある
×支払い情報の登録が必須。クレジットカードなど。
推奨スペック
・CPUは4コア以上
・メモリは32GB以上
・同時接続数は5人以上を想定
公式によると快適に遊ぶなら32GB以上は必要とのこと。序盤は拠点数が少なく、自動で動くパルの数も少ないのでサーバー負荷は軽い。しかし、中盤以降になって人数が増えて拠点数が増加すると、一気にサーバー負荷が高まり、メモリをすごい量で消費する。
最低スペック
・CPUは4コア以上
・メモリは16GB以上
・同時接続数は4人までを想定
最低スペックですらメモリを16GB使う上、4人までしか公式は担保していない。ただ、32GBにするとサーバー代が跳ね上がるため、とりあえずは16GBにしておくことをおすすめする。人が増えて頻繁に落ちてくるようになったら32GBにアップグレードするといいだろう。8GBでも動作はするが、襲撃イベントやダンジョンでクラッシュする可能性があるとのこと。
メモリと接続人数の目安
3カ月ほど実際にサーバーを運用しておおかたの目安が分かったので参考程度に。サービス開始当初は非常に重かったが、アップデートによって最適化が進み、かなり軽くはなっている。メモリが不足すると、パルを捕まえるときにパルスフィアが硬直するので分かりやすい。
・同時接続1~4人まで:メモリ8GBにSWAPが16GBあればわりと動く。CPUは2コアで30%~50%くらいの使用率。
・同時接続5~8人まで:メモリ16GBにSWAPが16GBあれば快適。CPUは2コアで30%~50%くらいの使用率。6人以上になるとけっこう重くなる。
・同時接続9人~:メモリが32GB以上は必要。16人以上は64GB用意した方がいいと思う。
Google Cloudにログイン
GoogleやGmailのアカウントを持っている人ならそのアカウントでログインできる。GCE (Google Compute Engine)という機能を用いて、VM (Virtual Machine / 仮想マシン)を構築する。まずはCompute Engine APIを有効にして、VMインスタンスの作成をクリック。プロジェクトはPalworld-VMと名付ければいい。
VMインスタンスの設定
名前:palworld-vm(なんでもいい)
リージョン:us-west1(安い、Pingが低い)
ゾーン:デフォルト
Series:E2
マシンタイプ:e2-standard-4(4 vCPU、2コア、16GBメモリ)
ブートディスク:OSはUbuntu、バージョンは22.04LTS
ブートディスクの種類: SSD
サイズ(GB): 30GB
詳細オプション:ネットワークタグはpalworld
その他:デフォルトのまま
これが月に100ドルほどかかる設定で、3カ月運用できる。サーバーを日本にするとあと20ドルほど余計にかかってしまうが、Pingが大幅に低くなってパルを捕まえる時にラグを感じにくくなるのでお好みでどうぞ。同時接続が10人を超えるようであればメモリを32GBにして、24時間稼働から12時間稼働にすると費用を抑えられる。ブートディスクをSSDにしないとセーブが上手くいかないことがあるのでHDDから変更することをおすすめする。サイズはSWAPとOS分を加味して30GBほどあれば十分。
ファイアウォールの設定
名前:palworld-firewall-rule
ターゲットタグ:palworld(VMのネットワークタグと合わせる)
送信元IPv4範囲:0.0.0.0/0
プロトコルとポート:指定したプロトコルとポート
UDPにチェック
ポート: 8211
VMインスタンスを開くと、下側のタブに「ファイアウォール ルールの設定」があるので、そこをクリックして設定する。
コードを書く
SSHの右側に接続があるので、そこから操作できる。最初はブラウザでそのまま開くことをおすすめする。理由は簡単でなにも導入しなくていいから。SSHの認証鍵を転送するので、Authorizeをそのまま押すとコンソールが開く。
palworldという名前のユーザーを追加。sudoはsuperuser doの略で最大級の権限を持つ。palworldはrootユーザー権限では操作できないことがあるため、新しくユーザーを作る必要がある。
sudo useradd -m palworld
palworldのパスワードを設定
sudo passwd palworld
権限付与。追加したユーザーにsudoの実行権限を付与する。
sudo usermod --append --groups sudo palworld
ユーザーを切り替える
sudo -u palworld -s
cd
SteamCMDのインストール。タブを押してOKを押す。
sudo add-apt-repository multiverse; sudo dpkg --add-architecture i386; sudo apt update
yを押してOKを押してI agree。
sudo apt install steamcmd
viでテキストを作ってパスを通す。/usr/gamesにパスを通しておけば、Palworldのアップデートが入ったときにスムーズにいく。公式からパッチが入った場合、サーバー側もSteamCMDを通してアップデートする必要があるのだが、これをしないと上手いこといかない。
vi .bash_profile
エディターが起動したら、以下のコードを追記して:wqを押して保存する。
export PATH="$PATH:/usr/games"
変更内容を保存するために以下のコードを実行する。この際、なにも出ないが大丈夫。
source .bash_profile
SteamCMDを起動する。ユーザー名がSteamになっていれば成功。
steamcmd
匿名でログインする。
login anonymous
パルワールドをインストールする。
app_update 2394010 validate
Steamユーザーをやめてpalworldユーザーに戻る
quit
サーバーを起動する前にエラーを解消する。まずはディレクトリを作成する。
mkdir -p ~/Steam/sdk64/
steamclient.soをリンクする。
ln -s ~/Steam/steamapps/common/PalServer/linux64/steamclient.so ~/Steam/sdk64/steamclient.so
サーバーを起動する。
cd ~/Steam/steamapps/common/PalServer
./PalServer.sh
起動に成功すると以下の文が流れる。
[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.
このままだとSSH接続が切れると強制的にサーバーがダウンしてしまうので、常に自動でずっと起動しておくように設定する。Ctrl+Cを押して一旦もどる。
Systemdに登録する
設定ファイルをviを使って作成する。
sudo vi /etc/systemd/system/palworld-server.service
内容は以下をコピーアンドペーストすればいい。:wqを押して保存する。
[Unit]
Description=Palworld Server
After=networking.service
[Service]
Type=simple
User=palworld
WorkingDirectory=/home/palworld/Steam/steamapps/common/PalServer
ExecStart=/home/palworld/Steam/steamapps/common/PalServer/PalServer.sh
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
VMが起動したらこれが自動で実行されるようにしておく
sudo systemctl enable palworld-server.service
サーバーを起動したり停止したり、めちゃくちゃよく使うので以下のコマンドはメモしておくといい。
# 起動する
sudo systemctl start palworld-server.service
# 停止する
sudo systemctl stop palworld-server.service
# 再起動する
sudo systemctl restart palworld-server.service
# 無効化する
sudo systemctl disable palworld-server.service
サーバーに接続する
VMインスタンスを開いて、外部IPを確認してコピーする。Steamからパルワールド本体を起動して「専用サーバー」に接続する。外部IPにポート番号をつけたアドレスを入力すればサーバーに入れるはずだ。
あなたの外部IP:8211
追加の設定は別記事で
これでひとまずはサーバー構築が完了だ。あと快適なサーバー運営のためにやっておいた方がいいことがあるので別記事にて解説する。
・PalWorldSettings.ini を自分のサーバー用に書き換える。細かいゲーム内設定など。
・SWAPを設定して足りないメモリを補う
・サーバーアップデートのやり方
・外部IPを固定する
・WinSCPを利用してフォルダに直接アクセスする。セーブデータのバックアップを取る。
随時追加していこうと思うので気長に待ってほしい。