オンライン対戦をやるなら知っておきたいネットワーク通信

この記事はスマブラ Advent Calendar 2019 - Adventar 16日目です.遅刻しました.ごめんね

adventar.org

15日目はミカドくんのサムネイル自動生成ツールに関する記事でした.

スマブラのYouTubeサムネイル自動生成ツール作ってみた!(完成したとは言ってない)|ミカド|note

note.com

以下本編.

はじめに

スマブラSPをプレイする上で避けて通れないのがオンライン対戦です.

本記事では,オンライン対戦をする上でなんとなく知っておいて欲しいネットワーク知識をざっくりとまとめました.

ラグの原因や有線接続が推奨されるのはなぜか,などを知ることで,オンライン対戦に対する準備や心構え,対策を最大限行うことができるはずです.

この記事内で書かれる情報は,各プレイヤーのネットワーク環境や地域の回線業者の機器に依存するものがいくつも含まれています.

なるたけ客観的な視点で記載するように配慮をしていますが, もし内容に誤り等がありましたら,コメント欄までよろしくお願いします.

オンライン対戦の仕組みを改めて知る

今更オンラインの意味を調べてみると,

コンピューターの入出力装置などが、中央処理装置と直結している状態。また、端末がインターネットなどの通信回線に接続されていること。

とあります(on-line(オンライン)の意味 - goo国語辞書).

同じ場所に集まり顔を突き合わせて行う対戦が「オフライン」対戦と言われるのに対して,インターネットを通じてゲーム会社が用意したサーバ(マッチング等を管理するコンピュータ)に接続し,同じくインターネットに接続したプレイヤーと対戦を行うことを「オンライン」対戦と呼ばれています.

オンライン対戦では,自分や相手の操作情報をインターネットを通じて相手のゲーム機に送ることで,遠隔の相手との対戦を実現しています.

インターネットの向こうにいるプレイヤーは㎞単位で離れていることが当たり前です. この距離を結んでインターネット通信をするために,各種対戦ゲームでは,この通信時間を考慮した処理を行なっています.

この通信の待ち時間と処理時間,それを踏まえたゲーム内の処理が,オンライン対戦で「ラグ」と呼ばれる操作遅延が作られる主な原因になります.

また,格ゲーではP2P(Peer to Peer)と呼ばれる通信形式で対戦を行うことが大半です.P2Pは相手の家にあるゲーム機と直接インターネットで接続して通信する方式です. 単純なことをいうと,特定の相手と高速に通信できるメリットがあります.

また,スマブラSPにおいて,この通信の際にはUDPと呼ばれる方法でデータを送っています. これは,相手が情報を受け取ったかいちいち確認せずにデータを送る仕組みになっていて,

メリット:

  • 仕組みが簡単で高速

であるのに対して,

デメリット:

  • 通信中にデータが欠けたり入れ替わったりしてもわからない

という通信です.

実際にスマブラSPのオンライン対戦の通信をキャプチャしてみると,対戦中はUDPで通信し操作情報を送りあっていることが確認できます.

では操作入力が通信中に失われた場合どうなるのか? というと,ゲームごとに処理は異なるので一概には言えません.

少なくとも,この通信中のデータ欠損が,入力が飛んだり反映されなかったりする主な原因として考えられます.

詳しくゲームのネットワーク通信について知りたい場合は,以下の記事でより詳細に書かれているので参考にしてみてください.

[CEDEC 2010]ネットゲームの裏で何が起こっているのか。ネットワークエンジニアから見た,ゲームデザインの大原則 - 4Gamer.net

有線 > 無線 の理由

次に,なぜオンライン対戦で有線接続が好まれるのか,についてです.

結論からいうと,「完璧に通信できるなら無線でも問題ない」です.

しかし,現在一般的な家庭で使われる無線通信では,主に「電波干渉」によって通信が不安定になるため,これを避けるために有線接続が推奨されています.

現在の家庭において,Wi-Fiの電波は

  • 2.4GHz
  • 5GHz

のどちらかの周波数帯を用いた上で,それぞれのwi-fiルータが可能な通信規格で無線通信を行なっています.

無線LAN規格についてはここでは省略しますが,以下に各周波数帯の違いをまとめると,

2.4GHz:

  • 障害物に強い
  • Bluetoothや電子レンジなど,他の電波の影響を受けやすい

