ようこそ TOKYO B Community へ ログイン | 登録 | ヘルプ

Killing Floor そして実績へ

実績 Mut の稼動に成功したので、とりあえず1年以上前の実績リストを
動かしてみた。

ただし、今後も仕様や設定の変更。廃止もありえる。
αテストに近いです。

基本的なリストなので、現在は KILL 数などがあるだけです。
1年まえのものを多少直しただけです。
今後はほかにも追加するかも。
もともと実績案は別の実績グループも作る予定だった。

ダメージ系は単位表示変更できないので、1000 damage 単位を
Wave 終了時に一括セーブしています。
エンドマッチ時は端数切捨てです。

一括でセーブしないと下にメッセージ出続けるんですよね。


ファイル自体は ServerPerks V7 のパッケージに同根。
プログラム自体も統合したりしてみましたが、一部設定に
問題がでそうなので、Mut 自体は別のままで、実績タブだけ
読みに行ってます。

TCP 接続の問題があるので Open 処理を変更。
ポートのバインドが自動のため、Marco 氏のように指定範囲で
開けるようにするか悩みましたが、とりあえずそのままにして
様子見です。
EPIC のリファレンスに沿ったコードなのでなんとかなるかな。

テクスチャは3ファイルを統合
ServerPerks アイコン他
カメラ関連
実績mut(画像2個)

というか実績のテクスチャはプログラム名と同じためコードが
混入してしまっていて、プログラム名変更したりフォルダ移動
するとクラッシュするので作り直さざるえなかった。

ファイルを削減しつつプログラムは追加してます。

公開 2014年10月30日 11:12 投稿者 ZARTH
タグ : ,

コメント

# re: Killing Floor そして実績へ

コミュニティアナウンスが出ていた通信帯域設定の変更について、質問とご報告があります。

まず、今回の変更は、クライアント側から見て、どのような振る舞いが出ていれば正なのでしょうか?

1. 高負荷化時のfps低下の抑制(ex. Arcade Horzine Mall屋上やHotelプールサイド戦闘時の、fps低下率の改善)

2. 通信遅延の抑制(スペシメンの位置情報のズレや、プレイヤーが発砲した弾の無効化ないし消滅の改善)

3. その他

次にご報告ですが、通信系の数値指定を変更されたとのことですので、クライアント側の通信量の計測を行ってみました。

【計測環境】

・KillingFloor.ini内の記述は、以下のようになっています(デフォ数値です)

 [IpDrv.TcpNetDriver]

 MaxClientRate=15000

 MaxInternetClientRate=10000

・NICはIntelのGigabit CT Desktop Adapterを、CPU(i7 3820)に直結で繋いでいます(サウスを経由していません)

・配線は、クライアントPC(有線LAN)--ルータ--WANです。回線はNTT西日本の、フレッツ光ネクスト隼(WAN共有1Gbps、LAN1Gbps)です

・計測ソフトは、TCP Monitor Plusです

・クライアント側の送信量は常時低い数値(0.26-0.40Mbps)で推移していたので、以下に示す数値は全て受信量です

・計測日は、2014-11-18夜です

●計測サンプル1:Japanese Garden、1-5Wave、2-3クライアント、Mori HoE

常時通信=0.1Mbps以下~0.150Mbps

スパイク(稀)=0.232, 0.419Mbps

●計測サンプル2:QuakeIII Tur5 {G}、3-7Wave、11, 13, 14, 15クライアント(+観戦最大3人)、Mori HoE

常時通信=0.1Mbps以下~0.152Mbps

スパイク(稀)=0.183, 0.300, 0.386, 0.453Mbps

スパイク(極稀)=4.460, 5.002Mbps

通常0.1Mbps以下から0.15Mbps程度の受信量で揺れ動き、たまにスパイクが出る感じです。

クライアント数が多い場合、スパイクの発生頻度が上がるようです。また、4-5Mbpsに達する、極端に大きなスパイクが

極稀に出るようになるようです。

2014年11月19日 21:41 by Castel

# re: Killing Floor そして実績へ

すいません、送信量の単位を思いっきり間違えていました。

誤:送信量は常時低い数値(0.26-0.40Mbps)で推移

正:送信量は常時低い数値(0.026-0.040Mbps)で推移

確認を含めて再度計り直してみましたが、常時送信の波はMax 0.078Mbps程度まで上がるようです(発砲時に上がる)。

2014年11月19日 22:28 by Castel

# re: Killing Floor そして実績へ

基本的にはコマ落ちやPingが気持ち改善されればいいな、という想定です。

基本設定はそのようになっています。

 MaxClientRate=15000

 MaxInternetClientRate=10000

Internet~はサーバー側の設定なので、これは先日増量しました。

実は以前から多少は増速してあったのですが、設定をいじる人は少なくあまり意味はなかった。

総転送量はTickRateとも関係してきますが、

15000byte(?) * 30 Frame

が秒間の最大量となる・・・はずですよね。たぶん。

MaxClientRate はクライアント設定なので、これが機能しないと意味はありません。

しかし、NetSpeed コマンドで打ち込まないと 10000 前後で動作してしまうようで

あまり良いとは言えませんでした。

ではどうしたかというと、Mut側で、強引に SetNetSpeed を実行してみました。

これにより、15000 程度では動作するようになった・・・と希望しています。

実際には設定が有効になっていれば、瞬間風速的には設定値を超えるので

かなり改善するはずです。しかし動作しているかはよくわかりません。

