ラグについて

ラグがAces Highに及ぼす影響について
Aces Highでは多くのプレイヤーが一つの戦場に存在します。あなたの機体の周りには多くの敵味方の航空機が存在しますが、あなたから見た相手の位置に本当に相手が存在するのでしょうか?
実は全てのプレイヤーが自らの存在する座標と他のプレイヤーが見ている機体の位置は異なるのです。これはAces Highに限らず、ネットワーク・ゲームの宿命です。
このような矛盾が起きる大きな原因は、ネットワークのラグにあります。ラグとは、あるプレイヤーと他のプレイヤーとの間の情報のやりとりにかかる時間です。
このラグを少しでも減少させるために、AHでは、プロトコルにUDPを利用しています。UDPを利用することで、高速に通信が可能となりますが、一方で信頼性が落ちます。通信状態があまりにも悪くなると、プロトコルがTCPに変更され、メッセージが表示されます。TCPに変わった場合、他のプレイヤーにも迷惑をかけることになるので、速やかにRTBして回線を確認した後、UDPで接続するために再度AHにログインし直しましょう。

ラグ

Aces Highのプログラム(以下FEと呼ぶ(=Front End))が相手の機体の位置を得るには、相手のコンピューターのFEがホスト(=サーバー)に機体の座標を送信し、その情報をあなたのFEがホストから受け取ります。同時にあなたの機体の座標もホストに送られ、ホストから相手のFEに送信されます。
この時、あなたのFEからホストまでの情報の伝達時間は、ゲームを始めるときにアリーナ選択画面に出てくるPINGで表示されます。
相手の座標が自分のFEに送られてくるまでの時間は、この自分のPINGと相手のPING(これは相手のアリーナ選択画面で出てくるPINGですから実際には知りようがありません。)の和になります。
同時に、自分の座標を相手のFEが受信するまでの時間も同じになります。
厳密に言えばこれにホストの制御時間(Host queue time)が加わるので、上の図で言えば、ラグの時間は(Ping1+Ping2+ホスト制御時間)になります。

見かけの位置

以下の説明では、プレイヤー1の実際の位置を明るい緑、プレイヤー1から見たプレイヤー2の位置を明るい赤のアイコンで、プレイヤー2の実際の位置を薄い赤で、プレイヤー2から見たプレイヤー1の位置を薄い緑のアイコンで示す。
プレイヤー1もプレイヤー2もPINGは50msと仮定します。すると、プレイヤー間のラグは約100ms(1/10秒)になります。プレイヤー2がタワーから360mphで移動するプレイヤー1を見ると、プレイヤー1は位置Aにいるのにプレイヤー2にはプレイヤー1がA地点からXだけ遅れた位置Bにいるように見えます。この例の場合、距離Xは52.8ftになります(360mph=528ft/sであり、ラグが0.1秒なので528x0.1=52.8ftとなる。)。これは戦闘機の翼幅よりも広い距離になります。もちろんプレイヤー1のPINGが40msでプレイヤー2のPINGが60msでも足せば100msなので結果は同じです。

ここで右図のように、プレイヤー1とプレイヤー2が互いに360mphで向かい合って飛行する場合を考えます。PINGはどちらも50msと仮定します。
この時互いに相手が52.8ft後方に見えることになるので、プレイヤー1の実際の位置はA、プレイヤー2の実際の位置はBであるが、プレイヤー1から見たプレイヤー2の位置はA、プレイヤー2から見たプレイヤー1の位置はBに見えることになる。互いに同じ時間に擦れ違っているが、擦れ違っている場所はAとBで異なっているのである。

プレイヤー1とプレイヤー2の速度が異なる場合はどうだろうか。プレイヤー1は360mphで、プレイヤー2は180mphで互いに擦れ違う場合を考える。この場合、右図のxは52.8ftであるが、yは26.4ftになる(プレイヤー2の速度が半分になったので、プレイヤー1から見たプレイヤー2の遅れも半分になる。)。プレイヤー1がプレイヤー2と擦れ違った瞬間、プレイヤー2はまだプレイヤー1と擦れ違っていないのである(プレイヤー2からはこの瞬間プレイヤー1が前方26.4ftに見える。)。

衝突

AHでは、敵機との衝突がありますが、この際衝突した相手はなんのダメージも受けないことに不満を漏らすプレイヤーが後を絶ちません。ラグについて理解すれば、衝突が一方的である理由もわかるかと思います。

