pingとパケロス

今回はpingとパケロス(以下PL)について書いていきます。本稿ではpingとPLについて以下の意味である前提です

  • ping:一定時間内におけるサーバとクライアント間の通信時間の平均値
  • PL:何らかの要因によって通信パケットが消えること

お舟において、一般的にpingが高くなると「ラグい」「プレイしづらい」と感じることが多いです
しかし、純粋にpingが高いだけの環境では「ラグい」「プレイしづらい」と感じることはほぼありません
画面上当たっていない魚雷にあたることや避けたはずの砲弾にVP抜かれることはままありますが…
このことはNAサーバやEUサーバでプレイしたことある人なら体感的にわかると思います

pingが高いだけだとどうなるのか

前稿の

サーバ判定とクライアント判定 - Hamaカルゴ冒険記

が関係してくるので読んでいない方は先にそちらを斜め読みしてください
お舟はサーバ判定が主なゲームとなっています
ただし、艦艇の動きがスムーズになるようにクライアントとサーバで艦艇の位置は若干ズレていることが多いです
敵艦艇を撃破した時にピクンと動くことを見たことはありませんか?実際の位置とサーバ上の位置がずれているため、撃破して廃艦のオブジェクトに置き換わった際に位置情報も更新されることでピクンと動くのだと思います(完全に推測です)

話しを戻しますが、仮にpingが200だった場合、サーバでは約0.2秒以上先の世界で当たり判定等を処理しています
その結果、サーバとクライアントの位置ずれも相まってクライアント視点で当たっていないはずの魚雷に接触判定がでることもしばしば…
ですが、基本的には「ラグい」「プレイしづらい」と感じることはほぼありません
偏差の感覚も若干ズレますが、それが普通の環境になってしまえばズレを感じることさえありません
普段アジアサーバ民ならばNA遠征等の他サーバで遊ぶような行為をしない限りは、99%のお舟プレイヤーは感じることのない問題です

ではなぜpingが高いとラグいと感じるのか

なぜ通常30msくらいのアジアサーバで100msくらいになるとラグを感じるのか
結論から言うと多くの場合は「PLが発生しているから」です

少し嚙み砕きながら解説していきます
全ての通信が30ms⇒100ms程度に膨れ上がった場合、NA遠征と同じような影響を受けますが「ラグい」と感じることは稀です。「なんかもっさりしてる?」と思う程度です


ここで前述した、pingは「一定時間内におけるサーバとクライアント間の通信時間の平均値」ということを思い出してください
数学的なセンスをお持ちの方はお気づきかもしれませんが、ここでPLが影響してきます
PLが発生すると通信のものによっては再送を要求します。つまり、情報を送信したが「届いたよ」という返事がない場合、再度送信するように設計されていることがほとんどです
お舟では1秒間に判定フレームが7回分(?※)あり、7回分の情報を更に分割して通信しています
※主砲の発射判定が7回なだけでもしかしたらもっと細かいフレームがあるのかもしれません
仮に、1秒間に50回の通信があるとして5回PLによって再送が発生、再送には200msかかるとします
通信の平均時間≒pingを計算すると47msとなります。当然30msよりも上昇します。普段pingが30msくらいの環境でpingが100msくらいになるにはどれくらいのPLが発生しているのか、再送にはどの程度時間がかかっているのかは中の人間じゃないので知りません
調べようと思えば計算できますが、何か解決するわけじゃないので調べていません

話しを戻します。再送が1回だけ解決すればいいのですが、再送が1回でも出るような経路だと何回も頻発することが多いです
年末年始私の環境ではPL率が60%近くまで上がりました。再送しても半数以上が失われるため再送の再送が頻発するような状況です
こうなるとpingが一気に跳ね上がります。再送の再送の再送…が発生すると1回の通信に数100msかかっているようなものですから
そしてお舟はサーバ判定のゲームです。「A/Dを押した」という情報をサーバへ送らないと舵が動き始めません
サーバの情報がないと周りの艦艇も動きません。「とりあえず慣性で動かしとこ」というプログラムにはなっていないのです
主砲を撃とうにも「主砲を撃った」という情報がPLしてしまえば弾はでません(APEXとかならとりあえず弾は出ます。多分)
結果として「ラグい」「プレイしづらい」と感じることに直結します

結論

pingが高い」というのと「ラグい」「プレイしづらい」は必ずしも同じ意味を指しません
確認するべきはPLの割合で、ラグを感じた場合PLを確認するようにしてください