[Linux-Server, Game]Palworld遊んでました

FF14の友人に誘われてPalworldを遊んでみました。

僕は全く知らなかったのですが、一部界隈では発売前から随分話題になっていたようで
実際ティザー映像を見た印象としてArkとポケモンを足したようなイメージでした。

モンスターが工場ラインで労働をしていたり、AKのようなアサルトライフルを持って走るビジュアルを見たときは笑いました。

実際に遊んでみて

チュートリアルが充実していて、ゲーム序盤はさくさくレベルが上がり拠点の設備も充実していきます。

基本的には

  1. モンスター(パル)を捕まえる
  2. 拠点を充実させて装備を整える
  3. より強いパルを捕まえる・育てる
  4. 1-3を繰り返し、フィールドに5つあるボスを倒す

が目的となっています。

最初のボスはチュートリアルに含まれており、レベルが低くても比較的簡単に倒すことができました。

読んでいる人がいるのかはわかりませんが、フィールドには探検している島にいる人々が残したメモがあり一応、ストーリー的なものがそこで語られています。

自分が5体目のボスを倒した時点でレベル45で、それ以降はパルのステータスやスキルの厳選、拠点のハウジングがメインコンテンツになっていきます。(個人的には5体目のボスだけ他と比較して異常に強く感じました)

ポケモンでいう進化みたいなシステムはなく、全てのパルは最大まで育てれば一応最後まで戦える性能になります。(個体差や特有スキルはあるが)

公式もネタにしているくらい、まだまだバグが多くキャラクターのスタックや敵味方問わずAIの挙動がおかしいことが多々ありますが、パッチのリリース速度は早く日々改善されています。

自分は厳選などにはあまり関心がないので、レイドコンテンツの追加を楽しみにしています。

SteamとXBoxGamePassでは一緒に遊ぶことはできません。バージョンが違うし、マルチプラットフォームの対応を待ちましょう。(XBoxGamePassに入っていましたが、Steam版を買い直しました)

スクリーンショット 2024-02-12 162937

ブログ書くために久しぶりにインしたらみんなうつ病になっちゃった。。。

本題はサーバーの話

始めた当初は友人がレンタルしてくれたサーバーでプレイしていたのですが安定性に欠け、途中でサーバーが落ちることが多くありました。(参加人数は5人前後)

おそらくメモリ不足で、公式が提示する最低16GB推奨32GB。

32GBのサーバーをレンタルしようとすると1.5-3万円ほどの月額で正直ハードルは高いです。契約にはクレジットカードが必要で、参加者で割るのも面倒だし。。。

そこで以前購入したミニPCをサーバーにして運用することにしました。(CPU:i7-12650H, RAM:32GB)

※いつも以上に自分用のメモなので正直全く参考にはならないかも。。。
(非ITの人は)通常2回線とか固定IPとかサーバーとかないよね。。。

ネットワークの設定

自宅のネットワークはP6プラスの回線を利用しており、速度は問題ないのですが固定IPを持つことができませんでした。

幸い、契約しているプロバイダが安価で固定IPを提供するサービスを行っていたのでそれを利用することにしました。

1プロバイダで2回線契約している状態です。

  • V6プラス回線:普段使い、ゲーム、自宅内のWi-Fi回線
  • 固定IP回線:サーバー、仕事用

このようにすることにしました。

ただ、2回線あっても現在使っているルーターはマルチセッション非対応でしたので
ONUからハブを経由してルーターを2つ接続することにしました。

下記はinterlink公式サイトからの引用画像です。

image

ルーターやハブは余っていたものがあったのでそちらを利用。
これでネットワークの問題はクリアできました。

スクリーンショット 2024-02-12 5.18.04

速度も悪くなさそう。

サーバーの設定

構築手順はぐぐって出てきたもので特に問題なく動作しました。

  1. SteamCMDのインストール
  2. Palworldサーバーのインストールと起動

手順の中にある2394010という数字はSteamにおけるPalworldのサーバーのIDです。

とりあえず遊ぶ、ということであれば上記の手順のみで問題ありません。

ただプレイする人数が増えてきたり、(おそらく)捕まえたパルの数や拠点が増えてくると、メモリが32GBでもスワップ領域の利用割合が増えてきました。
(メモリが32GBのマシンで約1ヶ月運用後、スワップ領域が約7GB利用されていました。)

これに対応するためにスワップ領域の変更をメモしておきます。

# 12GBのスワップ領域を作成
$ fallocate -l 12G /swapfile
# パーミッションの変更
$ chmod 600 /swapfile
# スワップ領域の作成・初期化
$ mkswap /swapfile
# スワップ領域の有効化
$ swapon /swapfile
# ‘/swapfile none swap sw 0 0’を追加。永続化を行う。
$ vi /etc/fstab
# スワップ領域の利用状況を確認。スワップ領域が増えていることを確認
$ free -h

