2024年2月28日
Windowsの規約に同時接続は20台以下というものがありましたので
それに関する記述を追記しました。
オコチョかわいいですよね・・・
さて、今流行りまくっているパルワールドですが
友達間でも流行の波が来ましたのでサーバーを立ててみました。
自分がやらない間もサーバーを開けておきたいので、常時稼働鯖を目指します。
300W食うゲーミングPCを24時間、30日稼働させた場合は
超アバウト計算で8,000円前後掛かるので、お財布に優しくありません。
パーツの消耗を考えるとそれ以上かも?
単に電気代を気にするのであれば、VSPサーバーという手もありますが
Xserver for Gameを使用した場合、パルワールド推奨の16GBメモリプランで月額9,750円・・・
VSPサーバー以上のスペックが見込めるため、
月額1万円払うならゲーミングPCぶん回した方が良いんじゃない?ってなりますね。
ということで、メインのパソコンは常時起動に向かないため
省電力で常時稼働するサーバー構築をしていきます。
目次
サーバー用のPCを入手する
PC選定にあたり、パルワールドサーバーの動作要件を確認します。
CPU | 4コア |
メモリ | 16GB 安定したサーバー稼働のためには 32GB 以上を推奨 8GBでも起動は可能ですがプレイを進めるほどメモリ不足で サーバーがクラッシュする可能性が高まります。 |
ネットワーク | UDP Port 8211 (デフォルト) をポート開放できること |
もの凄いザックリとした事しか書かれていませんが、そこまで高い要求はされていません。
これなら最近よく見る中華ミニPCで良さそう・・・
ということで、ミニPC選びに入ります。
最近のミニPCにはIntel N95/N97/N100というCPUが使われているものが多く出回っているみたいです。
それぞれのCPUに多少の個性はあるようですが、微々たる差なようなので
CPUの最大クロック数が多く、グラフィックにもすこーしだけ強いN97をチョイスしてみました。
パルワールドブームが去ったらファイルサーバーにする!という言い訳を添えて思い切って買いました。
購入したPCはACEMAGIC社のN97MiniPC
ちなみに、記事執筆時点で売り切れており、N100モデルしか残っていませんでした。正直どっち買っても大丈夫だと思います。
購入価格はAmazonのセールと合わせて27,998円でした。
3ヶ月運用すれば元取れるかな?
N97搭載のミニPCが少ないのもありますが、本体正面にミニLCDが搭載されていて
組み込みソフトによりパソコンの状態が分かるようになっています。ガジェット感あってよいと思います・・・!
また、正面にLEDが搭載されていてゲーミングに光ります。
ちゃんとした作りの梱包で好印象が持てます。
HDMIケーブルは短いので、環境によっては届かないかもしれません。
縦置き用のスタンドは金属製で、磁石で本体に貼り付きます。おしゃれ!
本体上部にUSB2.0が2ポート、3.0が2ポートあります。
背面にHDMIが2ポート、LANが2ポート、オーディオ用のAUXが1ポート、盗難防止の鍵を付ける穴が1つあります。
HDMI、LAN、電源ケーブルを接続して電源をON!
中華PCにありがちな(怪しい)設定済みということは無く、すんなりとWindows11の設定が始まりました。
キーボードを繋ぐのを忘れていたので、USキー配列で登録されてしまいましたが後々設定を変えてJIS配列に戻りました。
デスクトップが表示され、初期ソフトはGoogleChromeとLCD設定用のソフト、LEDライティング用のソフトでした。
LCD制御用のソフトがデスクトップで起動しないという意見をちらほら見ますが、
起動するとタスクトレイに最小化された状態で起動しています。
このソフトが立ち上がらないとLCDに情報が表示されないので、スタートアップに登録したとき
パソコンを立ち上げる度に都度設定画面が表示されないようにする仕様だと思いますので気をつけましょう。
LCDとLEDのソフトは初期化すると消えると思うので、バックアップを取って置いた方がよいかも知れません。
WindowsのライセンスはOEM版でした。
VL版が入っているという噂もありましたが大丈夫そうです。
机に置いてみるとこんな感じ。
参考にならないおやすみドラゴン達と小竜を置いておきます。
高さは15cm弱でした。
机の片隅に置いてあってもさほど存在感はありません。
光るLEDも主張が激しくないのでONでも気になりませんでした。
ファンが搭載されていますが、動作音は静かで気になりません。
本体上部の排気口に手をかざすとほんのり温風が出ているのが分かります。
消費電力は15~20W程度・・・
1ヶ月連続稼働させても、20Wと仮定して電気代が500円程度なので大分お財布に優しくなりました。
サーバーを立てる
MiniPCを使用した運用ではスペック的に難しいですが、
Windows11は規約上同時接続できるデバイスは20台以下となっているため注意しましょう。
(パルワールドの初期設定では32名まで同時接続できてしまう。)
それ以上の接続を行う場合はWindowsServerやLinuxで運用する必要があるようです。
参考:マイクロソフト ソフトウェアライセンス条項 Windowsオペレーティングシステム(2条d項ⅲより)
ここからの作業はミニPC(サーバーを立てるPC)上で行ってください。
パルワールド公式のガイドを元に設定を進めていきます。
SteamCMD及びPalServerの導入
SteamCMDを導入していきます。
[1]をクリックして、インストーラーをダウンロードしてください。
次にインストール用のフォルダを作成します。
例ではDドライブになっていますが、購入したミニPCはドライブが分けられていないためCドライブ上に作っていきます。
Cドライブ直下にsteamcmdというフォルダを作成、先ほどダウンロードしたZIPからsteamcmd.exeをコピーします。
steamcmd.exeを起動すると、コマンドプロンプトが起動して必要なファイルのダウンロードが始まります。
Steam>
で画面が止まるので
login anonymous
と入力します。
Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
Steam>
ログインができたら
app_update 2394010 validate
上記コマンドを入力して、PalServerをインストールします。
Steam>app_update 2394010 validate
Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
Update state (0x61) downloading, progress: 0.00 (0 / 2718258822)
Update state (0x61) downloading, progress: 3.07 (83389948 / 2718258822)
Update state (0x61) downloading, progress: 17.96 (488236121 / 2718258822)
Update state (0x61) downloading, progress: 25.67 (697873883 / 2718258822)
Update state (0x61) downloading, progress: 34.04 (925205456 / 2718258822)
Update state (0x61) downloading, progress: 44.08 (1198279430 / 2718258822)
Update state (0x61) downloading, progress: 52.42 (1424806007 / 2718258822)
Update state (0x61) downloading, progress: 62.29 (1693241460 / 2718258822)
Update state (0x61) downloading, progress: 72.58 (1972961903 / 2718258822)
Update state (0x61) downloading, progress: 81.44 (2213756527 / 2718258822)
Update state (0x61) downloading, progress: 90.96 (2472576886 / 2718258822)
Update state (0x61) downloading, progress: 99.46 (2703578758 / 2718258822)
Update state (0x81) verifying update, progress: 6.53 (177540712 / 2718258822)
Update state (0x81) verifying update, progress: 42.40 (1152520802 / 2718258822)
Update state (0x81) verifying update, progress: 82.21 (2234651231 / 2718258822)
Success! App '2394010' fully installed.
インストールが完了したらsteamcmd.exeは終了してOKです。
steamcmdフォルダ内に様々なファイルが生成されていますので、
steamcmd<steamapps<common<PalServerとフォルダを進み、PalServer.exeを探して起動します。
ファイアウォールの警告が出た場合は【アクセスを許可する】とします。
一度起動すると
【C:\steamcmd\steamapps\common\PalServer\Pal\Saved\Config\WindowsServer】内に
【PalWorldSettings.ini】が生成されるので、サーバーの設定に応じて変更しておくとよいでしょう。
Windows10や11でサーバーを立てる場合は【同時接続数20人以下】という規約に掛からないように
PalWorldSettings.ini内のServerPlayerMaxNumを20としておくと良いでしょう。
The following component(s) are required to run this program
Microsoft Visual C++ Runtime
DirectX Runtime
というエラーが出て起動できない場合は、下記ランタイムをインストールして再実行してみてください。
常時稼働に向けた設定をする
リモートデスクトップ
設定を弄るたびにディスプレイを用意するのが面倒なので、
リモートデスクトップをインストールしておくと便利です。
自分はChromeDesktopをインストールしました。
IPを固定する
再起動のたびにIPが変わっては困りますし、後述のポート開放のためにIPを固定しておきます。
DNSやIPは環境に合わせたものを使用してください。
ポートを開放する
サーバーの要項にはUDP Port 8211を開放せよとあったので、
ONU(モデム)の設定から該当のポートを開放します。
ONUによって設定方法はまちまちなので、「型番 ポート開放」で調べてみましょう。
NURO光のF660Tの場合はポートフォワーディングとアプリケーションリストの設定をしてあげればOKです。
ちなみに設定をちゃんとしてあげれば、8211である必要はありません。
PalWorldSetting.iniの【PublicPort=8211】を任意の数字に変えてあげることで変更できます。
僕の環境は2サーバー同時開放のため、2ポート空けました。
グローバルIPを調べる
IPアドレスを調べられるサービス(例えばCMAN)を使ってグローバルIPを調べます。
調べる場合はパソコン毎に異なるので、サーバーマシンでアクセスしてください。
グローバルIPアドレスは、個人のパソコンを特定できてしまうため
公の場(Xなど)に公開するのは絶対にやめましょう。
一緒にプレイする友達に【グローバルIP:開放したポート番号】を教えてあげれば準備完了です。
定期再起動のスケジュールを組む
パルワールドは起動し続けるとメモリをどんどん食っていくため、
安定稼働のために定期的に再起動が必要です。
Windowsのタスクスケジューラを使って再起動のスケジュールを組みます。
左下の検索窓にタスクスケジューラと入れると検索にヒットするので起動します。
右上のメニューから基本タスクの作成を押すと、ウィザードが立ち上がります。
名前を適当に決めて、トリガーを毎日とします。
再起動したい時間を設定して間隔は1日としておきます。
上記設定で2月8日AM6時から24時間おきにこの操作が実行されます。
操作は「プログラムの開始」とします。
プログラムには【C:\Windows\System32\shutdown.exe】引数に【/r /f】を指定します。
/rは再起動、/fは起動中のアプリケーションを警告を表示せずに強制終了する事を意味します。
(Microsoftリファレンスより)
「完了」を押して設定完了です。
1日何回再起動するかで異なりますが、
自分の所は6時と18時に再起動するように設定してあります。
再起動ポイントをもう一つ増やす場合は上記手順を繰り返してください。
スタートアップに登録する
再起動後にPalServerが自動的に起動するようにスタートアップに登録しておきます。
ついでにLCD制御用のソフトも入れておきます。
AppDateが見つからない場合は隠しファイルの表示を有効にしましょう。
サーバーにアクセスしてみる
ここからの操作はパルワールドを遊ぶパソコンor友達のパソコンで実行してください。
タイトルの「マルチプレイの参加する(専用サーバー)」を選択します。
下に小さく表示されているIP入力欄に対応するIPアドレスを入力します。
LAN内からグローバルIPでアクセスはできないため、サーバーの持ち主はローカルIPを入力しましょう。
LAN外の友達には「グローバルIP:ポート番号」を入れてもらいましょう。
ローディング画面を経て、キャラクターエディットが表示されたらアクセス成功です。
性能はどうなの?
1週間ほど動かしていますが、大きなトラブルはありませんでした。
最大4人でプレイしましたが、時々ラグを生じた程度です。
(4人で同期を取っているのでスペックの問題じゃないかも?)
その時のCPU稼働率は60%程度なので、まだ余裕はありそうです。
24時間に1回の再起動だと、無人でもメモリリークによって
起動から12時間程度でメモリ使用率が80%を超えるようになりました。
再起動すると15%ほどに落ち着くため、途中で再起動タイミングを2回に増やして安定するようになりました。
保証環境がメモリ16GB、推奨は32GB以上なのでメモリの増設を検討中です。
よいパルワールドライフを!!
Windowsのライセンス条項貼っておきますね
(iii) デバイスの接続お客様は、ライセンスを取得したデバイス上でファイルサービス、印刷サービス、インターネットインフォメーションサービス、インターネット接続の共有およびテレフォニーサービスを個人的または内部的に使用することのみを目的として、ライセンスを取得したデバイスにインストールされた本ソフトウェアに対し、最大 20 台の他のデバイスからの接続を許可することができます。お客様は、任意の数のデバイスに、デバイス間でデータを同期するために、ライセンスを取得したデバイス上の本ソフトウェアにアクセスすることを許可することができます。ただし、本項は、お客様がこれらの他のデバイスに本ソフトウェアをインストールしたり、本ソフトウェアの主要な機能 (本項に記載する機能を除きます) を当該デバイス上で使用したりする権利を有することを意味するものではありません。