今格ゲー界で多用されている「ロールバックネットコード」とは何か?をIT低能が低能なりに懸命に調べ解説してみた | ゲヲログ2.0

今格ゲー界で多用されている「ロールバックネットコード」とは何か?をIT低能が低能なりに懸命に調べ解説してみた

ハナシの始まり

「ロールバックネットコード」という技術を最近多く聞く。特にアーク製の格闘ゲームで実装されていることを発端に知られることになった。ではこれは何か?ということを、ITパスポート初級技術者レベルの低能なあたしが、低能なりに懸命に調べ解説してみるという記事です。

ガイヨーセツメー

これね、ぶっちゃけ英語版Wikipediaの「GGPO」の記事がかなりわかりやすい(Wikipedia)。というのもそれだけではあいまいでわからんので、逐一解説しよう。まず、「ロールバックネットコード」とはP2P(Peer to Peer)技術に類されるようなもの、ということをわかってほしい(もっとわかりやすく言うと、”クライアントサイドの予測技術”ということを前提に覚えておいてくれ!)。そしてその通称名を「GGPO(Good Game Peace Out)」と呼ぶ。これがラグレスを実現するため、つまり操作遅延を是正するために作れた技術なんである。

「GGPO」の歴史

Wikipediaによると、こう書かれている。抄訳してみるとこんな感じ。

欧米で有名な格ゲーム系メディアサイトShoryukenや格ゲーで世界一を決めるEVOなどのイベントの共同設立者であるTony Cannonによって作れたのが「GGPO」である。2006年、Xbox360でリリースされた復刻版スト2(「Street Fighter II: Hyper Fighting」のこと)のオンライン環境がうまく実装されていない事に彼も不満を抱いてた。よってそれを是正するために作られたものである。2006年後半に初期版が固まりリリースした後、各社もその技術的優位に目をつけ自社タイトルに受け入れ始めた。Cannonは2019年10月9日次のツイートによって、「GGPO」をオープンソースにし、MITライセンス下で管理することを表明した。

GGPO – Wikipediaより
じゃあ早く、どういった技術なのか教えろよ

ごもっとも。「GGPO」の核心を表現するのであれば予測である。プレイヤーによる操作を待つだけでなく、「GGPO」はその予測に重きを置いている。「GGPO」はプレイヤーの操作を予測し、それに妥当かどうかをシミュレートする技術「ロールバック」という技術をコアにしている。操作を待つのではなく、操作を予測し、それが妥当かどうかを判断し、それに合致していない場合、操作量をその分差し戻すのだ。本当に簡単に語るとこれだけである。つまり、

プレイヤーの動作操作を予測⇒合致してない場合、現在までのフレームまで元に戻す

というだけのことであり、簡単に「GGPO」のコアはこれだけで説明がつく。この「GGPO」アルゴリズムは、具体的には「スカルガールズ」や「キラーインスティンクト」「メタルスラッグ」などのタイトルで導入されているそうです… (; ・`д・´)

いいから、もっと詳しく教えろよ

「GGPO」以前のディレイベースの技術っていうのはね、相手の遅延を承知の上、相手の遅延に合わせてこちらの操作も遅らせる…という帳尻合わせの技術だった。これだと遅延は不確定な要素であり一定ではない誤差が生まれるがため、その帳尻合わせに無駄な分が生じてしまうよね。現実にはディレイベースだとうまく齟齬を修正できないことになる。だから、それを克服するために「GGPO」は生まれた。「GGPO」は単なるディレイベース=帳尻合わせの技術、ではないんだ。

これについてはAUTOMATONの記事が優れているためそこから事例を拝借して解説する(AUTOMATON)。ただ、AUTOMATONの当該記事は箇条書きで書かれておらず、いささかわかりにくい面があるので一連の流れを簡単に説明しよう。

・例えば、相手が1F目にキックボタンを押したとする。

・遅延が2Fあり3F目にキックが発生するとする。

・こちらの1F目のキックボタン操作を2F遅らせる(ディレイベース技術の例)。

・結論:相討ちになる。

☟これを「GGPO」はこう改善する☟

・相手が1F目にキックボタンを押す。

・同様に遅延が2Fあり3F目にキックが発生するとする。

・相手のキックボタンを押すまでの1F~2F間をスキップして、3F目から「ロールバック」つまり、2F分巻き戻し再生する。

・すると、当然、こちらの1F目のキックボタンと合致して. . .

・結論:相討ちになる。

つまり、結論は同じだけど、そこに至るまでのアルゴリズムが違っているわけだ。

じゃあ1F~2F目まではどうしてんだよwて思うでしょ?『その論理はおかしい、帳尻合わせという点では同じではないか?』ということだね。つまり、予測技術を使って、”それっぽくその間(1F~2F)まではキャラクターを動かしている”というのが「GGPO」のミソだとAUTOMATONの同記事は伝える。つまり埋め合わせの分をわざと作り出し、それと合致していない操作がある場合、それを差し戻して再生するという未来予測という学習のアルゴリズムを用いてるんだ。とはいっても、「GGPO」による「ロールバック」だけで実際ラグの問題を完全に解決できるもんでもないので、従来からのディレイベースとハイブリッドな技術として使われることがままあるそうである。

ケツローン

ディレイベースとは異なり、アルゴリズムが違い、その間の予測技術には様々な学習技術が使えるため、AI時代の技術として注目を浴びている。これで少なくとも、ニュアンスとしてはあっていると思う(が、間違いがあったらTwitterでご指摘お願いします<(_ _)>)。


※参考リンク①:GGPO – Wikipedia

※参考リンク②:『GUILTY GEAR XX ΛCORE PLUS R』にてオンライン対戦の遅延を改善する“期待の技術”テスト開始。ほぼ遅延なしの対戦を実現する「ロールバックネットコード」とは何なのか? – AUTOMATON