色々な人が書いていますが、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 version
や sm 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