beansgunのOverwatchメモ

ブロンズプレイヤーがAIM研究やオーバーウォッチリーグを楽しむブログ

FPSが必ずしもピーカーズアドバンテージ(飛び出し有利)にならない理由

●ピーカーズアドバンテージ(飛び出し有利)とは?

ネットワーク通信には必ず遅延が発生するため、キーを入力した側、壁から飛び出した方が先に敵の描画をし、相手が動いた通信情報を受け取る側の描画が遅れる仕組みです。

OWで分かりやすいのは自分のPing高いとき
「隠れたつもりがキルカメラでは抜かれていた」
「ギリギリ交わしたはずだがリプレイでは自爆に巻き込まれていた」
「スキル撃ったのに発動せず死んだ」
など、キルカメラと自分の行動にちょっとしたズレを感じるとき。

自分の画面に映った情報と、敵の画面に映る情報の2つの世界線が存在して、先に攻撃ヒットした(キー入力した)方にサーバーは上書き歴史修正してリプレイを流します。撃ち勝ったほうが歴史を作るわけです。

僕らはリプレイのときやっとズレに気づくぐらいで、実はゲーム中お互いずっと少しズレた違う世界線で戦ってます。お互いのPCがちょっとズレた世界をレンダリングしている。サーバーが無理やり攻撃当てた方に射撃を同期して、位置はいい感じに毎フレーム? (秒間20回なら50msごとに) 合成してるわけです。


とするとFPSは全部飛び出すゲームになってしまうのですが、ゲーム側は飛び出し有利にどうやって対策しているでしょうか?


●対策1:ストッピング

CS:GOやValorantでは、走り撃ちやジャンプ撃ちは弾が大きく拡散してしまうため、正確に頭を狙うためには飛び出してもいったん止まらないといけません。これにより飛び出し有利を軽減しています。

ネットワーク同期における飛び出し有利をできるだけ無くすために生まれたのが、「ストッピング」という概念です。


●対策2:未来予測同期 (予測外れたらロールバック)

自分が右に移動して飛び出すとき、敵のPC世界では動き出しのフレームを短縮し、次のフレームも右に動く通信が来るだろうと予測して描画します。

予測外れたら位置をちょっとだけワープしてロールバックするため0.0n秒以内、プレイヤーが違和感のないレベルの処理にするようさまざまな内部工夫をこらします。

ただし自分が動いてないとき、敵PC世界の0.0n秒後はやはり動いてないだろうというのが基本予測なため、次のフレームでもし動き始めても敵のPCにまだその情報は伝わってなく敵の世界では止まったまま。

違う世界線の自分が撃たれたとき、当てた方の世界線が正しいとサーバーは認識し、プレイヤーに違和感ない歴史を作ります。


格闘ゲームでも話題のロールバックについて

このロールバックというネットワーク同期処理は格闘ゲーム界で最近採用されまくって話題ですが、むしろネット対戦黎明期の技術で、昔は回線環境悪すぎて不自然な挙動しまくりだったのが最近見直されたとか。

www.4gamer.net
4Gamer
 ただ事実として,これまで国内向けの格闘ゲームでは,ほとんどでディレイ方式が採用されてきました。これはどういった理由からだと考えていますか。

片野氏:
 まず大前提として,国内のオンラインで遊ぶのであればディレイ方式でも安定して快適に遊べていました。ですので大きな問題が起こらなかったというのが要因としてあると思います。それと過去にもロールバック方式に対応した格闘ゲームはいくつもあったのですが,それらのほとんどが国内のインターネット環境が整う前のものでした。キャラクターが不自然な挙動を取ってしまうケースも多く,そのときの悪いイメージが強く残っていたのかもしれません。

 

 

●未来予測を逆手に取ったOWにおける「レレレ撃ち」

右左と高速に切り返しを行いながら打つ赤塚不二夫の「レレレのおじさん」というキャラのような動きは、未来予測処理を逆手に取った技術。

