ラグについて考えてみた

Last-modified: 2021-02-28 (日) 18:51:27
* はじめに [#n27998fd]
なんだか最近''「ラグいラグい」''ってよく耳にするんで''ラグについて本気出して考えてみました''.
結論から言うと&color(Red){''撃ち合いの判定ではラグがある方が有利''};なんでラグってる奴らは&color(Red){''滅べ''};.
&color(Red){でも自分がラグってないかもきちんと調べた上でそういうこと言おうね.};
written by killnica
※執筆途中
* 目次 [#ja6c3fd3]
#contents
* ラグってそもそもなに? [#h7d6e53b]
''ラグ''は&color(Red){''遅延''};を意味します.
特にコンピュータ・ネットワークの中で&color(Red){''パケットの送受信に際して生じる遅延''};を指すことが多く,
そして&color(Red){''オンラインゲームで発生する遅延とそれに伴う現象''};も指すようになりました.
&color(Red){''遅延''};とは, 情報 (パケット) を伝達するのにかかる&color(Blue){''時間''};のことです.
&color(Blue){''伝達そのものの時間''};は&color(Green){''距離''};を&color(Purple){''速さ''};で割ることで求めることができます.
例えば大阪 - 東京間の約 500 km を現在主流の光ファイバ回線で通信するならば, 光の速さで情報が伝達すると仮定すると,
最短でも 500 km ÷ 300,000 km/s = 0.00167 s = 1.67 ms の時間がかかります.
さらに, &color(Navy){''送信側がパケットを用意する時間''};, &color(Navy){''受信側がパケットを処理する時間''};などが加わります.
これらを合算した&color(Blue){''時間''};が&color(Red){''遅延''};, つまり''ラグ''です.
* 前提 [#j7a5ea69]
** ラグの原因 [#w71d5841]
オンラインゲームのラグの原因のほとんどは&color(Red){''通信の遅延''};です.
この原因はさらに以下の 3 つに分けられます.
- ''通信回線 (上り)'' … &color(Blue){''伝達そのものの時間''};
- ''通信回線 (下り)'' … &color(Blue){''伝達そのものの時間''};
- ''端末の処理能力''  … &color(Navy){''パケットを用意, 処理する時間''};
ここで, ''上り''とはアップロードの際の通信速度, ''下り''はダウンロードの際の通信速度です.
また, オンライン FPS ゲームである A.V.A. はサーバ/クライアント方式の通信を行うため,
通信者 A - B 間の対人対戦では以下の 3 者がラグに関わります.
- &color(Red){端末 A};
- &color(Green){端末 B};
- &color(Blue){ゲームサーバ};
以上を組み合わせて, ラグの原因を細かく示すことができます.
すなわち,
- &color(Navy){''端末 A の処理能力''};
- &color(Blue){''端末 A とゲームサーバ間の通信回線 (上り)''};
- &color(Blue){''端末 A とゲームサーバ間の通信回線 (下り)''};
- &color(Navy){''ゲームサーバの処理能力''};
- &color(Blue){''端末 B とゲームサーバ間の通信回線 (上り)''};
- &color(Blue){''端末 B とゲームサーバ間の通信回線 (下り)''};
- &color(Navy){''端末 B の処理能力''};
以上の 7 つがラグの主な原因としてあげられるでしょう.
このとき&color(Navy){''ゲームサーバの処理能力''};は通信者 A, B の両方に影響します.
ここでは A, B 間のラグの違いによる影響を考察するため,
&color(Navy){''ゲームサーバの処理能力''};が理想的な状態であると仮定します.
** A.V.A. における戦闘時のラグの情況パターン [#w42479cf]
A.V.A. において, 戦闘時にやりとりする重要な情報は以下の 3 つです.
- ''キャラクタの位置''
- ''射撃''
- ''被弾判定''
そして, これらの情報は以下のようにやりとりされています.
- ''キャラクタの位置''
[&color(Red){端末 A};] ← 常にやり取り → [&color(Blue){ゲームサーバ};] ← 常にやり取り → [&color(Green){端末 B};]
- ''射撃と被弾判定''
[&color(Red){端末 A};] → 射撃 → [&color(Blue){ゲームサーバ};] → 射撃 → [&color(Green){端末 B};] → 被弾判定 → [&color(Blue){ゲームサーバ};]
では, ここで通信者 A, B 間のラグの違いを定義しましょう.
&color(Red){''それぞれの端末の処理能力は通信回線の上りと下り両方に影響する''};ため, 通信回線に含めて考えるとします.
また&color(Red){弾丸の速さは無限大};とし, ''射撃''された瞬間に着弾するとします.
A, B がお互いに向けて射撃を行うとき, 両者間のラグの違いは以下の 4 パターンに当てはめられます.
+ &color(Red){端末 A}; にラグがなく, &color(Green){端末 B}; の''通信回線 (上り)'' にラグがある
+ &color(Red){端末 A}; にラグがなく, &color(Green){端末 B}; の''通信回線 (下り)'' にラグがある
+ &color(Red){端末 A}; にラグがなく, &color(Green){端末 B}; の''通信回線 (上り, 下り)'' にラグがある
+ &color(Red){端末 A}; の''通信回線 (上り)''にラグがあり, &color(Green){端末 B}; の''通信回線 (下り)'' にラグがある
また, 戦闘のシチュエーションとして以下の 4 パターンを考えます.
+ ''移動しながら撃ちあう'' … 位置情報を把握してから射撃する
+ ''静止したまま撃ちあう'' … 位置情報に関係なく射撃する
+ ''A が移動し, B が静止したまま撃ち合う'' … B は位置情報を把握してから射撃し, A は位置情報に関係なく射撃する
+ ''B が移動し, A が静止したまま撃ち合う'' … A は位置情報を把握してから射撃し, B は位置情報に関係なく射撃する
これら上記の組み合わせから得られる 16 パターンをについて考察します.

考察

判定負け

A, B がお互いに向けて必中の致死射撃を同時に行った時にどちらが生き残るかを考察します.
このときゲームサーバに先に到達した被弾判定が適用され, その被弾対象は死亡します.
遅れて到達した被弾判定は無効となり, その被弾対象は生き残ります.
また, 遅延の長さはどれも等しく, ごく短いものとします.

考察本文は長いので折りたたみ式

下りにラグがあるほうが有利

下りにラグがあるほうが有利

  • B 上りラグあり
    B の射撃情報は遅延してサーバに送信され, A はサーバから B の射撃情報を直ちに受信する.
    A は被弾判定を直ちにサーバに送信する.
A の射撃情報は直ちにサーバに送信され, B はサーバから A の射撃情報を直ちに受信する.
B は被弾判定を遅延してサーバに送信する.
つまり, A の被弾判定は遅延× 1 だけ遅れてサーバに到達し,
B の被弾判定は遅延× 1 だけ遅れてサーバに到達する.
よって, 被弾判定の到達時間は等しく, 対等である.
  • B 下りラグあり
    B の射撃情報は直ちにサーバに送信され, A はサーバから B の射撃情報を直ちに受信する.
    A は被弾判定を直ちにサーバに送信する.
A の射撃情報は直ちにサーバに送信され, B はサーバから A の射撃情報を遅延して受信する.
B は被弾判定を直ちにサーバに送信する.
つまり, A の被弾判定は直ちにサーバに到達し,
B の被弾判定は遅延× 1 だけ遅れてサーバに到達する.
よって, B の射撃による A の被弾判定が優先されて A が死亡し, B が生き残る.
  • B 上り下りラグあり
    B の射撃情報は遅延してサーバに送信され, A はサーバから B の射撃情報を直ちに受信する.
    A は被弾判定を直ちにサーバに送信する.
A の射撃情報は直ちにサーバに送信され, B はサーバから A の射撃情報を遅延して受信する.
B は被弾判定を遅延してサーバに送信する.
つまり, A の被弾判定は遅延× 1 だけ遅れてサーバに到達し,
B の被弾判定は遅延× 2 だけ遅れてサーバに到達する.
よって, B の射撃による A の被弾判定が優先されて A が死亡し, B が生き残る.
  • A 上り, B下りラグあり
    B の射撃情報は直ちにサーバに送信され, A はサーバから B の射撃情報を直ちに受信する.
    A は被弾判定を遅延してサーバに送信する.
A の射撃情報は遅延してサーバに送信され, B はサーバから A の射撃情報を遅延して受信する.
B は被弾判定を直ちにサーバに送信する.
つまり, A の被弾判定は遅延× 1 だけ遅れてサーバに到達し,
B の被弾判定は遅延× 2 だけ遅れてサーバに到達する.
よって, B の射撃による A の被弾判定が優先されて A が死亡し, B が生き残る.

ラグってる敵の弾丸のほうが速く飛んでくる?

上の考察は同時に射撃を行った場合を想定しています.
詳細を見ればわかりますが, ラグのある敵の弾丸は相対的に速く飛んできます.
実際には遅延によって敵の弾丸が速く飛んでくるのではなく, こちらの弾丸が届くのが遅くなります.
その遅延差は 1 回分ほどで, これがお互いに射撃した時間の差を超えれば後から射撃してもラグで勝てます.

時間差被弾

A, B 間で一方的に射撃を行った時に被弾判定がどの程度遅延するかを考察します.
遅延の長さはどれも等しいとします.

考察本文は長いので折りたたみ式

A が移動する B に射撃A 上り B 上り下り にラグがあれば遅延する

A が移動する B に射撃A 上り B 上り下り にラグがあれば遅延する

  • B 上りラグあり
    B の位置情報は遅延してサーバに送信され, A はサーバから B の位置情報を直ちに受信する.
    A の射撃情報は直ちにサーバに送信され, B はサーバから A の射撃情報を直ちに受信する.
    B は被弾判定を遅延してサーバに送信する.
つまり, B の被弾判定は遅延× 2 だけ遅れてサーバに到達する.
  • B 下りラグあり
    B の位置情報は直ちにサーバに送信され, A はサーバから B の位置情報を直ちに受信する.
    A の射撃情報は直ちにサーバに送信され, B はサーバから A の射撃情報を遅延して受信する.
    B は被弾判定を直ちにサーバに送信する.
つまり, B の被弾判定は遅延× 1 だけ遅れてサーバに到達する.
  • B 上り下りラグあり
    B の位置情報は遅延してサーバに送信され, A はサーバから B の位置情報を直ちに受信する.
    A の射撃情報は直ちにサーバに送信され, B はサーバから A の射撃情報を遅延して受信する.
    B は被弾判定を遅延してサーバに送信する.
つまり, B の被弾判定は遅延× 3 だけ遅れてサーバに到達する.
  • A 上り, B下りラグあり
    B の位置情報は直ちにサーバに送信され, A はサーバから B の位置情報を直ちに受信する.
    A の射撃情報は遅延してサーバに送信され, B はサーバから A の射撃情報を遅延して受信する.
    B は被弾判定を直ちにサーバに送信する.
つまり, B の被弾判定は遅延× 2 だけ遅れてサーバに到達する.
A が静止する B に射撃A 上り B 上り下り にラグがあれば遅延する

A が移動する B に射撃A 上り B 上り下り にラグがあれば遅延する

  • B 上りラグあり
    A の射撃情報は直ちにサーバに送信され, B はサーバから A の射撃情報を直ちに受信する.
    B は被弾判定を遅延してサーバに送信する.
つまり, B の被弾判定は遅延× 1 だけ遅れてサーバに到達する.
  • B 下りラグあり
    A の射撃情報は直ちにサーバに送信され, B はサーバから A の射撃情報を遅延して受信する.
    B は被弾判定を直ちにサーバに送信する.
つまり, B の被弾判定は遅延× 1 だけ遅れてサーバに到達する.
  • B 上り下りラグあり
    A の射撃情報は直ちにサーバに送信され, B はサーバから A の射撃情報を遅延して受信する.
    B は被弾判定を遅延してサーバに送信する.
つまり, B の被弾判定は遅延× 2 だけ遅れてサーバに到達する.
  • A 上り, B下りラグあり
    A の射撃情報は遅延してサーバに送信され, B はサーバから A の射撃情報を遅延して受信する.
    B は被弾判定を直ちにサーバに送信する.
つまり, B の被弾判定は遅延× 2 だけ遅れてサーバに到達する.
B が移動する A に射撃A 上り B 上り下り にラグがあれば遅延する

B が移動する A に射撃A 上り B 上り下り にラグがあれば遅延する

  • B 上りラグあり
    A の位置情報は直ちにサーバに送信され, B はサーバから A の位置情報を直ちに受信する.
    B の射撃情報は遅延してサーバに送信され, A はサーバか B の射撃情報を直ちに受信する.
    A は被弾判定を直ちにサーバに送信する.
つまり, A の被弾判定は遅延× 1 だけ遅れてサーバに到達する.
  • B 下りラグあり
    A の位置情報は直ちにサーバに送信され, B はサーバから A の位置情報を遅延して受信する.
    B の射撃情報は直ちにサーバに送信され, A はサーバから B の射撃情報を直ちに受信する.
    A は被弾判定を直ちにサーバに送信する.
つまり, A の被弾判定は遅延× 1 だけ遅れてサーバに到達する.
  • B 上り下りラグあり
    A の位置情報は直ちにサーバに送信され, B はサーバから A の位置情報を遅延して受信する.
    B の射撃情報は遅延してサーバに送信され, A はサーバから B の射撃情報を直ちに受信する.
    A は被弾判定を直ちにサーバに送信する.
つまり, A の被弾判定は遅延× 2 だけ遅れてサーバに到達する.
  • A 上り, B下りラグあり
    A の位置情報は遅延してサーバに送信され, B はサーバから A の位置情報を遅延して受信する.
    B の射撃情報は直ちにサーバに送信され, A はサーバから B の射撃情報を直ちに受信する.
    A は被弾判定を遅延してサーバに送信する.
つまり, A の被弾判定は遅延× 3 だけ遅れてサーバに到達する.
B が静止する A に射撃A 上り B 上り にラグがあれば遅延する

A が静止する B に射撃A 上り B 上り にラグがあれば遅延する

  • B 上りラグあり
    B の射撃情報は遅延してサーバに送信され, A はサーバか B の射撃情報を直ちに受信する.
    A は被弾判定を直ちにサーバに送信する.
つまり, A の被弾判定は遅延× 1 だけ遅れてサーバに到達する.
  • B 下りラグあり
    B の射撃情報は直ちにサーバに送信され, A はサーバから B の射撃情報を直ちに受信する.
    A は被弾判定を直ちにサーバに送信する.
つまり, A の被弾判定は直ちに遅れてサーバに到達する.
  • B 上り下りラグあり
    B の射撃情報は遅延してサーバに送信され, A はサーバから B の射撃情報を直ちに受信する.
    A は被弾判定を直ちにサーバに送信する.
つまり, A の被弾判定は遅延× 1 だけ遅れてサーバに到達する.
  • A 上り, B下りラグあり
    B の射撃情報は直ちにサーバに送信され, A はサーバから B の射撃情報を直ちに受信する.
    A は被弾判定を遅延してサーバに送信する.
つまり, A の被弾判定は遅延× 1 だけ遅れてサーバに到達する.

結論

だいたいラグってるほうが有利, ラグアは滅ぶべし.

コメント

何か意見がありましたらどうぞ.

  • ラグってるほうが有利ゆうけどまずラグすぎて打ち合いに勝てない -- 2013-04-16 (火) 19:06:44
    • ラグは撃ち合いの勝敗を分かつ一つの要因になり得ますが, その影響はあまり大きくないと思います. このページではまったく同程度の実力者同士が撃ちあった際のラグの影響を考察しています. しかし, 実際にラグが撃ち合いの勝敗に影響するかどうかは撃ち合う者同士の実力差によって決まり, 多くの場合その実力差はラグの影響を遥かに超えます. そのため, 現実にはラグってれば撃ち合いで勝てるとは述べておらず, 相対的に有利であるとだけ結論しています.
    • また, ゲームプレイに支障をきたす程のラグが見られるのなら, 可能ならば良い通信環境を整えることをおすすめします.
  • このページの実験は撃った直後からラグが発生した場合の話だね。実際は撃つ前からラグ(表示の遅延、遅れ)があるわけだから、「ラグ無しの人」と「ラグありの人」が同時に相手を発見して同時に撃ち始めた場合、「ラグあり」の方が相手を発見するタイミングが遅い(=撃ち始めるタイミングが遅い)という事だから、ラグ有りの方が有利などありえない話。 -- 2013-10-06 (日) 18:13:44
  • もし、低スペックのPC(回線)の方が撃ち合いで「有利」というおかしな理論が正しいならば、みんな低スペPCにしてますよ。 -- 2013-10-06 (日) 18:21:32
  • FPSこのページの考察が正しいと証明できるソースはありますか? -- 2013-10-06 (日) 18:26:58
  • FPSで相手を倒すという行為は、 「1.相手を発見する」 「2.相手にAIMする」 「3.撃つ」 の3段階から成り立っています。ラグがある方は「1」と「2」が遅れます。にもかかわらず、ラグありの方が撃ち合いで有利という話はありませんね。 -- 2013-10-06 (日) 18:32:51
  • [端末 A] → 射撃 → [ゲームサーバ] → 射撃 → [端末 B] → 被弾判定 → [ゲームサーバ]これが疑問だなぁ・・・ この場合、Bが意図的に回線をストップさせたら、タイムアウトで弾かれない限りBは死なないという事が発生するけど、AVAでは聞いたことがない -- 2013-10-13 (日) 19:06:25
  • 他いくつかのオンラインFPSでは同現象を確認してるけど。。 -- 2013-10-13 (日) 19:09:55
  • 撃ち合いの判定では -- 2013-12-14 (土) 00:47:54
  • 撃ち合いの判定ではラグがある方が有利tte -- 2013-12-14 (土) 00:48:07
  • ラグがあるほうが不利とか擁護してるやつらは低スペかラグで負けたことの無いくらいのへたくそどもだな(確信) -- 2014-04-27 (日) 18:22:43
  • ↑5、回線絞りって言うラグを意図的に発生させるチートが別ゲーであったが不死身すぎてキック投票成立してたよ -- 2014-05-19 (月) 08:30:11
  • ラガーで強い人なんないないからこの理論はおかしい。だっていないから。 -- 2014-06-19 (木) 20:43:11
  • ラガーで強い人はいないっていう根拠もなく理論がどうこう言っちゃう小学生さんようこそ -- 2014-06-20 (金) 10:21:20
  • ラガーで強い人なんかいない。←何を根拠に?こちら側は計算と検証を通じてあなたに明確な根拠を提示していますがね。 この理論はおかしい。←ならば理論的なエラーが生じている箇所を指摘してください。誤りを指摘するコメントするならば明確な根拠に基づいた建設的な批判をお願い申し上げたい。-- 2014-06-21 (土) 00:21:41
  • 根拠もなにも、こういう前提の上で考えたらこうなるって言ってるだで、前提が間違ってたら結論の正しさは保証されんやろwww -- きるにか? 2014-06-21 (土) 21:27:43
  • 結局は前提も結論も、考察はしたけど検証はしてないから正しいかはわからんやんwww -- きるにか? 2014-06-21 (土) 21:28:26
  • いきなり結論を振りかざすんじゃなくてな、どうしてその結論に至るのかちゃんと考えてから言えってことや わかったかwwww -- きるにか? 2014-06-21 (土) 21:31:00
  • あと低スペはPCくらい買えよwww -- きるにか? 2014-06-21 (土) 21:33:31
  • まぁフォローしてくれや@m4itk -- 俺が!まいたけだ!? 2014-06-22 (日) 11:45:24
  • 高スぺ→低スぺ→高スぺの順にPC変わったが高スぺに戻って本当に良かった。最初の高スぺPCの時はラグってる奴は固いから有利だろって思ってたが、実際に自分が低スぺになったら撃ち合った瞬間固まる、動いたら敵は全然関係ない処にいる、固くてどうのって言うが全弾無効な訳じゃなく10発の内1~3発当たってない位で後は当たってるから気づいたら死んでるか瀕死状態。しかも当てようと思ってもワープ状態の敵に当てる事になるから普通に狙うよりかなりキツイ上にストッピングがタイムラグでずれるから弾は明後日の方向。高スぺと低スぺPC比べると高スぺPCは弾当てやすいわ、固まらないわ、ストッピングきくわ、弾まっすぐ飛ぶわで低スぺと比べ物にならない位に有利だってのが実感できた。 -- 2015-02-07 (土) 23:52:30
  • 低スペ高スペとかじゃなくて回線の話なのでは? -- 2015-02-15 (日) 17:27:36
  • 結局下りか上りどっちがラグい方が有利なの? -- 2015-02-18 (水) 05:41:24
  • 「ラグくないから負けた」  という言い訳のページ -- 2015-02-24 (火) 18:12:29
  • そもそも、このページは妄想で書いた文章のみで、検証した証拠がなにも無い -- 2015-02-24 (火) 18:15:55
  • 上がりが遅くて、下だりが早いとこっちの姿が敵には遅く表示されて、敵の姿は速く表示されるんじゃない(相対的に)?とになるから全部有利ってその代わり攻撃判定は敵のほうが早く届くこわけじゃないと思うけど、自分の回線状態を知ってれば戦いを有利に進められる気がする。この場合は近接戦に持ち込むと無双できると思うなあ。 -- でもさ? 2015-03-01 (日) 02:18:36
  • 上がりが遅くて、下だりが早いとこっちの姿が敵には遅く表示されて、敵の姿は速く表示されるんじゃない(相対的に)?その代わり攻撃判定は敵のほうが早く届くとになるから全部有利ってこわけじゃないと思うけど、自分の回線状態を知ってれば戦いを有利に進められる気がする。この場合は近接戦に持ち込むと無双できると思うなあ。 -- でもさ? 2015-03-01 (日) 02:20:45
  • ラグのせいで壁の曲がり角で敵に会ったとき撃ってるのに1-2秒遅れて発砲されるから勝てない。よくキャラクターが後ろに -- 2015-03-20 (金) 08:19:43
  • こっちだと相手が見えて一瞬だけど相手はキルカメラで見ると少し時間がある -- 2015-04-01 (水) 12:20:41
  • ラグらせてる奴は殺されると異常に画面ガタガタさせるよね?分かりやすい。 -- 2015-05-08 (金) 19:36:30
  • 回線が悪いとワープするのではなく、速度や安定性の高い回線でラグスイッチを使うと止まった状態から急速に画面の処理が行われ、弾丸より早く移動したようにしか見えない。ワープしたりするのは意図的に鉄砲水みたいな現象を起こしているということでは? -- 2015-05-08 (金) 19:49:14
  • この検証だと結局の所ラグ有利なんだけど、 -- 2015-11-13 (金) 14:13:48
  • ラグ無しAと下りラグありBが居たとして、Aが角で待っていたとします。(位置情報はそのままだとします)そこにBが飛び出しAを補足します(Bの位置情報が遅れている為AはBを補足出来ていない)ってなるんだけど?確かに状況によっては勝てるがいかに敵を補足し倒すとなるとただの突貫だと即死だわ -- 2015-11-13 (金) 14:28:56
  • まあ逆に言えばラグありは奇襲に弱いって面もあるけどね。この検証が確かなら -- 2015-11-13 (金) 14:31:06
  • まあ逆に言えばラグありは奇襲に弱いって面もあるけどね。この検証が確かなら -- 2015-11-13 (金) 14:31:06
  • まあ逆に言えばラグありは奇襲に弱いって面もあるけどね。この検証が確かなら -- [[ ]] 2015-11-13 (金) 14:31:22
  • ラグ無しAと下りラグありBが居たとして、Aが角で待っていたとします。(位置情報はそのままだとします)そこにBが飛び出しAを補足します(Bの位置情報が遅れている為AはBを補足出来ていない)ってなるんだけど?確かに状況によっては勝てるがいかに敵を補足し倒すとなるとただの突貫だと即死だわ -- 2015-11-13 (金) 14:31:37
  • この検証だと結局の所ラグ有利なんだけど、 -- 2015-11-13 (金) 14:32:06
  • なんか知らんけど、連投スマソ -- 2015-11-13 (金) 14:33:19
  • なんか知らんけど、連投スマソ -- 2015-11-13 (金) 14:33:20
  • ここまでラグが出るゲームをやってる君たちが信じられない -- 2017-03-01 (水) 20:17:03
  • 結論はラグ無しが有利 -- 2017-06-18 (日) 01:07:40
  • ラグを意図的に起こすラグスイッチの場合はラグスイッチ圧倒的有利。ぶっちゃけヨーイドンで撃つだけじゃないから、ラグ持ちが有利だったりラグ無が有利だったり変わる。ただラグ持ちと戦うと理不尽な勝ち負けが起こるのは確か -- 2018-07-23 (月) 20:26:28
  • 描写とヒット判定が同期されてないゲームはラグがもろに影響するイメージ -- 2021-02-28 (日) 18:51:27