より遊びやすくするいろいろ(おまけ)

ここから先は公式で案内されている手順ではないので、自己責任でお願いします。

設定ファイルで遊びやすくする

Palworldサーバ設定

上記のサイトで設定ファイルを生成することができます。
自分のサーバーでは下記を変更しました。

  • キョダイタマゴの孵化にかかる時間(PalEggDefaultHatchingTime)
  • アドミンパスワード(AdminPassword)
  • サーバーパスワード(ServerPassword)

Steam/steamapps/common/PalServer/DefaultPalWorldSettings.ini

こちらの設定ファイルを置き換えましょう。

サーバーを止めて、置き換えてから起動しないと、設定ファイルが初期化されてしまうので、変更前にはサーバーを止めることをお忘れなく。

セーブデータを他のサーバーから移植できるか

結論から書くと、完璧にはできませんが、一部のデータは移植できました。

ただ、もちろん公式でサポートされている手順ではないこと、パッチが頻繁にあたっていることを考えると、再現性は低いかもしれません。

はじめた当初は友人がレンタルしてくれたサーバーで進めていたのですが、中盤からスペック不足のために自宅サーバーへ移動したので、なんとかしてセーブデータを移植できないか試してみました。

一応手順を残しておきます。
(移動元も移動先も同じOSである前提です。自分はUbuntu Server20.04を利用しています。)

  1. 一回新しいサーバーを起動してワールド作る
  2. 古いサーバーのセーブデータをまるごと保存
    • サーバーをインストールしたフォルダ内にあります。
    • 自分の環境では下記のパスでした Steam/steamapps/common/PalServer/Pal/Saved/SaveGames/0/[hash]
  3. 新しいサーバーに新しいワールドのハッシュがあるので記録
    • 2でコピーしたフォルダ名のhashはサーバーごとに異なるので、新しいサーバーのハッシュを確認しておきます。
  4. 2のフォルダを3のハッシュで新しいサーバーにコピー
    • 新しいサーバーに2でコピーしたフォルダの中身を、3で記録したフォルダ内に展開します。もしくは名前を変更して置き換えましょう。

この状態で起動するとある程度は復旧できます。
ただ、マップの開放状態は復元が確認できませんでした。(飛べるパルとか持っていればすぐに取り戻すことはできるでしょう。)

拠点の最大数を増やす

デフォルトではギルドが作成できる拠点数は3です。

ただ、身内で遊んでいると戦闘やパルの育成より、拠点を作ったりするのが楽しい、という人もでてきたのでModを導入して制限を撤廃しました。

下記でユーザ登録、Modをダウンロードして導入することができます。
(すいません、自分はMod事情に詳しくないので下記サイトやModが安全なものかは保証できません。自己責任でお願いします。)

NEXUSMODS All the Bases

ダウンロードしたModを下記パスに配置して、再起動すればOKです。

Steam/steamapps/common/PalServer/Pal/Content/Paks

メモリリークがあると思われます。

(2024/02/18追記)

今後のアップデートで改善されるのか、はたまたゲームの仕様で仕方ないものなのかは判断できませんが
サーバアプリケーションにメモリリークがあると思われます。

自分の環境では、サーバーパスワードを設定し、顔見知りの友人数人限定で遊んでいるのですが

起動から時間経過でメモリ使用量が確実に増えていきます。
(同時にログインしているユーザの人数に関わらず。)

今後改善されるのかは不明ですが、メンテナンスとして定期的な再起動を行うと良いと思います。

再起動すると拠点内のパルの位置が、ユーザが拠点に来るまで定位置でフリーズしてしまい
そのまま放置されると飢餓や病気になることがあります。

現時点ではこれは仕様だと割り切って遊んでいます。

マルチコア、マルチスレッドの設定を有効にしてみよう

(2024/02/18追記)

しばらく動かしているサーバーのパフォーマンスを眺めていると、CPU使用率が100%になっていることが多々ありました。

CPUは10コア16スレッドなので、限界まで使っていれば1600%になるはずですが、100%で止まってしまっているのはなんでだろう、と思い調べていたらマルチスレッドのオプションの存在を知りました。

パルワールドのサーバーのラグ対策
自分で作ろう「パルワールド」サーバー。 4gamer

起動スクリプトの後ろに-useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS をつけるだけです。

自分の環境ではこれでCPU使用率が200%前後になり、ServerFPSやパケロス、メモリ使用量が減少しました。

これはサーバーを動かしているCPUのスペックによるものなので、オプションをつけることで改善されるとは限りませんが、試してみる価値はあると思います。

上部へスクロール