5GHz:

  • 障害物に弱い
  • 同一の周波数帯を用いる無線機器が少ない
  • 使えるチャンネル数が2.4GHz帯よりも多い
    • チャンネル...各帯域で,wi-fiそれぞれが通信に使用する電波の幅のこと

のような特色があります.

複数のwi-fiが飛んでいる環境では,使用しているチャンネルの電波同士が影響しあって通信が乱れる可能性があります.

wi-fiのチャンネルについては,基本的にはwi-fiルータの機能によってうまく調整してくれることが多いです.

ただしその機能が無かったり,ご近所さんの電波がぶつかったり,通りすがりの人が電波を飛ばす機器を持っていたりするなどによって,いくらでも電波干渉が発生する状況が生まれます.

そのため,無線通信で完璧に通信することは現在の住居環境では難しいことが大半です.

よって,これらが発生しにくい5Ghz帯の無線通信か,そもそも発生しない有線通信が好まれる,ということです.

無線通信の規格や周波数帯についてより詳しく知りたい場合は - 無線LAN規格の違い | IODATA アイ・オー・データ機器

無線LANのチャンネルについては - Wi-Fiルーターのチャンネル設定をチェック(1)【自宅Wi-Fiの“わからない”をスッキリ!】 - INTERNET Watch

あたりをみるとよりわかりやすいと思います.

格ゲーではレイテンシ > 通信速度

レイテンシも通信速度と一緒くたにされがちなところはある気がするけど……

通信速度 という言葉があります.

これは,1秒間にどのくらいの量のデータを送ることができるか ということを示すパラメータです.

よく高速インターネットのウリにされるワードですが,実はスマブラのような対戦ゲームでは,1秒間に数百メガバイトのデータを送るような回線性能は必要ありません.

上で述べたとおり,格ゲーでは主にP2P通信を用いて,操作入力の情報(Aを押した,右キーを押した,など)を送りあっているので,1秒間に送るデータ量自体は,動画閲覧などと比べたらそこまで多くないのです.

その一方で,対戦ゲームはネットワークと対戦相手に対して高速な応答を求めます.

ここで重要になってくるのがレイテンシpingです.

それぞれ、応答速度と、pingを使用したときにわかる、2点間で通信した際の応答時間 を示します。

レイテンシ=応答速度 ──── つまり,対戦相手とどのくらいの時間で操作入力を送り合うことができているのか が大切な要素なのです.

残念ながら,スマブラSPでは対戦相手と自分との間でどのくらい通信に時間が掛かっているのか,ゲーム内で知ることはできません.

なので,せめて自分のインターネットの応答速度の目安を知る意味で,ping値を測定することをお勧めします.

ping値は,サーバと自分のPC間で通信した結果、送った通信の応答が帰ってくるまでの時間を示します.

PCのコマンド,あるいはwebサービスを用いることで知ることができます.

ここでは有名なSpeedtest by Ookla - The Global Broadband Speed Testを紹介しておきます.

この値が小さければ小さいほど,その相手との通信に応答遅延が発生しないことがわかります.

pcやスマートフォンで測定できることが可能ですが,以下の点に注意してください.

  • 物理的に遠ければ遠いほど,ping値は大きくなる
    • 光の速度がいくら早くても,物理的な距離があれば遅延が発生します
  • 無線で測るのと有線で測るのは別物
    • 電波干渉やわずかな処理時間によってping値は多少変化します
    • どうしてもswitchのping値の目安を知りたい場合は,switchと同じ形に有線接続したPCを使用しましょう
  • あくまで参考値であること
    • ここで測っているのは,特定のサーバーと自分の機器のping値です
    • ping通信プロトコルUDPではない場合があります(上のサイトの仕組みは不明)
    • 対戦相手との通信に遅延があればラグは発生します
    • 距離の他に,相性の問題も十分考えられます

ゲームにおける1Fが1/60秒,つまり 0.01666... 秒 = 約16.7ミリ秒 なので,単純な計算で,対戦相手とのping値が34ms以上あれば1Fの遅延が確約されることになりそうに思えます.

ping値はゲームや各家庭のネットワークでの処理時間を考慮していないうえ、実際の対戦で行っている通信とは別物なので、あくまで参考値でしかありません. そもそもゲームの方でレイテンシを加味した上でオンライン対戦の入力や画面描画の処理を行なっているでしょう.

そのため,単純に特定のping値を超えているからといって,それを以って相手をラグ持ち認定し,攻撃することは絶対にやめましょう.