衝突はそれぞれのFEで判定されます。このため、右図のようにプレイヤー1が真っ直ぐ飛んで位置Aでプレイヤー2と擦れ違ったとします。一方プレイヤー2がプレイヤー1の機体に向かって飛んでB地点で衝突したとしても、その瞬間プレイヤー1はA地点でプレイヤーBと擦れ違っているだけなので、プレイヤー1はプレイヤー2と衝突していません。
左図を見てください。BronkとTangleのそれぞれの視点から見た同じ瞬間の画像です。
この画像はBronkのFEから見たものです。この画像ではBronk(ピンクのSpit)は明らかにTangleに衝突しています。
しかし同じ瞬間TangleのFEでは左図のようになっています。TangleはBronkと衝突していませんが、メッセージを見るとわかるようにこの瞬間にBronkは衝突しています。
ネットゲームによっては、どちらかが衝突すれば相手も衝突したことにするものもありますが、AHではHiTechの考えによって、FE上で衝突していなければ、相手が衝突していても衝突していないとみなします。これによって、上の例で言えばTangleは衝突していないのに衝突と見なされることがないわけです。

ワープ

ワープ(敵機や味方機が止めってたと思ったら瞬間的に離れた場所に移動するような現象)の原因も通常はネットワークのラグが原因です。

HTC本社にあるホスト・コンピュータから、あなたのFEに対して周りの機体の位置情報がずっと送られています。これらの機体の位置情報は、他のプレイヤーのFEからホスト・コンピュータに送られた情報です。&br;
もし相手のプレイヤーの位置情報が何らかの原因(FEの処理の問題やネットワークの問題等)でホスト・コンピュータに送られなかった場合、このプレイヤーの期待の位置情報が更新されないため、止まって見えます。その後、原因が解消されて機体の位置情報がホスト・コンピュータに送信されて正しい位置情報があなたのFEに送られた時、情報が更新されなかった分の位置情報を飛ばして表示されるため、吹っ飛んだように動いて見えます。これがワープです。

ワープの原因が相手にあるとは限りません。自分のネットワーク等に問題があってホスト・コンピュータから位置情報を得ることができずにワープする場合もあるからです。

ある特定のプレイヤーだけワープするようであれば、そのプレイヤーに問題がある可能性が高いですが、周りの機体がどれもワープする場合はあなたに原因があると思った方がいいでしょう。

あなたのネットワークに問題がある場合は、コクピット内のビーコンが点灯しはじめ、通信プロトコルがUDPからTCPに変わります(メッセージが表示されます。)。この場合、あなたの機体が他のプレイヤーから見るとワープしていると考えられるので、他のプレイヤーに迷惑をかけないためにも速やかに帰還して一度ログオフして、ネットワーク障害を排除してからログインし直しましょう。

ネットワークの状態は、クリップボードから確認することができます。
このグラフをしばらく見て、急峻な変化がある場合は、ネットワークに問題があると考えられるので、原因を排除しましょう。

あり得ない射撃

ネットワークの遅延によるもう一つの問題は、あり得ない角度からの弾の命中です。
これは、防御側はまだ撃たれる位置にいないと判断しても、ネットワークの遅延によって攻撃する側は、既に命中できる位置にいる場合があります。

衝突の場合と異なり、射撃の命中判定に関しては、射撃した方のFEが実施します。そして射撃した側のFEから送られた命中したという情報がホスト・コンピュータを通して防御側のFEに送信されます。このようにしないと正しい見越し射撃を否定することになるからです。
わかりやすい例の一つとして、ヘッドオン状態で撃ち合って、こちらの弾が命中したのを確認した場合を考えます。あなたのFEで命中したのを確認(あなたからは見た目通りの結果)した時点でホスト・コンピュータを通して相手のFEに命中判定が送信されます。その後相手のFEで機体の破損が行われ(相手は通り過ぎた後、相手が後ろにいるのに弾が命中、機体が壊れる)、ホスト・コンピュータを通してあなたのFEに結果が送り返されるため、ヘッドオン状態での撃ち合いの場合、すれ違ってしばらくしてから相手の機体が壊れるのです。
このように、防御側が相手の射弾を避けるためには、数十ms〜数百msの遅延を考えて、先読みして避ける必要があるのです。

オンラインゲームの特性を把握する。

これまでの議論を整理すると
  • 攻撃側
射撃は、あなたの見たとおり射撃すれば良いです。ただし、破壊については相手のFEで処理されるため、十分な命中弾を与えてもほんの少し遅れてから翼がもげたり爆発したりすることになります。
  • 防御側
相手の機体がほんの少し先の位置にいる関係を頭に描いて、先を読んで回避しましょう。
  • 衝突
あなたの見たとおり、ぶつからないようにしましょう。その場合でも相手は衝突するかもしれません。
また、相手が地面に衝突したように見えても平然と飛んでいることがありますが、これもラグに起因することがあるので、見た目の敵機と一緒に墜落しないように気をつけましょう。


ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

図解!よくわかるネットワークの仕組み (SOFTBANK MOOK)

絶対わかる! ネットワーク超入門 第3版 (日経BPムック ネットワーク基盤技術選書)

まんがでわかった!ネットワーク入門 (すっきりわかったBOOKS)

ネトゲ廃人