Space EngineersのDedicatedサーバをWindowsで構築する

内容について

ほとんど以下の公式ページに書いてあります。
http://www.spaceengineersgame.com/dedicated-servers.html

SpaceEngineersのサーバを立てる際に自分がやった内容を残しておきます。
とはいえこのゲームをやるEngineerならこの程度は問題とならないような気もしますが、手間を省く一助となれば幸いです。
ちなみに、Dedicatedサーバはゲームクライアントを起動せず、スタンドアローンのサーバアプリケーションのみを起動して使うものになります。

確認環境

この内容は全て以下の環境で確認しています。
特にSpaceEngineersはBeta版での確認となるため、仕様が変更となる可能性が大きくあります。

  • SpaceEngineers 01.168 Stable
  • Windows10 64bit

Dedicatedサーバのインストール

SteamクライアントでダウンロードするゲームアプリケーションにもDedicatedサーバが同梱されていますが、ここではSteamCMDでダウンロードする方法をとります。

SteamCMDの準備

以下からSteamCMDをダウンロードして、適当な場所に解凍。
https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip

ダウンロード/アップデートバッチの作成と実行

「steamcmd.exe」と同じディレクトリに以下の内容のバッチファイルを作成。
名前は任意なので、ここでは例として「SE_inst_updt.bat」とする。

※「C:\SE」の部分はDedicatedサーバのインストール先となるため。任意に変更する。
※app_updateで指定するIDはここを参照。

@echo off
start "" steamcmd.exe +login anonymous +force_install_dir "C:\SE" +app_update 298740 validate +quit

作成後、バッチを実行し、終わるまで待つ。

以上で、インストールは完了。

サーバの起動

サービスへの登録を行う場合、以下の作業はAdministrators権限のあるユーザで行うこと。

サーバ管理アプリケーションの起動

[(バッチで指定したインストールフォルダ)\DedicatedServer64\SpaceEngineersDedicated.exe]を起動。

インスタンス選択画面

インスタンス(サービス/OS起動時の自動起動)を設定するか否かで以下の手順が異なります。

インスタンスを作成しない場合

「Lcal/Console」を選択して「Continue to Server Configuration」を押す。

インスタンスを作成する場合

「Run as Admin」ボタンで管理者権限を与えて、「Add new instance」ボタンからインスタンス名を決めて作成。
その後、作成したインスタンスを選択して「Continue to Server Configuration」を押す。

サーバ設定画面

ここの設定値については、ドキュメントが見つからなくってよくわからない部分が多い。

とりあえず、新規にワールドを作るときは以下になる。
1. Nwe gameを選択
2. Scenarioを選択
3. Server portが標準のUDP27016意外であれば変更(当然ですが、NAT等でインターネットからアクセス可能であること)
4. Server nameを入力(サーバリスト上で表示される)
5. World nameを入力(サーバリスト上で表示される)
6. 適当にその他の設定値を入力。
7. Save & startでサーバを起動

これで、ゲーム上のサーバリストから見えて、サーバに入ることができる状態になっている。

以前に作成したワールドを再度起動する場合

Saved worldsと、起動したいワールド名を選択して起動。

インスタンスで自動起動されるワールド

最後に起動したワールドが自動起動で使用されているように見えるが、設定場所も正確な記述もわからなかった。

アップデート

SpaceEngineersは定期的にアップデートがあり、ほとんどの場合、新しいクライアントから古いサーバへはアクセスできなくなる。
そのため、ある程度定期的にサーバのアップデートが必要になると思われる。
サービスを停止してバッチを動かすだけのため、自動化もむすかしくはなさそう。

アップデート方法

サーバをサーバ設定の「Stop」ボタンで停止し、インストール時に使用したバッチファイルを実行する。

Modの設定

ワールド内で、ワークショップで公開されているModが使用できる。

ModのIDを調べる

ワークショップのページから適当に入れたいModを探しページを開く。
URLの後ろの方の[id=]の後の数字をメモする。

サーバ設定

サーバ設定のModタブに入力する。
複数の場合は改行して入力していく。

あとは起動すればModの内容が使用可能な状態となっており、クライアントが接続するとクライアント側で必要なModのデータがダウンロードされるようになる。
一度ダウンロードすれば2度目以降は差分のみとなるため、素早くサーバに入れる。

適用されないMod?

ブループリントとスクリプトはサーバで指定しても出てこないっぽい?
クライアントでサブスクライブしてれば使えるから?

グループメンバーのみが入れるように設定する

サーバは公式のリストに載せられてしまうため、そのままだと誰でも簡単に入ってこれる状態となる。
しかし、Steamで作成したグループのメンバーのみがサーバに入れるよう設定することができる。

グループを作成

Steamクライアントからであれば、以下で作成画面に行ける。

  1. (ユーザ名)->グループを選択。
  2. 「新しいグループを作成」をクリック。

グループを作ったら、サーバに入れるようにしたいユーザを招待する。

グループIDを調べる

グループ管理画面から「フレンドを招待」をクリックし、その後のページのURLの「invitegid=」の後の数字列がグループID。
(例)http://steamcommunity.com/profiles/???????????/friends/?invitegid=(グループID)

サーバ設定

サーバ設定の「Steam Group IDに調べたグループIDを入力して起動。

コメント