V Rising – CentOS Linux でサーバーを実行する
現在、利用可能な V Rising Server の Windows バージョンのみがあります。 wine を使用して Linux システムでサーバーを実行することは可能です。
サーバーのホスティング (レンタル サービス プロバイダー)
または、ゲーム サーバー ホスティング プロバイダーでサーバーをホストすることもできます。
- サバイバル サーバー!
サーバーはすぐに起動します!
概要と前提条件
このゲームを購入して、しばらくシングル プレイヤーで遊んだ直後に、友達と一緒にプレイしたいと思いました。そして、私はすでに VPS (CentOS がインストールされている) を自由に使用できるので、それを使用しない理由を考えました.
そこで、公式ガイドを読んだところ、Windows 用のサーバー実行可能ファイルしかないことがわかりました。 wine を使用して Windows 実行可能ファイルを実行する方法を示している他のガイドを思い出したので、このゲームを試してみることにしましたが、うまくいきました。そのため、これがその方法に関する私のガイドです。
前とタイトルで述べたように、私はこれを CentOS システムで行いましたが、原則として、このソリューションは他の Linux ディストリビューションでも機能すると思います。
このガイドを誰にとっても簡単に理解できるように努めました。知っておく必要があるのは、端末の使用方法とファイルの編集方法だけです。 CentOS には、このガイドに従うために使用できるテキスト エディターとして vi が付属していますが、vi の使用方法の説明はこのガイドの一部ではありません。
このガイドでは、コマンドは $、#、または> で始まります。 # で始まるコマンドは、root としてログインするか、sudo を使用して実行する必要があります。 $ を含むコマンドは通常のユーザーが実行でき、> を含むコマンドは steamcmd のコマンドです。
$、#、> は実際のコマンドの一部ではありません。
要件
サーバーを実行するには、wine と xvfb が必要です。 Wine は LInux で Windows 実行可能ファイルを実行するために使用され、xvfb を使用して仮想モニターを作成するため、実際のモニターをサーバーに接続する必要はありません。
サーバーファイルをダウンロードして更新するには、steamcmd も必要です。
次を使用して steamcmd 要件をインストールします。
# yum install glibc.i686 libstdc++.i686 -y
wine をインストールする最も簡単な方法は、EPEL リポジトリを使用することです。そのため、次のように追加します:
# yum install epel-release -y
次に、wine と xvfb をインストールします:
# yum install wine -y
# yum install xorg-x11-server-Xvfb -y
SteamCMD のインストール
steamcmd またはサーバーをインストールする前に、steamcmd および後でゲーム サーバー自体を実行するために使用するユーザーを作成する必要があります。 steamcmd またはゲーム サーバーに root ユーザーを使用すると、セキュリティ上のリスクが生じます。このユーザーをスチームと呼びますが、好きな名前を選択できます。
ユーザーを作成し、この新しいユーザーとしてログインします:
# useradd steam
# su steam
次に、新しいユーザーのホーム ディレクトリに移動し、steamcmd をインストールするディレクトリと、ゲーム サーバー用の別のディレクトリを作成します。
$ cd
$ mkdir steamcmd
$ cd steamcmd
$ mkdir VRising
次に、steamcmd をダウンロードして展開します。
$ curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
ゲーム サーバーのインストール
前のステップで抽出したスクリプトを使用して、steamcmd を開始します。
$ ./steamcmd.sh
初めて steamcmd を起動すると、時間がかかり、アップデートがダウンロードされます。更新が完了したら、steamcmd を使用できます。最初のステップとして、以前に作成したディレクトリをゲームのインストール ディレクトリとして指定します。
> force_install_dir VRising
サーバー ファイルをダウンロードする前に、Steam にログインする必要がありますが、匿名ログインを使用できます:
> login anonymous
V Rising サーバーのアプリ ID は 1829350 なので、次のようにサーバーをインストールできます。
> app_update 1829350
サーバーをインストールしたら
> quit
steamcmd を終了します。
ゲーム サーバーの実行と構成
サーバーをインストールしたディレクトリに移動します:
$ cd VRising
そして、次のようにサーバーを起動します:
$ export WINEARCH=win64
$ xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' wine VRisingServer.exe -persistentDataPath ./save-data -logFile server.log
これにより、サーバーが起動し、前のコマンドで永続的なデータ パスとして指定したディレクトリ (この場合は save-data フォルダー) にセーブゲームが作成されます。
少し待ってから、Ctrl-C を押してサーバーを再度閉じます。
構成
セーブデータ ディレクトリ内に Settings フォルダを作成します。
$ mkdir save-data/Settings
ここで、デフォルト設定をこの新しいディレクトリにコピーします:
$ cp VRisingServer_Data/StreamingAssets/Settings/*.json save-data/Settings
設定フォルダーには、サーバー名、パスワード、ポートなどのホスト構成用の ServerHostSettings.json と、クラフト レート、ダメージ乗数などのゲーム設定用の ServerGametSettings.json の 2 つの構成ファイルが含まれるようになりました。
お好みのテキスト エディターを使用して、これらのファイルの設定を編集できます。
Systemd を使用してサーバーを制御する
以前に使用したコマンドを使用してサーバーを起動できるようになりましたが、サーバーを実行し続けるために、使用しているターミナルを常に開いたままにしておく必要があります。代わりに、systemd でサーバーをバックグラウンドで実行されるサービスとして構成します。
作業を簡単にするために、最初にサーバーを起動するためのシェル スクリプトを作成します。選択したテキスト エディターを使用して、次の内容で新しいファイルを作成します。
#!/bin/bash
export WINEARCH=win64
/usr/bin/xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' /usr/bin/wine VRisingServer.exe -persistentDataPath server1_saves/ -logFile server.log
ファイルを run_server.sh としてゲーム サーバーのディレクトリに保存します。このコマンドでファイルを実行可能ファイルにします:
$ chmod ug+x run_server.sh
これは、Steam ユーザーとして行う必要があるすべてです。以下を使用して、root 権限を持つユーザーに戻すことができます。
$ exit
次の内容で systemd サービス用の新しいファイルを作成します:
[Unit]
After=network.target
[Service]
User=steam
Group=steam
WorkingDirectory=/home/steam/steamcmd/VRising
ExecStart=/home/steam/steamcmd/VRising/run_server.sh
[Install]
WantedBy=multi-user.target
ファイルを次のように保存します:
/etc/systemd/system/VRising.service
これで、systemctl を使用してサーバーを起動および停止できるようになりました。サーバーを起動するには:
# systemctl start VRising
サーバーを停止したい場合は、以下を使用できます:
# systemctl stop VRising
プロセスがまだ実行されているかどうかも確認できます。
# systemctl status VRising
サーバーがクラッシュした場合、サーバー プロセスのみがクラッシュしたが、wine はまだ実行されているため、プロセスがアクティブであることを示している可能性があることに注意してください。
ファイアウォールの設定
systemd を使用してサーバーを実行できるようになったので、あとはファイアウォールを構成するだけです。
ServerHostSettings.json でこれを変更しない限り、ゲームは udp ポート 9876 と 9877 を使用します。
これら 2 つのポートのルールをファイアウォールに追加します:
# firewall-cmd --add-port=9876/udp
# firewall-cmd --add-port=9877/udp
次に、再起動後もポートが開いたままになるように新しいルールを保持し、ファイアウォールをリロードします。
# firewall-cmd --runtime-to-permanent
# firewall-cmd --reload
ゲームのアップデート
更新は簡単です。最初にサーバーをシャットダウンし、ゲームをインストールするときと同じように、steamcmd 用に作成したユーザーにログインし、steamcmd を開始します:
# systemctl stop VRising
# su steam
$ cd ~/steamcmd
$. ./steamcmd
匿名の Steam プロファイルにログインし、ゲームを更新し、更新が完了するのを待ってから steamcmd を閉じます:
> login anonymous
> app_update 1829350
> quit
ゲームが更新され、サーバーを再起動できます。
# systemctl start VRising