右行くはずが、左。左にいくはずが右と未来予測が外れまくって、細かなロールバック修正が大量に発生し、自分が入力してる画面より思った以上に敵からは左右へ動いて当てにくい技術。リーグのトッププロでも当て続けるのは難しいです。

ストッピングがなく、走り撃ちで弾が拡散しないOWならではのテクニック。
上級者はレレレ撃ちにしゃがみも混ぜます。

 

●対策3:一撃必殺の武器は通常速度で飛び出せないようにする

OWにおけるスナイパー枠は、構えたときゆっくりしか動けないように、簡単に飛び出させないように調整されています。例えば近距離の壁向かいに敵キャスディと同時に飛び出したとき、キャスディの方が早く飛び出せます。

アッシュは実装当時マーシーブーストをつけると200族一撃でしたがナーフされ一撃必殺でなくなり、ハンゾーはプロジェクタイルなため0.0n秒を争う戦いにはなりません。


●ウィドウのジャンプピークやエアーショットは飛び出し有利か?


ウィドウは横にジャンプしながら構えることで、通所速度と同じ速さで壁から飛び出して一撃必殺を狙うことが可能です。プロも好むジャンプでAIM拡散しないOWならではのテクニック。

検証はできないのですが、これは未来予測処理で補完されてる可能性があります。
ジャンプの軌道はプログラムにとっても予測しやすいもの。同じくフックで空高く大ジャンプしたエアーショットも予測でうまく敵のPC表示にも補完同期されてると思われます。

完璧な補完ではないでしょうし、補完されてるとしても損ではないですね。


では、飛び出し有利を防ぐためのストッピングがなく、左右の切り返しに慣性もなく、走り撃ち、ジャンプ撃ちで弾が拡散しない、リコイルもほぼ必要ないOWではどのように対策が行われたでしょうか?

 

●OWの対策:一撃で死なないほどHPが多く、スキルを強力にすることで、ピーカーズアドバンテージが重要でなくなる。




フラッシュバン、リコール、木の葉返し、バイオテックフィールド、コンカッション、HPスチール(リーピング)、スラム、アッパー、ハック、フリーズ、ダイナマイト、バッシュ、フェード、スリープ、イモータルフィールドなど。

一撃で死なないからこそ、ULTをでかい声で叫んだり予備動作があるからこそ、先に飛び出されてもスキルで返す余地のあるゲームなのでOWでピーカーズアドバンテージが話題になることはあまりありません。

これはHPの多いApexでも似た傾向で、ピーカーズアドバンテージは一撃死当たり前の CS:GO Valorantよりの話かも。


●OW2のソジョーンについて

ヘッショ一撃のレールガン持ちで、通常速度の飛び出しが可能というこれまでにないキャラが追加されました。メタであったリーグのMidseasonMadnessでは猛威を振るいます。

一応高速スライディングは軌道変更不可能なため、未来予測処理で同期取りやすいこと。レールガン撃つにも、まず敵やシールドを撃ってチャージする必要があるため事前に居場所がわかり、そのとき敵がピンを打って場所が共有されるため、ピーカーズアドバンテージより、単純に環境が強かったと言えるでしょう。


●結局飛び出し有利なの?

同じPingなら基本的に飛び出し有利。

未来予測同期が最大限効果を発揮してやっと描画タイミングは互角なので
飛び出し側が「描画で」不利になることはない。

ストッピングが絡まると「撃ち合い」は飛び出し不利になることも。
至近距離をショットガン一撃でやれるならあるいは?

HPが多いOWにおいては、スキル管理がずっと重要であまり気にする必要はない。

飛び出し有利を軽減するネットワーク同期。未来予測(ロールバック)はゲームごとに実装が異なり、どの武器、どの行動、どのライン、どう予測するか、チートにも影響するプログラムコードは各社秘密。


FPSの開発者ではないのでこの記事は考察上、誤ってる点があるかもしれません。そのときはコメント欄、Twitterなどでご指摘、ご質問ください。