Category Archives: Counter-Strike: Global Offensive

FreeBSD:phpVirtualBoxでなんちゃってハイパーバイザー

FreeBSDを生かしたまま、もしくはハイパーバイザに載せ替えてLinuxのゲーム鯖を動かせられないか
夏頃から動き回って無駄金使った結果、FreeBSDにVirtualBoxとphpVirtualBoxを乗せて
仮想マシンのホストにすることが出来た。

FreeBSDのVirtualBoxでRDPによるコンソールはサポートされていないことから
仮想マシンを立ち上げるときに、VNCサーバを立てるオプションが渡されるように
スクリプトを書き換える必要があった

ここに書いてある内容でおk
FreeBSDでphpVirtualBoxのコンソールを使う方法 | TATSUYA.info
http://tatsuya.info/wp/archives/10652

サーバの名前に;ポート番号を入れることでVNCサーバが勝手に立ってくれるので
サーバのIP:ポート番号でOSのインストールからVNCで見れる。
ちょーべんり

いくつか仮想化ソフトを試してみたが、最大の候補だったESXiが
先行き不安&CSGO鯖として使い物にならないのには閉口した。
Hyper-Vは優秀だったが、Tickレートを上げるとラグが増えるのでちょっと厳しい。
KVMやXenは試す機会が無かったが、結局VirtualBoxが使えることがわかったのでこれでFA
Webブラウザでちょっとしたメンテナンスが出来るのもポイント高かったのでー。

サーバへの収容数はTickが128ぐらいになると2コアで1鯖あたりがCPU的に限界っぽい感じ
デフォルトの64なら3鯖ぐらいはいけるようだった。メモリは8Gぐらいいるような感じだったが。
仮想化してあるんで、割り込みによるオーバーヘッドのせいだろうから物理マシンならもう少し詰め込めそう
物理マシンの数を増やすと電気代や空調の問題が出てくるから、
仮想化して台数減らす方向に動いたわけだけども。

CS:GO:サーバーのコンフィグが変わってた

鯖で遊んでる人から連絡があり、前回のアップデートから施していた設定が効いていないとのこと。
よくよく現象を見てみると、サーバの設定がserver.cfgより後に何かによって上書きされてることが発覚
調べてみたら31日のアップデート分に原因があった

ニュース – Counter-Strike: Global Offensive Update Released http://store.steampowered.com/news/8762/

- Game modes configuration file now specifies cfg files to exec instead of keyvalue pairs of convars to make it easier for server operators to configure their game modes. To tweak game modes it would be sufficient to provide gamemode_competitive_server.cfg and _server.cfg files for other game modes which will exec after stock cfg files.

要するにサーバの設定を起動時一回限りのgamemodes_server.txtから、
MAPチェンジごとに読まれるcfgに変更したらしい
ちょっとそういう大事なことはもっとはっきり言ってくれないと困ります^q^;;;;
おかげでgamemodes_server.txtに書いた内容が後から上書きされてパーになってた。

現時点でのCFG読み込みの順番は以下と思われる

gamemodes_server.txt(起動時のみ) → cfg/server.cfg(マップチェンジごと) → gamemode_competitive.cfg(マップチェンジごと) → cfg/gamemode_competitive_server.cfg

最後のCFGの内容が適用されるので、前二つで指定した項目が無効化されていたらしい・・・
元々gamemodes.txtに長々と書き出してある内容を分離したため、設定のほとんどがこれに入ってまう^q^;;
サーバを再起動しないと適用されないコンフィグが多かったので、これはこれで良いのだが
ある日突然やってしまうのがValveクオリティ
おかげでプラグインやコンフィグ弄ってる人は大混乱になります。

情報を集めてみたところ、cfg/gamemode_competitive_server.cfgというデフォルトで存在しないファイルの内容が最終的に適用されるみたいなので、これに書き換えるcfgを入れていけばいいという事みたい。
今のところまだマップ関連のシステムが分離されていないので、 gamemodes_server.txtは必要なのだけど
これはそのうちマップグループのファイルも分離されるんじゃ無いか・・・?

CSGO:鯖設定やらなんやら

CSGOのベータが始まって数日、ようやく鯖設定のこつが分かってきた。

サーバーの建て方は以下の公式Wikiにある

Counter-Strike: Global Offensive Dedicated Servers – Valve Developer Community
https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive_Dedicated_Servers

日本語なら以下が詳しいのでは。Linuxだけど。
Thiry blog
http://blog.five-seven.net/

アップデート情報はこちら
Steam
http://store.steampowered.com/news/

日本語でまとまっているのはnegitaku.orgのCSGOカテゴリ
http://www.negitaku.org/categories/32/

