オンライン対応のオープンワールドゲーム「Rust」に最近ハマっています。「Rust」はある島を舞台に、食料を探しアイテムをクラフトして、他のプレイヤーや野生動物から身を守り、武器や建物をクラフトし、生き残ることを目的としたハードコアなサバイバルゲームです。
このゲームは、公式やユーザーが運営しているサーバーにログインして、そのサーバー上の島で遊ぶというプレイスタイルなのですが、サーバーにより島のサイズや地形が変わったり、独自ルールを設定したり、プラグインを導入して機能を拡張したりと、それぞれオリジナリティがあって非常に面白く、つい様々なサーバーにログインして遊んでしまいます。
そしてしばらく遊んだ後にこう思います。「独自にサーバー建てたほうが面白いんじゃね?」と・・・。
というわけで、今回は「Rust」のゲームサーバーを独自に構築する方法を紹介します。
もくじ
VPSで構築する「Rust」ゲームサーバー
はじめに以下のスペックを満たすサーバーを準備します。
サーバー要求スペック
- CPU:4コア
- メモリ:8GB
- ストレージ:20GB
※独自調査による
Linuxが動作するroot権限有りの専用サーバーやVPS、EC2などのIaaSなら何でも良いのですが、新規にサーバー契約から始める場合はコスパを考えるとVPSがよいかと思います。
上記スペックでプレイする場合でも結構ギリギリで、「より多くのユーザーで遊びたい」「より広いマップで遊びたい」場合は、メモリ16GBは必要になります。大抵のサーバーは途中でスケールアップできるので、最初は8GBから初めて不足を感じたらスペックを上げていくのをお勧めします。
私のお勧めは以下のVPSです。
今回は途中でスケールアップが可能で、2週間のお試し期間がある「さくらのVPS」の「8GB」プランを契約して構築していきますが、コストパフォーマンス重視でしたら「Xserver VPS」がよいかなと思います。
ゲームサーバーを構築する
それでは早速、「さくらのVPS」で構築していきます。なお、他のVPSでも基本的には同じ手順で設定することが可能です。
はじめに、さくらインターネットにアクセスして「さくらのVPS 8Gプラン」を契約します。契約時に選択するOSは「Ubuntu 22.04 amd64」にして進めます。鍵認証はあるにこしたことはないですが、今回はパスワード保護のみで進めました。
ステップ1:Rustゲームサーバーで使用するポートを開放する
さくらのVPSのサーバーコントロールパネルから「パケットフィルター設定」に移動し、以下のポートを解放します。
一度に1つのポートしか登録できないため、3回繰り返してください。
- UDP 28015
- TCP 28016
- UDP 28017
ステップ2:サーバーにアクセス
サーバの準備が整ったら、SSHでサーバにアクセスします。
ssh ubuntu@{サーバーのIPアドレス}
ステップ3:必要なパッケージのインストール
以下のコマンドを使用して、Rustゲームサーバーを動作させるのに必要なパッケージをインストールします。
sudo apt update
sudo apt upgrade
sudo dpkg --add-architecture i386; sudo apt update; sudo apt install -y bc binutils bsdmainutils bzip2 ca-certificates cpio curl distro-info file gzip hostname jq lib32gcc-s1 lib32stdc++6 lib32z1 libsdl2-2.0-0:i386 netcat python3 steamcmd tar tmux unzip util-linux wget xz-utils
ステップ4:新しいユーザーアカウントの作成
Rustゲームサーバー専用のユーザーアカウントを作成します。今回はわかりやすく「rustserver」というアカウント名にしました。
sudo adduser rustserver
その後、パスワードを設定し、適当にユーザー情報を入力します。(ユーザー情報は基本スキップで大丈夫です)
ステップ5:LinuxGSMのインストール
次に、新しく作成したユーザーアカウント「rustserver」でログインし、LinuxGSMをダウンロードしてインストールします。
su rustserver
cd ~
wget -O linuxgsm.sh https://linuxgsm.sh
chmod +x linuxgsm.sh
./linuxgsm.sh rustserver
LinuxGSMとは
LinuxGSM(Linux Game Server Managers)は、Linuxサーバー上でゲームサーバーを設定、運用、管理するためのコマンドラインツールです。ゲームサーバーを簡単にインストール、自動更新、サーバーモニタリング・バックアップすることが可能です。
ステップ6:Rustゲームサーバーのインストール
次に、LinuxGSMを使用してRustゲームサーバーをインストールします。
./rustserver install
インストールに時間がかかりますので気長に待ちましょう。途中何か聞かれたら、基本「Y」でOKです。
無事に完了したら、次のステップに進みます。
ステップ7:Rustゲームサーバーの基本設定
Rustゲームサーバーは、下記2つのファイルの記述を変更することで、サーバ情報や設定を変更することができます。
- ~/serverfiles/server/rustserver/cfg/server.cfg
- ~/lgsm/config-lgsm/rustserver/rustserver.cfg
~/serverfiles/server/rustserver/cfg/server.cfg では、サーバーの基本情報を設定します。ここで設定した情報は、Rustゲーム内のサーバーブラウザで表示されます。
vim ~/serverfiles/server/rustserver/cfg/server.cfg
「server.description」には、サーバー概要文を記述します。どのようなサーバーか簡潔に記載するのがよいでしょう。
「server.headerimage」には、サーバーのヘッダー画像をURLで指定します。512×256サイズのJPEG画像を指定します。空欄または無効なURLの場合はデフォルト画像に置き換わります。
「server.url」には、WebサイトのURLを指定します。特にない場合は空欄でOKです。
~/lgsm/config-lgsm/rustserver/rustserver.cfg は名称を変更してバックアップを取り、_default.cfg をコピーして、これを rustserver.cfg にして内容を編集していきます。
mv ~/lgsm/config-lgsm/rustserver/rustserver.cfg ~/lgsm/config-lgsm/rustserver/rustserver.cfg.bk
cp ~/lgsm/config-lgsm/rustserver/_default.cfg ~/lgsm/config-lgsm/rustserver/rustserver.cfg
vim ~/lgsm/config-lgsm/rustserver/rustserver.cfg
rustserver.cfg には非常に多くの記載がありサーバを細かく設定することが出来ますが、今回は最低限の項目に絞って説明します。
「rconpassword」にはRCONのパスワードを記載します。使用しない場合は空にするか、適当に長めの文字列を入力してください。(RCONはRustゲームサーバーに対してリモートでコマンドを送信し、サーバーを制御するためのプロトコルです。)
「servername」にはサーバーの名前を記載します。Rustゲーム内のサーバーブラウザで表示されるサーバー名です。(例:DJENT.JP RUST SERVER)
「maxplayers」にはサーバーに入れる最大ユーザー数を設定します。基本はデフォルトでOKですが、ユーザーが多くて重たい場合は少人数に制限したほうがよいかもしれません。
「worldsize」はマップサイズです。大きければ大きいほどマップサイズが大きくなり、その分サーバーのメモリを消費します。メモリが8GBの場合は3000程度をお勧めします。(3000はマップサイズが3,000m四方という意味です)
ステップ8:Rustゲームサーバーの起動
設定が完了したら、以下のコマンドを使用してRustゲームサーバーを起動します。
./rustserver start
以上でRustゲームサーバーの起動が開始しました。完全に起動するまで数分かかるため気長に待つか、以下のコマンドでサーバーのライブコンソールを表示し進行状況を確認することが出来ます。(ライブコンソールから抜ける場合は、”Ctrl + B”を押した後に”d”を押します。”Ctrl + C”は使わないでください。)
./rustserver console
ライブコンソールで「Server startup complete」と表示されたら起動完了です。
なお現在のサーバー稼働状況を確認する場合は、以下のコマンドを使用します。
./rustserver monitor
参考コマンド
停止
./rustserver stop
再起動
./rustserver restart
アップデート
./rustserver update
ステップ9:Rustゲームサーバーに接続する
サーバーが起動したら、早速Rustからサーバーに接続してプレイしてみましょう。
- Rustを起動します。
- ゲームメニューが表示されたら”F1″を押して、コンソールを開きます。
- コンソールに次のコマンドを入力します。
connect {サーバーのIPアドレス}:28015
例えば、サーバーのIPアドレスが「192.0.2.0」の場合、以下のように入力します。
connect 192.0.2.0:28015
- “Enter”を押して、サーバーに接続します。
- “Esc”を押して、コンソールを閉じます。閉じたらローディング画面が表示されていますので、完了したらゲームが開始されます。
※次回以降にサーバーに接続する場合は、サーバーブラウザの履歴からアクセス可能です。
独自設定を追求してRustの魅力にハマろう!
以上が「さくらのVPS」でRustゲームサーバーを構築する手順です。今回は基本的な設定項目しか紹介しませんでしたが、ほかにも外部のWebコンソール(RCON)を利用したり、Modを導入して様々な機能を拡張するなどし、より「Rust」の楽しさを深めることができます。興味ある方はぜひ色々と試してRust沼にハマってみてください!