top_line

【 最新ニュースをアプリでサクサク読むなら! 】

格ゲーのオンライン対戦を快適にするロールバック方式と未来予測のからくり

インサイド

格ゲーのオンライン対戦を快適にするロールバック方式と未来予測のからくり

いきなり格闘ゲームの細かい話で大変恐縮なのですが、2022年5月16日、『ストリートファイターV』に緊急的なキャラクターバランス調整が入りました。その中で、ルークというキャラクターの小パンチ、1番威力が低くて素早く撃てるパンチですね、これのガードストップが8フレームから12フレームになる修正がありました。簡単に言うと、パンチを相手がガードした時、両者が止まっている時間を4フレーム伸ばす調整です。

4フレームという数字がピンとこないかもしれませんが、1フレームは60分の1秒なので、4フレームは約0.07秒になります。ルークの小パンチはガードすれば反撃可能な技なのですが、これまではガードストップが短い為に分かっていても反応できない人がほとんどでした。これが4フレーム伸びたことで反応しやすくなります。

このわずか0.07秒、瞬きほどの間もない時間が、格闘ゲームの攻防を左右することをまずご理解いただければと思います。さて、先日、Q&AサイトのQuoraで、日本とブラジルのように離れた場所でのオンラインゲーム対戦でどうして同期がとれるのか、という質問とその解答に大きな注目が集まりました。そう、上記のように0.1秒にも満たない時間がプレイに大きな影響を与える格闘ゲームでは、オンラインのラグは致命的になる場合があります。

オンラインゲームでは、お互いの位置がだいぶ離れていても (日本とブラジルくらい) 何故素早く同期できるのですか?どのように通信しているのでしょうか?(Quora)

オンラインゲームなどでネットワーク上の同期を取る仕組みを“ネットコード”と呼びますが、先ほどご紹介した『ストリートファイターV』では、「GGPO」というロールバック方式のネットコードを採用しています。そして上述したQuoraでは、このロールバック方式についての解説が大変興味深く、話題になっていたんですね。ここでは、Quoraで解説されていた内容を今一度整理しつつ、補足も加えてロールバック方式についてお話していきたいと思います。

■画面が“カクつく” ディレイ方式と問題点
従来はディレイ方式と呼ばれる形のネットコードが使われていました。ディレイは“遅らせる”という意味ですね。攻撃ボタンを押して、ネットワークによる遅延が2フレームあったとするなら、その2フレーム間の画面を意図的に止めることで遅らせて同期をとる方法です。

この方法で同期をとると、画面が滑らかに動かず、いわゆる“カクついた”状態になります。画面が滑らかに動かなければそれだけで快適とは言えませんが、ディレイ方式は操作にも影響を与えます。

1回攻撃をするだけであれば、それほど大きい問題ではないかもしれませんが、連続で攻撃をつなげるコンボはどうでしょうか。トレーニングモードなどで何度も練習して覚えたはずのタイミングが、遅延によって外されることになります。

■未来予測と巻き戻しのロールバック方式
そこでロールバック方式が登場します。前述のGGPOは、北米ラスベガスで開催される格闘ゲームの世界規模大会「Evolution Championship Series」、通称“Evo”の創始者の1人であるトニー・キャノンが開発したネットコードで、2006年に初期のバージョンがリリースされました。

先ほどと同じように自分が攻撃ボタンを押して、ネットワークによる遅延が2フレームあったとします。ロールバック方式の場合、自分の画面ではスムーズに攻撃を出すことができます。相手側は2フレーム遅れて攻撃する指示が伝わる分、最初の2フレームのモーションを省略して攻撃が発生します。これによって、攻撃が当たるタイミングは、対戦する両者の画面が同じになります。

さて、ここで問題があります。攻撃する指示が遅れて到着するその2フレームの間、キャラクターはどんな挙動をしているのでしょうか?答えは、その直前と同じ行動です。これがロールバックの秘密の1つ“未来予測”です。

オンラインの応答速度は常に一定では無いため、遅延も大きくなったり小さくなったりしますが、画面上は常にその直前と同じ行動をしている前提で予測をして描画してしまいます。後で詳しく説明しますが、この予測は90%的中すると言われています。

そして、残りの10%が外れた場合にどうするか、予測が外れているので、間違ったところまで巻き戻して計算し直し、途中を省略して結果を表示することになります。巻き戻して計算しなおすから、ロールバック方式なんですね。

ロールバック方式の場合は、相手が不自然な動きをすることはあるものの、画面は滑らかに動き、コンボなど連続入力のタイミングは格段に取りやすくなります。

■未来予測のからくり
さて、さらに疑問が浮かんだ人がいると思います。なぜ、直前の行動を繰り返すだけで、未来予測は90%も成功するのでしょうか。実は単純で、ゲームのキャラクターは90%以上の時間、直前と同じ行動を繰り返しているからです。

違う言い方をすると、1秒間が60フレームで、その間プレイヤーは何回ボタンを押すのかという話なんです。相当激しくプレイしてもせいぜい5回か6回ぐらいでしょう。60フレームで6回ボタンを押したとするなら、残りの54フレーム、つまり9割は同じ行動をしている理屈になります。

実際その通りで、例えばしゃがみガードをしたプレイヤーは、1フレーム後も、2フレーム後もだいたいしゃがみガードをしているはずです。ですから、前と同じ行動を描画すると、9割方の時間、ゲームはあたかも完全に同期しているかのような状態でスムーズに進みます。これが未来予測のからくりです。

ロールバックといっても、遅延が小さければほとんど違和感はなく、プレイヤーは気がつきません。ですから、基本的には前のフレームと連続で同じ動作をさせて、違う動きをした時だけ気がつかないうちに修正していることになります。

■ロールバック方式の問題点
しかし、ロールバック方式も完全ではありません。遅延が大きくなると省略されるフレームも長くなって、動作の欠けが目立ちます。ワープして見える、とよく言われますが、格闘ゲームに関して言えば攻撃の初動が見えなくなります。ロールバック方式の未来予測は、連続していない行動をとったとき、つまり攻撃を加える際には外れるのです。

ですが、多少動作が省略されても多くの攻防は成立します。なぜなら、距離が近ければ、防御するにしても攻撃するにしても相手が動く前にプレイヤーは状況から判断してボタンを押しますし、距離が遠ければ、多少の省略が起きても対応した行動が間に合うからです。

しかし、相手の行動を見てからシビアなタイミングで反応しなければいけない時は、ロールバックの影響を大きく受ける場面もあるでしょう。例えば、攻撃の空振りを見てからそのスキに自分の攻撃をいれる、いわゆる“差し返し”といったテクニックなどは、難しくなる場合も考えられます。ゲームに熟練している人ほど、高い反応速度でシビアな入力を試みる為、ロールバック方式だったとしても遅延の影響を感じやすいと思われます。

もっとも、実際のゲームでは、ロールバック方式だけで遅延を解決しようとはしていません。そもそも同程度のオンライン環境のプレイヤーをマッチングさせる仕組みやディレイ方式との併用など、快適なプレイのために多角的な工夫がされています。その結果、シビアな同期が求められる格闘ゲームのオンライン対戦であっても、格段に遊びやすくなりました。

夏には『ストリートファイター6』の情報も解禁される予定され、格闘ゲームファンの期待が高まる中、システムやキャラクターなどはもちろんのこと、快適なオンライン対戦の進化にも注目したいですね。


TOPICS

ランキング(ゲーム)

ジャンル