例えば NetSpeed 2500 に設定すると、敵が見えないくらいに飛びますが、再設定で上書きされるので、

Join してしまえば、安定するように見えました。

New Player と表示されるタイミングなので、メニュー関連が表示されるくらいまでは増速しません。

マップ変更などでは初期化されるのでその都度戻ります。

MaxClientRate の強制変更も試みてみましたが、もともとがスクリプトではなくバイナリのため

中は見えないし、設定も無視されてしまいお手上げでした。

正としては、MaxClientRate の再設定なので、引き上げれば転送速度はもっと改善すると思います。

コマ落ちが気になるようならば、サーバー設定値 35000 までは動作すると思います。

動作を見る限り 30000 あれば十分だと思います。

人数が増えれば転送情報も増えるので、当然使用帯域は増えると思いますよ。

2014年11月20日 0:14 by ZARTH

# re: Killing Floor そして実績へ

様子見ていて、T1/LAN 設定している人にはあまり代わらないのかも・・・

やっぱり個人で設定しないと基本的にはだめなのかなぁ

2014年11月20日 1:05 by ZARTH

# re: Killing Floor そして実績へ

今は

 MaxClientRate=35000

 MaxInternetClientRate=35000

になっていますが、ユーザーは、未設定だと MaxInternetClientRate の値に

引きずられるのでしょうか???

2014年11月20日 7:53 by ZARTH

# re: Killing Floor そして実績へ

ご説明ありがとうございます。

当方の環境について追記しますと、上記の数値は以下のような設定で計測を行いました。

・KillingFloor.ini

 [IpDrv.TcpNetDriver]

 MaxClientRate=15000

 MaxInternetClientRate=10000

 NetServerMaxTickRate=30

 LanServerMaxTickRate=35

・ゲーム内Settings

 Connection:LAN/T1

 Dynamic Netspeed:ノーチェック(OFF)

MaxClientRateの単位をbyteと仮定し、取れた値とサーバ側で上書きを狙った値を照合すると、

一応数値自体はピッタリと合っています(15000byte=15KB=0.15Mbps)。

 ※LAN通信を含む多くの規格は8b/10bで転送されるので、bit/byte変換は0の数を調整して単位を変更すれば済む

TCP Monitor Plusの計測周期が50ms毎なので(50msが最小設定)、数値は毎秒20サンプルで取得した値となり、

ゲーム設定の TickRate=30 と完全に同期を取った値の取得は不可能です。

ただ、スパイクを除いた常時受信の波がMax 0.15Mbps程度で常に止まるということは、少なくとも当方の環境では

MaxClientRate=15000 は機能しているようです。

それを踏まえた上で、KillingFloor.iniのMaxClientRateの数値を書き換えて再テストを行ってみました。

具体的には、MaxClientRate=15000 を30000と2500に書き換えた上で、通信量を計測してみました。

ゲーム内Settingsは弄らずに、LAN/T1、Dynamic Netspeed=OFFのままです(計測日:2014-11-20夜)。

●計測サンプル1:MaxClientRate=30000

 GIGAToilet、1-3Wave、7, 11クライアント、Mori HoE

 結果:MaxClientRate=15000と数値変動に変化なし

●計測サンプル2:MaxClientRate=2500

 Crag、1-4Wave、13クライアント、Mori HoE

 結果:MaxClientRate=15000と数値変動に変化なし

クライアント側でMaxClientRateの数値を変更しても、転送量に変化はないようです(2014-11-18に計測した時と、

グラフが全く同じ動きをします)。常時通信の振れ幅、スパイクの傾向、最大スパイク値ともに変わりません。

また、ゲームの動作も特に変わったようには感じられませんでした。

これはサーバ側での設定上書きが上手く機能していると喜ぶべきなのか、それともクライアント側で30000に

指定しても挙動が変化しないと悲しむべきなのか、ちょっとよくわかりません。

Pingについても、スコアボードを開くタイミングによって全員が低いか高いかなので、これもよくわかりません

(新サーバへの更新直後の段階で、特定プレイヤー数人のPingが高くなったことは覚えているので、

その方と一緒にプレイできれば差違を確認できるかもしれません)。

他に考えられるテスト法としては、ゲーム内SettingsをISDNやCable/ADSLに変えてみてどう挙動が変化するか

ですが、これは後日試してみます。

2014年11月21日 1:38 by Castel

# re: Killing Floor そして実績へ

例によって単位ミスを少し訂正

誤:15000byte=15KB=0.15Mbps

正:15000byte=15KB=0.15Mbit

読んでいるのは連続した波なので、ゲーム側の数値と比較して読んでも問題ない、と思います。

2014年11月21日 2:27 by Castel

# re: Killing Floor そして実績へ

ご苦労様です。

ClientRate を上げても変わらなかったとのことで、実質コードが機能していない感じで

結論から言うと今回は失敗といえます。

もう少し、強引に速度設定しないとだめなのかな。

今のコードは捨てて、別の方法で試してみます。

一応、ゲーム内のコンソールコマンドである程度の情報は読み取れますよ。

「stat net」ネットワーク表示です。

ClientRateあげても打たないと効かないのかな

「NetSpeed xxxxx」とか打てば速度設定されるかもしれません。

 Dynamic Netspeed は昔からいれるとおかしくなる気がします。

ちなみに現在の上書きは25000なので、15000では機能していないことになります。

NetSpeed を打てば上がるようなので確実なのはこっちなんでしょうね。

2014年11月21日 22:41 by ZARTH
この投稿に対する新規コメントはできません