Killing Floor 2 が面白い
ただ、サーバ回りはやはりというかなんというか・・・
いわゆる自鯖を立てないとプライベートでプレイできない。
(6人で普通の鯖を埋めるって手もあるけど)
一応サーバを建てたのでメモ
単純に建てるだけなら公式に書いてある通りにやればおk
http://wiki.tripwireinteractive.com/index.php?title=Dedicated_Server_%28Killing_Floor_2%29
しかし、書いてある通りにやってもうまくいかないのがプログラムの常。
理解しなくても建てられるけど、詰まったときに自己解決する場合、
「どこに問題があるのか?」
の切り分けのためにするのが以下のメモになる はず
・SteamCMDとは?
まずはじめにおとせと言われるプログラム。
zipの中にsteamcmd.exeというファイルが入っている。
これはKFの会社(TripWireね)が提供しているものではなく、
Valveが提供しているツール。
ValveはSteamを運営している会社ね。
つまり、SteamCMDとはValveさんが自社のサービスを利用しているゲームのために用意したツールということ。
このツールを利用することにより、
Steamゲームのサーバプログラム等を簡単にダウンロードできる。
イメージとしてはlinuxのyumに近い。
私はSteamでゲーム売ったことないので良く知らんけど、大きく間違っていないはず。
このSteamCMDを使ってサーバを建てる方法しか今(2015/6現在)は存在しない。
では早速建てるためのサーバプログラムダウンロード。
Wikiに書いてあるコマンド
force_install_dir .\KF2Server\
は力づくでインストールするよ。ディレクトリは .\KF2Server\だよ。になる。
.\でカレントディレクトリ、つまりSteamCMDがある場所を指定している。
力づくというのは、「すでにファイルがあっても」「指定したディレクトリが存在してなくても」インストールする、という意味。
app_update 232130 validate
は、アプリケーションのアップデートをするよ。アプリケーションの番号は232130だよ。整合性チェックも行うよ。
という解釈になるはず。
232130ってのがkilling floor2に与えられた番号になる。
このコマンドを行うと、上記で指定したディレクトリにkilling floor2のサーバファイルがダウンロードされる。
SteamCmd +login anonymous +force_install_dir ./kf2_ds +app_update 232130 +exit
↑のコマンドはいわゆるスクリプトとかバッチコマンドと呼ばれるやつ。
適当にテキストファイル作って、↑をコピーしてはりつけて、
SteamCmd.exeがあるフォルダに突っ込んで、ファイル拡張子を.batに変えてダブルクリックすればアップデートが簡単にできるぜ!ひゃっほーう! というサンプル。
ゲームにパッチ当てるとサーバにもパッチ当てる必要があったりするので、
そういう場合にやる必要がある。
あれ、この前起動してたのに今日起動しねぇな? と思ったらまずはアップデートを。
では次。
・サーバ建て
SteamCMDはいったん忘れて、今度はKF2Serverのフォルダを開く。
ここからはTripWireの物。
KF2Server.batというのがサーバ立ち上げスクリプトになる。
ただのスクリプトなので、中身はテキスト。
ためしにテキストで開いてみると、下記内容がかいてある。
start .\Binaries\win64\kfserver kf-bioticslab?adminpassword=123
これは KF2Server.batが置いてあるフォルダの、Binariesというフォルダの
win64というフォルダのkfserver.exeというプログラムを実行する、という意味になっている。
オプションとして、最初のMAPはbioticslab、管理者パスワードは123を指定している。
管理者パスワードはWebAdmin用っぽい。のちに紹介するブラウザで操作するサーバ管理画面用ね。
123ってそんな簡単なのがデフォルトかよ!とも思うけど、ポート開いてなきゃアクセスできないのでデフォルトでおk。
このスクリプトはSteamCMDでアップデートする度に初期化されるので、
ごりごりいじるとついうっかり消されたりする。
カスタムするなら別の名前で保存したほうがよさげ。
で、このスクリプトをダブルクリックすると、コマンドプロンプトが一瞬出て消えて、また出てくるはず。
なんで2度出るの? というのは、
スクリプトを実行するコマンドプロンプトが現れてkfserver.exeを呼ぶ、呼んだら消える
kfserver.exeがコマンドプロンプト形式でサーバの情報を表示する。
という手順のため。
サーバで英語がつらつらでて読むのがつらいけど、
注目する点はただ一つ。
それは「エラーが出ているかどうか」に限る。
Warningはいくら出ようが基本立ち上がる。
というかTripWireがWarningを消すつもりがないのでどう頑張ってもWarningは出る。
Errorという文字が無ければ立ち上げ成功。
Killing Floor2を起動して、サーバーブラウザのLANというとこに何か表示されてれば成功。
サーバを建てる
という観点なら、ここで終了。
あれ、ポートは?あけないとサーバ建てられないんじゃないの? という人は次の項目。
・ポート開放
Wikiに書いてあるけど、Killing Floor 2で使用するポートは4つ。
必須ポート
7777
27015
20560
任意ポート
8080
※20560ポートが何も解説ないのに開けさせようとする根性にちょっとびびるが置いておこう。
上記ポートをあけると、さきほど立ち上げたサーバが「ネットを介して接続可能」になる。
つまり、ネットを挟んで向こう側のだれかと遊ぶときは基本的にポートを開けないといけない。
あくまでもネットを挟んで向こう側の誰かと遊ぶとき、なので家の中でLANでつながっているPC同士で遊ぶ場合、ポート開放は必要ない。
ここらへんの認識をしておくと、詰まったときにどこに問題があるか?を意識しやすくなる。
上から説明していくと、
7777
ゲームポート。
このポートを使ってゲームの同期をとったりして一緒に遊ぶ。最重要ポート。
27015
Steamマスターサーバポート。
おそらくレベルとか経験値とか実績の情報を同期するポート。
これがあいてないと正常に経験値が得られないはず。KF1だとそうだった。
20560
Steamポート。
としか書いてない。
開けろと言われているので開けているポート。
こっちが実績とかのポートなの…かなぁ? と勘繰る程度。
気になる人がいたらパケット解析でもなんでもして調べてください。
8080
WebAdminというブラウザでアクセスできる管理画面の外部用ポート。
Tomcatやったことある人にはなじみすぎてゲロが出る番号。ようするにWebサーバのポートのこと。
※KF2やるパソコンで一緒にサーバも建てる場合、無視していい。
必要になる状況は、たとえばデータセンターとかにサーバを置いて、そこでKF2のサーバを建てまくって、家とか会社から管理する、みたいな状況。
同じような名前でずらーっとゲームサーバを用意するような鯖管理者には必要だけど、
個人で知り合いとちんまりやる場合には必要ない。
ちなみにポート開放方法は
「ポート開放」
でぐぐるが吉。
・WebAdminで管理してみる
サーバプログラムを立ち上げると、自動的に管理サーバ(WebAdmin)も起動する。
http://192.168.xx.xx:8080/
をブラウザ開いて適当にURLのとこにぶっこむとつなげるはず。
xxは自分のIPアドレスを入れる。
windowsキー+Rでファイル実行を開き、cmd を入力してコマンドプロンプトを起動、
ipconfigと打ってIPv4という欄にある自分のローカルIP。詳しくは「ローカルIPアドレス」でぐぐるとわかるかもしんない。
繋げない場合は
kf2server\KFGame\Config/
にある、
KFWeb.ini
ってやつをテキストエディタで開き、
bEnabled=false
を
bEnabled=true
にする必要がある。
※なんかデフォルトでfalseだった気がする。
ログインはいじってなければ
admin
123
でおk。
操作方法は直感でいける。
MAP変えたり、難易度とかWaveの長さ変えたり、くらいならできる。
・ポート開放完了、サーバもError無し、さぁ準備万端だ!
となってから問題になるのが、
「自分からはつなげるけど、外からつなげんのか? ポート開放成功してんのか?」
という疑心暗鬼。
現在はサーバプログラムを立ち上げても、7777があいているか確認できない模様。
プラス、自分のサーバには外部から接続することはできない。
ので、知り合いか、立ち上げっぱなしにして誰か入ってくることを期待しよう。
・知り合いに接続してもらう
知り合いに接続してもらい、一緒に遊ぶ場合、
サーバブラウザで表示されるサーバ名を教えて繋いでもらう方法もあるけど、
一発でつなぐ方法が以下の手順。
1.KF2を立ち上げる。
2.@キーを押す。
3.コンソールが出てくるので、下記コマンドを打つ。
open 999.999.999.999:7777
※999~999の部分は自分のグローバルIP
事前にココhttps://www.cman.jp/network/support/go_access.cgiとかで確認しとくこと。
4.ESCでコンソールを消す。
※パスワードが設定されている場合、この時点でパスワードを問われる。
入るのが成功すると、サーバプログラムのコマンドプロンプトにだれだれが入った、とか出てくるので、それが出てきたら成功。
という感じ。