ラグの対策【基本編❸】
じゃあ同期ズレってなーに?
※【同期】二つ以上の信号や処理のタイミングが合うこと。
フレームレート
ゲームにも、映画にも、アニメにも、「絵が動く作品」には『フレームレート』が設定されています。ええ、もちろん、ファインディング・ニモにも。
フレームレートとは「1秒あたりに処理される絵の数」って程の意味で、スプラトゥーン2は「1秒あたり約60枚の絵」で動いているのでフレームレートは【60fps】と表現します。
※この場合のfpsは「frames per second = フレーム毎秒」の意味。
※ちなみに日本のテレビドラマのフレームレートは【30fps】で、映画のフレームレートは【24fps】
同期という概念
1秒を60枚の絵で分割しているので、1枚の絵が表示される時間は僅か「0.017秒(0.0166666…7秒)」、これを【1F】(1フレーム)と数えます。
スプラトゥーンに例えると、「プロモデラー」の連射時間は、0.067秒なので【4F】。つまり4枚の絵を使ったアニメで1発の弾が発射されるイメージ。(0.0166666…7秒×4=0.0666666…7秒)
( ˘ω˘ ) スヤァ…
はっ。主婦イカさんが遠い目をして夕飯の献立を考えはじめたので、もっとザックリいきましょう。
例えば、スプラトゥーン甲子園でMC暴徒さんの「プレイボ〜〜〜ル!」の掛け声に対して、視聴者のコメント弾幕がピッタリ揃わないのも、視聴者それぞれに異なった「ラグ=時間的な遅延」があるからなんですね。
そこで『同期』という概念が生まれます。
もしも「プレイボ〜〜〜ル!」の「プレイボ〜〜」の間に送信された複数のコメントを「〜ル!」の時にまとめて表示することが出来れば、ある程度の時間的遅延は許容され、多くの人がほぼ同じタイミングで参加しているように感じる事ができます。これが同期です。
同期の種類
オンラインゲームの同期の方法は、大きく二種類に分かれます。
①【完全同期型】
ストリートファイター等の格闘ゲームや、スタークラフト等のRT
②【非同期型】
スプラトゥーン等のFPS/TPSや、ファンタシースター等
【完全同期型】は「1フレーム単位」で完全に同期させる事が前提なので、0.017秒毎にすべての行動判定が行われるシビアな世界です。
対して【非同期型】のスプラトゥーン2は「ある程度のズレを許容する」事が前提なので、【数フレーム】間隔で同期するユルイ判定です。
※イギリスのソフトウェアエンジニア Oliver Brammer(Octobyte)氏によると、スプラトゥーン2は「1秒間に約16回の同期」が行われているそうなので、【4フレーム】毎に同期されている計算になりますが、公式の情報ではないので参考までに。
同期ズレの正体
格闘ゲーム等は対戦フィールドが狭く、基本的に1vs1でプレイしますから完全同期型を採用しやすいのですが、スプラトゥーン等のFPS/TPSでは、広大なフィールドで複数のプレイヤーが同時にプレイする為、【1F】あたりの情報量が多すぎて非同期型を採用せざるを得ないのが現状です。
そして、非同期型のオンラインゲームは「同期していない間のフレームの絵はコンピューターの予測で描いている」ので必ずこうなります。

プレイヤーの画面で見えている敵の位置【A】と実際の敵の位置【B】がズレているので、画面上では弾が当たっているように見えても「システム上は当たってないので倒せない」という現象が起こるのです。
これが『同期ズレ』の正体です。
スプラトゥーンが「非同期型」のオンラインゲームである以上、回線にラグが無くても必ず発生し得る現象ではあるのですが、Pingの測定の値が大きければ大きいほど、同期のタイミングも大きくズレ、有名な『ワープ現象』を引き起こすので、ラグと同期ズレはおもいっきり密接な関係にあります。
※スプラトゥーンの同期は、サーバー処理型ではなく「P2P方式」なので、厳密には「サーバーではここ」はおかしいのですが、この説明をしだすと先に進まないので割愛させて頂きます。
ワープ現象の正体

因みにワープ現象の正体は、プレイヤーの最初の入力(A)に対してコンピューターが予測した移動地点と、同期完了直前に変更した入力(B)の移動地点が異なっていた場合に、強引に辻褄を合わせる為に起きる現象です。
オンラインゲームの「同期」や「仕組み」について、もっとちゃんと知りたい方や、本気でゲームクリエイターを目指している方は、「CESA(※1)」が主催するCEDEC(国内最大のゲーム開発者向け技術交流会)への参加や、オンラインゲーム業界の伝説的プログラマー「中嶋謙互(※2)」氏の著書をオススメします。
↑この本の第四章に「ゲームサーバーの話」、第五章に「P2Pの話」が書いてあります(上級者向け)。
※1【CESA】:コンピュータエンターテインメントソフトウェア協会(Computer Entertainment Software Association)東京ゲームショウの開催や、日本ゲーム大賞の開催をしている日本のコンシュマーゲーム業界の中心にある団体。
※2【中嶋謙互】:国産MMORPGで圧倒的シェアを誇ったミドルウェア『VCE』の開発者。