Insurgency Sandstormサーバーを立てよう

Pocket

(linux, steamCMD利用します。)

この記事はPCゲーム Advent Calendar 2018 – Adventarの2日目の投稿です。

概要


Insurgency: Sandstorm
 Insurgency Sandstormのリリース予定が若干延期され12月12日に決定したようなのです。現在はパブリックリリースに向けて購入者のみのbetaがリリースされているので、ちらほらサーバーが立っている様子。また先日にはサーバー提供者向けのDedicated Serverがリリースされたので、これもサーバーの増加を手助けしています。
 ただ、なんといってもこれ系のゲームは「日本サーバーが少ない」ので、プレイヤーの間口を広げるべくもっと日本サーバーが立ってほしい。そんな思いを込めて日本語のサーバー導入ガイドを公開します。

検証環境

 本稿は以下の検証環境で検証しています。

  • OS: Ubuntu Server 16.04LTS
  • Architecture: 64bit(amd64)
  • Insurgency Sandstormを所持しているSteamアカウント

 実際のサーバー導入に際しては、CentOSほかRhel等の一般的にサーバー用途として用いられるLinuxディストリビューションでも、同様の手順で再現可能かと思います。(若干読み替える必要はあると思いますが。)
 また後方互換について、Ubuntu Server 18.04LTSでも同様の手順で導入可能です。

導入

Insurgencyサーバー向けのユーザー作成

 サーバーの提供をsudoer等に登録されているユーザーで行うと安全上問題なので、dedicated serverを実行するための専用のユーザーを作成します。当コミュニティの場合は、個々のパブリックサーバー向けに1ユーザを追加してグループで纏めている運用をしています。
 下記を実行すると、ホームディレクトリが/home/insurgency1のデフォルトユーザーグループがgameuserに設定されたユーザーinsurgency1が作成されます。

SteamCMDのインストール

 dedicated serverのプログラムをsteamからダウンロードするに当たって、steamの機能をCLIで利用可能なsteamCMDを導入する必要があります。dedicated serverの導入時のみでなく、アップデートの際にも必要になりますので、導入後削除したりはしないでください。(今後も必要になります。)

 最後に./steamcmd.shを実行した際にSteamCMDのアップデート確認と最新版へのアップデートが実行されます。ログインが求められた場合はSteamのログインIDとパスワードを入力してください。
 またSteamCMDは二段階認証にも対応しています。アカウントで二段階認証を有効にしている場合は、dedicated serverの導入時に二段階認証のキーが求められる場合があります。

Insurgency Sandstormインストール用のシェルスクリプト作成

 Insurgency Sandstormの導入とアップデートをSteamCMD経由で行う為に、導入用のシェルスクリプトを作成します。

 sandstorm_updater.shは下記の内容で作成しました。

 今回はsteamCMDのrunscript機能を利用して、実行用のスクリプトを用意しこれを実行するように指定します。スクリプトは下記のファイル名で、下記の内容で作成しています。
 account_nameとpasswordをそれぞれInsurgency Sandstormを所有している自身のアカウントに読み替えて作成してください。

インストール

 通常通り、シェルスクリプトを実行します。(二段階認証を有効にしている場合は、ここでキーを聞かれます。)

Insurgency Sandstormサーバー起動用のシェルスクリプトの作成

 起動時に毎回引数を指定して起動するのが大変面倒な為、シェルスクリプトを書いて管理しています。
 また下記の内容であれば、”-debug”オプションを指定しない場合標準出力の内容がlogsディレクトリ以下に保存される為、サーバー管理の都合上そのようにしています。

 port,queryport,maxplayers,basedir,logdir,hostname等のオプションは、各自の環境に読み替えて作成してください。

 このまま起動した場合は、マップTownのSecurity側でゲームルールCheckpointのサーバーがport 27102で立ち上がります。
 適宜ゲームルール、マップは置き換えて実行してください。現在実装されているゲームルールは下記になります。

Farmhouse

  • Scenario_Farmhouse_Checkpoint_Insurgents
  • Scenario_Farmhouse_Checkpoint_Security
  • Scenario_Farmhouse_Firefight_East
  • Scenario_Farmhouse_Firefight_West
  • Scenario_Farmhouse_Push_Insurgents
  • Scenario_Farmhouse_Push_Security
  • Scenario_Farmhouse_Skirmish

Hideout (Town)

  • Scenario_Town_Checkpoint_Insurgents
  • Scenario_Town_Checkpoint_Security
  • Scenario_Town_Firefight_East
  • Scenario_Town_Firefight_West
  • Scenario_Town_Push_Insurgents
  • Scenario_Town_Push_Security
  • Scenario_Town_Skirmish

Refinery (Oilfield)

  • Scenario_Oilfield_Checkpoint_Insurgents
  • Scenario_Oilfield_Checkpoint_Security
  • Scenario_Oilfield_Firefight_West
  • Scenario_Oilfield_Push_Insurgents
  • Scenario_Oilfield_Push_Security
  • Scenario_Oilfield_Skirmish

サーバー実行

 下記をインストールディレクトリで実行するとサーバーが起動します。
 UFWやfirewalld、SELinuxをEnabledに設定している場合は、DisabledあるいはPermissiveにするか、対応する設定を行ってください。

screenの利用

 このままではサーバーで実行した内容はサーバーから抜けると終了してしまう為、screenで実行することをお勧めします。

参考など

Insurgency: Sandstorm Community Server Discussion :: Steam コミュニティ
Insurgency: Sandstorm Server Admin Guide – Google ドキュメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください