goodgames

メニュー


自己まんブログ


特設BF4正式版 推奨環境ベンチマーク









2015 > 01 > 18-01


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Hit Srv


お問い合わせが相次ぎましたが...

この機能が搭載された時期は失念致しましたが、
Battlefield4のオプション設定にてネットワークに関する
リアルタイムなステータスを画面で確認する機能が追加されました。

ちなみにBattlefield4のインストールディレクトリ(*1)にuser.cfgなるテキストファイルを作り、

NetworkPerfOverlay.DrawGraph 1

と記述するとゲーム画面の右下にグラフなどが表示されるようになります。

Hit Srv ... ゲームサーバが判定した敵への命中回数
Cli Srv ... プレイヤーのPCが判定した敵への命中回数

クライアントとサーバそれぞれで命中判定を行っていますが、
結果が異なる場合、サーバ側が優先されるため命中した回数が異なることがあります。

そのため Hit Srv < Hit Cli であれば、
プレイヤーは命中弾を与えているように見えても、
サーバはそのように判定していないケースが発生していることを意味します。

(*1)ディフォルトではC:\Program Files (x86)\Origin Games\Battlefield 4となっています。

■Hit Srv < Hit Cliになるのはなぜか?


多くの方がHit Srv ≒ Hit Cli * 70%程度となっているとのことで、
30%程命中弾が失われているのではないかとのこと。

このようなお問い合わせを頂いた原因は、
Hit Srv = Hit Cli にならないと命中判定にて損得が生じているとの疑念がある からだと思います。

でも、敵の弾も30%失われれば平等になりますので気にするのはやめましょう。

■まずは例外から



Hit Srv > Hit Cli となっています。

特殊なケースでは...


55回全てが無効になっています。

この2つの例は意図的に作り出した特殊な状況で発生していますが、
状況によって結果が大きく変化することを意味します。

■いきなり結論


Hit Srv ≠ Hit Cli になる原因の多くは、
プレイヤーが見ている状態(画像)とサーバ内の状態が一致していないためと考えられます。

具体例.1
移動中の敵に対して発射した弾が敵に命中した(ように見えた)。 → Hit Cliは1増加
しかし、サーバ内では敵は別の場所に居る(ことになっている)ため命中とは判定されなかった。 → Hit Srvは変化せず

具体例.2
移動中の敵に対して発射した弾が敵に命中しなかった(ように見えた)。 → Hit Cliは変化せず
しかし、サーバ内では敵は別の場所に居る(ことになっている)おり、たまたま命中したと判定された。 → Hit Srvは1増加

具体例.3
至近距離の敵と大量の銃弾を浴びせあったが、最後の命中弾を与えた(ように見えた)とき、サーバ内の状態では敵が既に死んでいた。
(サーバ内部の状況としては、死体を撃っていたことになる)

最後の命中弾は無効になるため、Hit Cliだけ1増えます。

具体例.4
至近距離の敵と大量の銃弾を浴びせあったが、最後の命中弾を与えた(ように見えた)とき、サーバ内の状態では自分が既に死んでいた。
(サーバ内部の状況としては、死体が弾を撃つことはあり得ないため、恐らく弾の発射情報は無視されている)

最後の命中弾は無効になるため、Hit Cliだけ1増えます。

命中判定をサーバ側優先で行っているが故に起こる問題ですが、
クライアント側優先(またはクライアント側のみ)の仕様にすると、
命中判定がHighPingさんの影響を受けることやチートの問題など
様々なデメリットも生ずることから十分に納得出来るトレードオフだと考えられます。
(サーバ側の命中判定は自分のPing値(Latency)しか影響しません)

Battlefield3のOperationMetroにて、壁の裏に隠れた後で何発も被弾した経験のある方も多いでしょう。
Battlefield4ではこのような現象は皆無になったはずです。

( - )