インストールまでは手順通りにやれば特に詰まるところは少ない
Linux(Ubuntu)しか試してないけど、64bitOSの際は32bitライブラリが必要だったり、
gzipをuncompressにシンボリックリンクを張ったりするぐらいかな
SteamCMD Update Toolの扱いがちょっと面倒なのでアップデートの自動化が出来ずにいる
最悪なのはSteamにログインするから一度に1アカウントにつき1つのインスタンスしか走らせられない
アカウントがゲーム用と共有だと当然ながらそっちも切断されてしまう^q^
srcdsみたいになしでも使えるツール出してくれないかな・・・と節に願う

サーバの設定について

CSGOのサーバ設定はほぼ全体が
/csgo/gamemodes.txtに入っている。
しかしこのファイルを直接弄って設定を変えるのはお勧めしない。
たぶんアップデートの度に初期化されると思われる^q^;
弄るならgamemodes_server.txtに必要事項を記述するのがベスト
このファイルに書かれている内容はgamemodes.txtの内容を上書きする。

以下はNo2鯖のgamemodes_server.txtである。
gamemodes_server.txt.exampleをコピーしたので内容が含まれておりまつ。
基本的にはgamemodes.txtと構文を同じにして、設定したいところをコピーしてくれば良い。
カスタムマップもマップグループを作成するか追加するなりして登録が必要
server.cfgもあるんだけど、gamemodes_server.txtとどちらが優先されるかは未検証
まあValve推奨はgamemodes_server.txtっぽいのだけど。
各パラメータの内容はまだ完全に把握出来ず。これはちょっと時間がかかりそう。

SUB0000497864 /srcds/csgo2/csgo% cat gamemodes_server.txt
// To use this file, rename it to GameModes_Server.txt
//
// Values here override the default gamemodes.txt

"GameModes_Server.txt"
{
        "gameTypes"
        {
                "classic"
                {
                        "gameModes"
                        {
                                "casual"
                                {
                                        "maxplayers"                    "24"
                                        "convars"
                                        {
										"hostname"						"[JP]NyanNyan CS:GO Server TEST [Type:Classic Competitive]"
                                        }

                                        "mapgroupsMP"                                           // List of mapgroups valid for this game mode
                                        {
                                                "mg_bomb_se"            ""
                                                "mg_all"                ""
                                        }
                                }
                                "competitive"
                                {
                                       "maxplayers"                    "24"
                                        "convars"
                                        {
                                        "maxplayers"                    "24"
                                        }

                                        "mapgroupsMP"                                           // List of mapgroups valid for this game mode
                                        {
                                                "mg_bomb_se"            ""
                                                "mg_all"                ""
                                        }
                                }
                        }
                }
        }

//////////////////////////////////////////////////////////////////////////////////////////////
// Map groups
//
// To use a mapgroup, it needs to be defined in a keyvalues
// block such as the example below, as well as listed in the
// 'mapgroupsMP' block within the game mode that will run it,
// such as the example above.
//
// Then launch the server with '+mapgroup MAPGROUPNAME'
//
// Example:
//
// srcds -game csgo +game_mode 1 +mapgroup mg_bomb_se +map de_nuke_se
//
//
// Check the developer wiki for updated community info
// https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive_Dedicated_Servers
//////////////////////////////////////////////////////////////////////////////////////////////

        "mapgroups"
        {
                "mg_bomb_se"                                                                    // mapgroup definition
                {
                        "name"                  "mg_bomb_se"
                        "maps"
                        {
                                "de_dust_se"            ""
                                "de_dust2_se"           ""
                                "de_nuke_se"            ""
                                "de_train_se"           ""
                                "de_inferno_se"         ""
                                "de_aztec_se"           ""
                        }
                }
                "mg_all"
                {
                        "name"                  "mg_all"
                        "maps"
                        {
                                "cs_office"             ""
                                "cs_italy"              ""
                                "de_dust2"              ""
                                "de_train"              ""
                                "de_inferno"            ""
                                "de_dust"               ""
                                "de_aztec"              ""
                                "de_nuke"               ""
                                                }
                }

        }

}

CSGO:Counter-Strike: Global Offensiveのサーバ立ててます

まだ実験的ではありますが・・・。

稼働中のサーバ群

[JP]NyanNyan CS:GO Server No1 [Type:Classic Casual]
nyannyan.nekolove.jp:27015
→特に変更点は無し

[JP]NyanNyan CS:GO Server No2 [Type:Classic Casual]
nyannyan.nekolove.jp:27015
→実験的に人数を24人へ、hostageのMAPをサイクルに(now)

[JP]NyanNyan CS:GO Server TEST [Type:Classic Competitive]
nekolove.jp:27025
→危険で過激な実験をするためのテスト鯖、安定感まるで無し

—– プレイヤー人工の壁 —–

[JP]NyanNyan CS:S Server β0.3 [FF-ON]
nekolove.jp:27015
→永遠にベータを貫き通すオワコンゲームの鯖