レンタルサーバー(正確にはVPS)を借りて 7 Days to Die のマルチプレイ用サーバーを設定・構築した手順についてご紹介させていただきます。仲間内で楽しくマルチプレイできるようになりますので、作り方の参考になれば幸いです。
なお、本記事では Linux で一から構築する方法をご紹介しています。ConoHa のテンプレートを使った構築や Windows での構築方法については、以下の記事もご参照ください。
【7 Days to
Die】マルチプレイサーバーを構築する(ConoHa編)
【7 Days to Die】マルチプレイサーバーを構築する方法(Windows)
目次
7 Days to Die とは
「7 Days to Die(7DTD)」は、核戦争で荒廃したゾンビ化するウイルスが蔓延した世界で、生き残りをかけて戦うオンラインマルチプレイ対応のサバイバルゲームです。
ざっくりと説明すると、マインクラフト(Minecraft)のクラフト要素をよりリアルにして、ゾンビとの戦闘要素が加わったようなゲームになります。
このゲームの目的は「とにかく生き残る」ことです。
7DTD の世界ではいたるところにゾンビが徘徊しており、プレイヤーを襲ってきます。世界に残されている限られた資源を回収しつつ、武器や防具、拠点などをクラフトによって充実させ、襲ってくるゾンビを倒しながら生き残る必要があります。
また、襲撃してくるゾンビを倒すだけでなく、空腹や脱水、感染症、骨折などの様々な状態異常にも対処が必要です。
このゲームの特徴として、7日に一度の夜、「フェラル・ホード」と呼ばれる現象が発生します。プレイヤーがどこに隠れていても敵に探知される状況下で、大量発生したゾンビがプレイヤーに怒涛の勢いで襲い掛かってきます。
プレイヤーは装備や拠点を整備し、7日ごとに訪れるこの「フェラル・ホード」を乗り越える準備をしなければなりません。
ゾンビ自体の体力も高く、一筋縄では生き残れないため、仲間との協力は非常に重要です。仲間と連携してゾンビを倒し、装備を充実させ、「フェラル・ホード」を無事乗り切った時に味わう仲間との達成感は、このゲームならではだと思います。
マルチプレイサーバーとは
ローカルで 1人でプレイすることもできますが、共用のサーバーを用意してそこにみんなでゲームクライアントから接続すれば、同じ世界で一緒にプレイすることができます。
公開されているマルチプレイサーバーもありますが、そういったサーバーではマナーの悪いプレイヤーに困らされる可能性も考えられます。
専用のマルチプレイサーバーを用意することで、マナーの悪いプレイヤーから解放され、仲間内で楽しく遊べるようになります。
また、仲間との遊び方に合わせて難易度などの設定を細かく変えられる点もメリットの 1つです。
マルチプレイサーバーを立てるまでの大きな流れ
サーバーをレンタルして 7DTD のサーバプログラムを動かす場合、大きくは以下の流れとなります。
- サーバ(VPS:仮想プライベートサーバ)をレンタルする
- サーバに 7DTD のサーバプログラムをインストールする
サーバーのレンタル申し込みから 7DTD のサーバプログラムのインストール、起動までスムーズにいけば 1時間も掛かりません。
私は、さくらVPS の 2GBプラン(月額 1,738円~)でサーバーを構築しました。
クレジットカード決済の場合、お試し期間として 2週間は無料でサーバが使えます。お試し期間中であれば申し込みをキャンセルすることができますので、サーバーが急きょ必要なくなったり、うまく構築できなかった時にも安心です。
ただし、お試し期間が過ぎると最低利用期間(3ヶ月)が設けられていますので、途中で解約ができません。
申し込んでから 5分程度でお試しサーバが使えるようになりますので、早くサーバーを立てたい時にも非常に助かります。
さくらVPS を選んだのは以下の理由からです。
- 14日間の無料期間があるため、うまく動作しなかった場合などにキャンセルできる
- 実装メモリが少ない場合、7DTD の必須メモリ容量を確保するために、ハードディスクを仮想的なメモリとして使いたいため、ハードディスクに高速な SSD を採用している
- 通信量の制限がない
- 上位プランへのスケールアップが可能
7DTD の公式ページの情報によるとサーバープログラムの必要最低メモリは 8GB です。
私は 2人で遊ぶ予定だったので、試しに 2GB のプランにして、不足分を仮想メモリ(ハードディスク)で補う形にしましたが、一応問題なく遊べています。
もし動作が重たいようであれば別の上位プランに後で構成を変更すると良いと思います。
メモリプラン | CPU | ディスク 容量 | 料金 |
---|---|---|---|
1GB | 仮想2Core | SSD 50GB | 月額 880円~ |
2GB | 仮想3Core | SSD 100GB | 月額 1,738円~ |
4GB | 仮想4Core | SSD 200GB | 月額 3,520円~ |
8GB | 仮想6Core | SSD 400GB | 月額 7,040円~ |
16GB | 仮想8Core | SSD 800GB | 月額 13,200円~ |
プランを上げるとそれなりにお金が掛かりますが、割り勘して 1人あたりの費用が高くならない範囲でプランを決定すれば良いと思います。
なお、同じような VPS のサービスとして ConoHa があります。無料期間はありませんが、時間単位の課金なので解約した場合の出費が抑えられ、スペック的にも問題はありません。7DTD 用のテンプレートも用意されており、手軽にセットアップすることができます。
ConoHa でのテンプレートを使った構築方法については以下の記事をご参照ください。
【7 Days to Die】マルチプレイサーバーを構築する(ConoHa編)
サーバプログラムのセットアップ
1.サーバに接続
7DTD のサーバプログラムをセットアップするために、レンタルしたサーバに接続します。
サーバの準備完了の通知が届いても、サーバの起動は自分で実施しなければならない場合があります。サーバの提供プロバイダからの通知メールをよく確認し、必要に応じてサーバを起動しておいてください。
SSHクライアントを使う場合
TeraTerm 等の SSHクライアントでサーバに接続します。
接続先のIPアドレスやパスワード等は、サーバを提供しているプロバイダからの通知メールを確認してください。
Tera Term のインストールや使い方については以下の別サイトの記事などが参考になると思います。
【ゼロからわかる】Teratermのインストールと使い方
直接コンソールを操作する場合
SSHクライアントを使わなくても VPSプロバイダのサーバ管理画面からコンソールを開いて直接操作することもできます。
以下の画像は「さくらのVPS」の場合の例です。
2.仮想メモリ(swap領域)の拡張
7DTD のサーバプログラムは最低でも 8GB のメモリを必要とするとのことです。メモリ 2GB のプランでは足りないため、ハードディスクの領域を仮想的なメモリとして割り当てます。
※8GB 以上の十分なメモリを持ったマシンであれば、この操作は不要です。
swap領域の作成と割り当て
# dd if=/dev/zero of=/var/swpfile bs=1M count=8192
# mkswap /var/swpfile
# chmod 600 /var/swpfile
# swapon /var/swpfile
サーバ起動時のswap領域の割当設定
サーバが再起動すると追加で割り当てたswap領域が外れてしまいますので、サーバ起動時に再度swap領域が追加されるようにします。
Cent OS 6
# vi /etc/rc.local
以下の行を末尾に追加。
swapon /var/swpfile
Cent OS 7 以降
# vi /etc/systemd/system/swapon.service
以下の内容を記述して保存します。
[Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/sbin/swapon /var/swpfile [Install] WantedBy=multi-user.target
# systemctl enable swapon.service
3.サーバプログラムのインストール
SteamCMD というプログラムをダウンロードし、SteamCMD を使って 7DTD のサーバプログラムを Steam からインストールするという流れになります。
必要なライブラリのインストール
# yum install -y glibc.i686
「SteamCMD」と「7DTD のサーバプログラム」を実行するためのユーザを作成
# useradd -m steam
作成したユーザに切り替え
# su - steam
SteamCMD のダウンロード先ディレクトリを作成し、作成したディレクトリに移動
$ mkdir ~/Steam && cd ~/Steam
SteamCMD をダウンロードしてファイルを展開
$ curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
SteamCMD を実行
$ ./steamcmd.sh
匿名ユーザとしてログイン
Steam>login anonymous
7DTD のサーバプログラムのインストール先ディレクトリを設定
Steam>force_install_dir ./7DTD/
インストール先のパスはお好みで変更してください。
例では、カレントディレクトリが ~steam/Steam(/home/steam/Steam)となっていますので、~steam/Steam/7DTD(/home/steam/Steam/7DTD) ディレクトリの下にインストールされます。
7DTD のサーバプログラムをダウンロード
Steam>app_update 294420 validate
「294420」は Steam で管理されている 7DTD のサーバプログラムの ID を示しています。
SteamCMD を終了
Steam>exit
4.設定の編集
サーバプログラムの格納ディレクトリに移動
$ cd ~/Steam/7DTD
設定をエディタで編集
$ vi serverconfig.xml
遊び方に合わせて細かい設定は好みで変えていただければと思いますが、最低限必要となる設定について以下に記載します。
以下のような形式で設定が記載されていますので、value="XXX" という部分の XXX の値を変更してください。
<property name="ServerName" value="XXX"/>
項目 | 説明 |
---|---|
ServerName | サーバーリストに表示されるサーバー名です。一緒に遊ぶ仲間に分かりやすい名前を付けてください。 |
ServerPassword | サーバーにゲームクライアントから接続するためのパスワードです。プレイする時に必須になりますので、一緒に遊ぶ仲間にも伝えてください。 |
ControlPanelEnabled | サーバーのログを確認したり、サーバープログラムを停止したりできる Webページのコントロールパネルの有効/無効を設定します。サーバーに SSH やコンソールで接続しなくても、ブラウザからリモートで管理できるようになるため、便利です。初期設定では false(無効)となっていますので、使う予定があれば true(有効)にしておきましょう。 |
ControlPanelPassword | コントロールパネルにログインするためのパスワードを設定します。コントロールパネルを使う場合は設定しておきましょう。なお、プレイには必要ありませんので、仲間に伝える必要はありません。 |
その他の設定については、以下の wiki が参考になります。
7 Days to Die Japan Wiki*
5.サーバプログラムの起動
7DTD のサーバプログラムを起動
$ ./startserver.sh -configfile=serverconfig.xml &
ちなみにサーバプログラムを起動すると以下のようなエラーが表示されますが、無視しても大丈夫なようです。
Using binned.
4.5.1-0+UE4 7038 3077 404 10
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
Setting breakpad minidump AppID = XXXXXX
サーバプログラムの起動確認
コントロールパネル上のログやポートの待ち受け状態などでサーバプログラムの起動が完了したことをチェックできます。
コントロールパネルから確認する場合
設定ファイルでコントロールパネルを有効化した場合(※)、コントロールパネルからサーバープログラムの起動状態を確認することができます。
※serverconfig.xml で ControlPanelEnabled を true に設定している場合
ブラウザで以下の URL にアクセスします。
http://<サーバーのIPアドレス>:8080/
ログイン画面が表示されるので、設定ファイルに記載したコントロールパネル用のパスワード(※)でログインします。
※serverconfig.xml の ControlPanelPassword に記載したパスワード
以下のようなログが表示されていれば、起動完了です。
2020-05-02T14:28:28 69.096 INF StartGame done
2020-05-02T14:28:29 70.050 INF [Steamworks.NET] GameServer.Init successful
2020-05-02T14:28:29 70.054 INF [Steamworks.NET] Making server public
2020-05-02T14:28:30 71.325 INF [Steamworks.NET] GameServer.LogOn successful, SteamID=XXXX, public IP=XXX.XXX.XXX.XXX
2020-05-02T14:28:33 73.847 INF Calculating hashes took 5168 ms (world size 683 MiB)
2020-05-02T14:28:33 74.299 INF [DECO] written 19/0
ポート待受状態で確認する場合
通信ポートの待ち受け状態を監視し、7DTD のサーバプログラムが通信の待ち受けを開始したら、プログラムが起動したと判断することもできます。
$ watch -n 5 "ss -atun"
26900/TCP、26900/UDP、26902/UDP ポートが表示されたら Ctrl + C キーを入力して監視を終了します。待ち受けが開始されるまで、大体 1~2分程度でした。
6.接続ポートの開放
7DTD では以下のポートを外部との通信に使います。外部からサーバの以下のポートに対して通信が可能となるように、許可設定を行います。
- 26900/tcp
- 26900/udp
- 26901/udp
- 26902/udp
- 8080/tcp ※管理用のコントロールパネルを有効にした場合
- 8081/tcp ※Telnet を有効にした場合
「さくらのVPS」の場合のポート開放
私が初期インストールの OS として選択した CentOS 7 では特に外部からの通信が制限されていませんでした。
ただし、VPSサービスとしてはパケットフィルタが設定されており、初期設定では 22番ポート(SSH)にしかアクセスできないようになっています。
そのため、パケットフィルタで上記のポートへの接続が許可されるように設定する必要があります。
(1)VPSコンソールにログインし、レンタルしたサーバをクリックします。
(2)[パケットフィルタ] タブで [パケットフィルタ設定へ] を選択します。
(3)[カスタム接続許可ポート設定] で開放するポートを設定し、[設定] ボタンをクリックします。
ゲームクライアントからマルチプレイサーバに接続してプレイするには
7DTD を起動し、タイトル画面で [ゲームに参加] を選択します。
サーバーを公開している場合
テキストボックスにサーバー名を入力して表示されるサーバーを絞り込み、クリックして選択状態にします。
[接続] ボタンを選択します。
パスワードを入力し、[送信] ボタンを選択します。
サーバーを非公開にしている場合
画面下にある [IPに接続しています...] を選択します。
IPアドレスとポート番号(※変更していれば)を入力し、[接続] を選択します。
以上でゲームへの接続は完了です。
サーバプログラムを終了するには
サーバープログラムを終了するには、コントロールパネルを使うか、Telnet で接続してコマンドを入力します。
手動でサーバープログラムを終了させずに OS をシャットダウンしてしまうとデータが破損する可能性がありますので、必ず正規の手順でサーバープログラムを停止させてください。
コントロールパネルから終了する場合
ブラウザで以下の URL にアクセスします。
http://<サーバーのIPアドレス>:8080/
ログイン画面が表示されるので、設定ファイルに記載したコントロールパネル用のパスワード(※)でログインします。
※serverconfig.xml の ControlPanelPassword に記載したパスワード
[Shut Down] ボタンをクリックします。
Telnet で接続して終了する場合
サーバーにログインし、以下の telnet コマンドで接続します。
$ telnet localhost 8081
telnet による接続受付(TelnetEnabled)は初期設定で有効(true)になっています。ただし、パスワード(TelnetPassword)を設定していないと、ローカルからの接続しか受け付けないようになっています。リモートで接続したい場合はパスワードを設定してください。
8081 は初期設定のポート番号です。serverconfig.xml の TelnetPort の設定を変更している場合、設定したポート番号にアクセスしてください。
shutdown コマンドを入力します。
shutdown
最後に
Linux をある程度操作したことのある人であれば、マルチプレイサーバーの構築はそれほど難しい作業ではありません。
さくらのVPS であればお試し期間中に申込のキャンセルもできますので、興味があるけどうまく構築できるか不安、という方は実際にサーバー構築を試してみてからキャンセルを検討するのも良いかと思います。
それではゾンビとの騒がしい生活を仲間とゆっくりお楽しみください。
皮脂や唾、手垢、汗などで表面は見えない雑菌だらけです。 衛生上も問題ですし、気持ち良く使うためにも、こまめに拭きとってキレイにしましょう。