Counter-Strike: Global Offensive サーバ構築方法


色々な人が書いていますが、CentOS向けだったりWindows向けだったりするのでDebianで構築する方法をメモしときます。
Valve Developer Community (英語) に基本的なことは書いてあるので一度目を通してみてください。
なお、この記事ではルータのポート開放については説明しません。


必要なもの

  • サーバ機 (Debian 7 64bit インストール済み)
  • インターネット接続環境

準備

64bit 環境なので、32bit ライブラリをインストール。
後に導入するSourceModで必要な場合があるので lib32z1 も一緒にインストール。

$ sudo apt-get install lib32gcc1 lib32z1

ユーザ名を user
インストール場所を /home/user/srcds/
SteamCMDの配置場所を /home/user/Steam/
としておきます。


構築

SteamCMD用のディレクトリを作成し、移動

$ mkdir Steam
$ cd Steam

SteamCMDをダウンロード

$ wget http://media.steampowered.com/client/steamcmd_linux.tar.gz

圧縮ファイルなので解凍後、削除

$ tar xvfz steamcmd_linux.tar.gz
$ rm steamcmd_linux.tar.gz

SteamCMDを実行し、Counter-Strike サーバをダウンロード

$ ./steamcmd.sh +login anonymous +force_install_dir ../srcds +app_update 740 +quit

時間は暫くかかりますが、上記の操作で、 /home/user/srcds/ に一式ファイルが作成されているはずです。


テスト起動

実際にサーバを起動してみます。以下のコマンドで起動可能です。
今回のゲームモードはClassic Competitiveとします。
ゲームモードの切り替えに関しては、Valveによる CS:GO Wiki (英語) を参考にしてください。

$ ./srcds_run -game csgo -port 27015 +game_type 0 +game_mode 1 +map de_dust2

この状態でゲームを起動し、 connect サーバのIP:27015 とでもすれば、入れるはずです。
DebianでのローカルIPの調べ方は、 sudo ifconfig で見れます。

無事入れたでしょうか? 入れたとしても

  • サーバ側のTickRateが64
  • SourceModが入っていないのでプラグインが使用できない

等色々あると思います。 TickRateを128にする方法は、起動引数に -tickrate 128 を追記すればOKです。

$ ./srcds_run -game csgo -port 27015 -tickrate 128 +game_type 0 +game_mode 1 +map de_dust2

設定ファイルに関しては、この記事を読みつつ書きなおしてください。
基本的に gamemode_*****.cfg は編集せず、 gamemode_******_server.cfg のように別のファイルを作成した後設定を変更するのが一般的です。
別に作る理由は、アップデート等で gamemode_******.cfg が上書きされるおそれがあるからです。

今回はゲームモードをClassic Competitiveと想定しているので設定をする際は下記を参考にしてください。

  • GameModes_Server.txt -> ゲームモードやサーバの人数などを設定
  • gamemode_competitive_server.cfg -> gamemode_competitive.cfg 内に書いてある設定を上書きしたい場合
  • server.cfg -> gamemode_competitive.cfg に書いてある以外の項目を設定したい場合

GameModes_Server.txt だけは書き方が独特なので書いておきます。Classic Competitiveのみの設定しか書いてありません。
マップグループは各自適当に書き換えてください。

"GameModes_Server.txt"
{
	"gameTypes"
	{
		"classic"
		{
			"gameModes"
			{
				"competitive"
				{
					"maxplayers"	"32"
					"mapgroupsMP"
					{
						"mg_de"	""
					}
				}
			}
		}
	}

	"mapgroups"
	{
		"mg_de"
		{
			"name"	"mg_de"
			"maps"
			{
				"de_dust2"	""
				"de_train"	""
				"de_inferno"	""
				"de_dust"	""
				"de_aztec"	""
				"de_nuke"	""
			}
		}
	}
}

書き換えた後、サーバを一度起動してみます。
一応プラグインを使わない場合はこれで完了なので -usercon-ip+mapgroup を追記しておきます。
ルータの内側にある環境ならば -ip にローカルIPアドレスを入れ、VPS等直にグローバルIPが振られている環境ではグローバルIPアドレスを入力します。

$ ./srcds_run -game csgo -usercon -port 27015 -tickrate 128 -ip 192.168.xxx.xxx +game_type 0 +game_mode 1 +mapgroup mg_de +map de_dust2

プラグインの導入を行わない設定は上記で終了です。
SourceMod を使用する方法を続けて書きます

まずは Metamod:Source のサイトから、Linux向けバイナリをダウンロードします
その後 SourceMod のサイトから、Linux向けパッケージをダウンロードします。
MetaMod:SourceとSourceModを同じ場所へ解凍すると addons フォルダが競合するので無視して上書きします。
addons フォルダを開き、新規テキストを作成し、ファイル名を metamod.vdf にします。
中身を

"Plugin"
{
	"file"	"./addons/metamod/bin/server"
}

と書き、保存します。
フォルダ(ファイル)構成が以下のようになっていれば問題無いです。

+---addons
|   |   metamod.vdf
|   |
|   +---metamod
|   \---sourcemod
\---cfg

addons フォルダと cfg フォルダをサーバ側に転送します。今回はSSHサーバを起動していたのでFileZillaから転送します。
/home/user/srcds/csgo/ にフォルダ類を移動させ、起動します。 起動したらコンソールに meta versionsm version を打ち込んで読み込まれているか確認してみましょう。

meta version

Metamod:Source version 1.10.1
Built from: https://github.com/alliedmodders/metamod-source/commit/463dae7
Build ID: 904:463dae7
Loaded As: Valve Server Plugin
Compiled on: Jun 24 2014
Plugin interface version: 15:14
SourceHook version: 5:5
http://www.metamodsource.net/

sm version

 SourceMod Version Information:
    SourceMod Version: 1.6.0
    SourcePawn Engine: SourcePawn 1.2, jit-x86 (build 1.6.0)
    SourcePawn API: v1 = 4, v2 = 6
    Compiled on: Jul  3 2014 09:58:17
    Built from: https://github.com/alliedmodders/sourcemod/commit/95ab81f
    Build ID: 4525:95ab81f
    http://www.sourcemod.net/

これで終了ですが、一応わかりやすいように、設定ファイル等の場所を書いておきます(フルパス)

設定ファイル全般

/home/user/srcds/csgo/addons/sourcemod/configs
/home/user/srcds/csgo/cfg/sourcemod

有効にするプラグイン

/home/user/srcds/csgo/addons/sourcemod/plugins

無効にするプラグイン

/home/user/srcds/csgo/addons/sourcemod/plugins/disabled

各プラグインの言語ファイル

/home/user/srcds/csgo/addons/sourcemod/translations