繰り返しますが,あくまでも参考値です.

高速回線は不要かと言えばそういうことでもない

また,通信速度が必要ではないと言いましたが,今の時代は複数の機器が同時に通信を行うことは日常茶飯事です.

Youtubeのほか,ツイッターの読み込みやDiscordのボイスチャットスマートフォンゲームのイベント開始通知も全部インターネットとの通信です.

通信速度が不十分なインターネット回線でそれらと同時にオンライン対戦をする場合,通信の順番待ちが発生し,それが遅延の原因になりえます.

もしもネットワーク対戦の質を少しでもあげることを考えるならば,(ルータや住居設備の性能・設定にもよるが)動画やファイルのダウンロードを並行して行わないこともオンライン対戦の質を上げる要素となります.

十分な設備と回線速度があれば,多少並行してインターネット通信を行なったくらいでは対戦時の通信は乱れないでしょう.

高速な回線があると嬉しいのはこういう所に効いてくるからということを,なんとなく覚えておいてください.

インターネット環境ガチャを避けるためには?

この時期は進学就職のために,マンションやアパートへの引越しを行う機会が増えることと思います.

引越し先でも快適にインターネットを使いたい!という要望は格ゲーマー誰しもが持っている願望だと思います.

果たして望み通りにインターネットが使えるか,というのは実際に使ってみないとわからないという現状がありますが,ある程度調べたり,現地の設備で察することが可能です.

住みたいマンションの住所を光速回線業者のサイトから検索しましょう.

nuro光auひかりなどのサイトから住所を調べると,どのマンションがそのサービスに対応しているか知ることが可能です.

マンションタイプの家の場合,すでに設備工事に対応している建物は検索で引っかかるようになっています.

なので引っ越しの際は,

  • 住みたい地域のマンションを調べる →
  • 使いたい光回線のサービスで住所と建物を調べる →
  • インターネット工事が可能か不動産屋に相談

という手順を踏むと,引っ越してからインターネット環境のせいでオンライン対戦できない ということが避けられると思います.

また,地域や設備によりますが,専用に光回線サービスに契約しなくても十分対戦を行える程度のインターネットを利用することができる場合があります.

その辺りは懐事情との相談になるので,各々が望むインターネット環境を手に入れられるように,よく調べたり相談したりするようにしてください.

また,部屋のインターネット接続口を確認してみるのも良いでしょう.

光ファイバーが部屋まできているか,そもそもどうやってインターネットに接続することになるのかを知ることができます.

以下のサイトが参考になると思います. 光コンセントとモジュラージャックの違い

まとめ

ここまで結構難しい単語を使いつつ,オンライン対戦をやる上でなんとなくでも知っておいてほしいことを走り書きしてきました.

以上のことを簡単にまとめると,「高速で高品質なインターネット回線やインターネット接続環境を用いて,物理的に距離の近い相手と通信することで,より快適にオンライン対戦をすることが可能」というようになります.

この記事が,この文章を理解する一助となれば幸いです.

スマブラ公式で有線接続を推奨していたこと,マッチング相手を距離で選んでいることの理由がなんとなくわかったのではないでしょうか?

オンライン対戦に潜る以上,ラグや遅延は仕様として発生するのは認めるべきです.

そして,遠方の相手とやるオンライン対戦に遅延があることは認めておくべきです.

公式でもある程度ゲームに遅延を発生させないように努力をしていますが,個々人の利用するネットワーク環境がオンライン対戦の質を決める要因になっているのはもはや仕方のないことです.

これを踏まえた上で,各自が望む通信環境を,お財布や家族・大家さんと相談しながら手に入れて,楽しくオンライン対戦を行なってください.

ちなみに僕は適当にマンションを決めて,現在自宅周辺のネットワークが混雑する時間帯に質の良い通信ができず,その時間はオンライン対戦ができずにいます. 悲しい思いをしないよう,住居のネットワーク事情はきっちりと確認を取りましょう.

変な時間帯に僕とマッチングしたり,オフ大会の場で会った時は,ぜひ対戦相手になってやってください.

よろしくお願いします.

17日目はたけちいさんがガノンドロフについて語ってくださるみたいです.

そちらの記事もお楽しみに!!

また,スマブラ(その2) Advent Calendar 2019 - Adventarはまだ空き枠があります.

年末にスマブラに関してブログを書く予定がある方はぜひ登録してみてください.

adventar.org