ゲームをオンラインで遊ぶときにラグいのは皆さん嫌ですよね?今回は「ラグを解消・軽減させるための方法」と「そのために購入した商品の紹介」をしようと思います。
NintendoSwitchのオンラインプレイを想定して書いています。
①~③まではラグの原因などについて解説していますが長いので飛ばして、④「機材を整えよう」のところから読んで頂いてOKです。
2つの通信方式
まず「オンライン中はどういう方法で通信が行われているのか」を知っておきましょう。
家庭用ゲームのオンラインで行う対戦プレイや協力プレイのほとんどはP2Pで通信を行っています。P2PとはPeer to Peer(ピア・ツー・ピア)の略です。
簡単に説明すると通信相手と直接繋がっている状態です。
P2Pの対になるのがクライントサーバー方式の通信です。PCのオンラインRPGやスマホのゲームはこちらのタイプが多いです。相手とは直接繋がずにお互いがサーバーへ通信を行い、サーバーが処理した内容を互いに受け取っています。
P2Pで直接繋がっているならSwitchもオンラインサーバーとか要らないんじゃない?
対戦中はP2Pですが、対戦相手を見つけて互いをP2Pで繋げられるようにしてあげるマッチングは専用のマッチングサーバーが行っています。
ゲームによってはP2Pで接続中もマッチングサーバーが一定間隔で互いのゲーム内容を確認したりしています。チートや同期ズレの対策ですね。
ラグが起こる原因
ラグには2種類あります。
- 見た目通りの処理が行われないラグ(同期ズレ)
- ゲーム処理が一時停止されてゲームが止まるタイプのラグ
1つ目はスプラトゥーンなどで経験したことがあるのではないでしょうか?こちらの攻撃がヒットしているのにも関わらず相手が倒れず自分がやられるなど。
2つ目はスマブラなどで経験したことがあるのではないでしょうか?何度も一時停止したり動作がめちゃくちゃ遅くなったりするなど。(スマブラSPも同期型の通信だと明言されました。)
どちらも原因は同期ズレとその対策にあります。
同期ズレが起こる原因はオンラインプレイ中に行っている「通信とゲーム処理の流れ」を知ると分かります。
オンラインプレイ中に行っている通信内容は、
「プレイヤーの操作入力」と「変化したゲーム内情報」だけで、動画や音楽を送っているわけではなく通信データ量はごくごくわずかなものです。数百文字程度のデータ量しかありません。
例えば格闘ゲームで通信相手からパンチボタンの入力が送られてきたら、その入力データを元にゲーム内で処理して画面に反映するといった感じです。
このとき例えばパンチボタンの入力データを相手に送るのに10秒かかったとします。
すると互いのゲーム画面はどうなるでしょう?
パターン1:お互いにゲーム画面は止まらずに相手の動きだけが止まった状態でボコボコにできる。
パターン2:お互いのゲーム画面が止まり10秒後にパンチが出る。
どっちだと思いますか?
どちらになるかというとそれはゲームによって異なります。
上でラグには2種類あると言ったものの正体がパターン1とパターン2です。
パターン1が同期ズレです。通信が遅いとゲームの処理に間に合わずお互いのゲーム画面が一致しなくなります。これにより相手に攻撃を当てているのに倒れなかったりします。
パターン2が同期ズレ対策の結果起こるラグです。常にお互いのゲーム画面を一致させるために入力データをやり取りした後にゲームを処理するようになっています。なので通信が遅いとそれだけゲーム処理が待たされます。
- ゲームがなめらかに動くけど同期ズレが起こる。
- 同期ズレが起こらないけどゲームがカクカクする。
ゲームによってプレイしやすい方法が採用されています。どちらのラグも原因は通信速度にあります。
通信速度はどのぐらい必要なのか
まず実際にどのくらいの速度が出るのか計ってみるとこんな感じになります。
グーグルで「スピードテスト」または「speedtest」と検索すると速度測定ができるボタンが出てきます。他にも調べ方があるのであとで紹介します。
画像では下り上り90Mbps以上の速度が出ています。90Mbpsは1秒間に90メガビットのデータをやり取りできるということです。MB(メガバイト)に直すと11.25MBです。
先ほど説明した通りゲームのオンラインではごくごくわずかなデータ量しか扱いません。
皆さん普段から何MB(メガバイト)だの何GB(ギガバイト)という文字を見ることがあると思います。動画や音楽や写真などのデータではそれぐらいの単位のデータが扱われていますが、ゲームの通信ではもっと低い単位のKB(キロバイト)やB(バイト)程度のデータしか扱いません。
動画や音楽の1/1000、あるいはもっと少ないデータです。
データ量が少ないのになんでラグが起こるの
それは速度が重要だからです。一度に送れる量ではありません。
先ほどの速度テストの画像で本当に見るべきところは青色で囲ったレイテンシの方です。
ダウンロードとアップロードが1秒間に送れるデータ量なら、レイテンシはデータのやり取りの「応答速度」です。データ量は1Mbpsでも十分ですがレイテンシは限りなく小さくするべきです。
レイテンシの目安
まずms(ミリ秒)という単位ですが、1ミリ秒は1/1000秒です。
16ミリ秒ってやばくね?そんな一瞬で遠くの人と通信してるのかよ
通信は光ですよ!「一秒で地球を7週半」は伊達じゃない。
ゲームをやっていると60fpsや30fpsというワードを聞いたことがあると思います。あれは1秒間のコマ数のことです。60fpsなら1秒間に60コマで画面を描画しています。
つまりゲーム内では1秒間に60回画面を書き出せるように処理をしています。
1/60=0.016なので、1回の処理には0.016秒しか時間がありません。
0.016秒は16ミリ秒なのでレイテンシが16ミリ秒だとオーバーしています。
でも実際はレイテンシ16というのはそこまで酷い数値ではなく同期ズレ対策をしているゲームでも止まらずになめからに遊べます。
その理由は2つあります。1つはゲーム側がそう感じにくくする仕組みを取り入れているからです。もう1つの方が重要で人間側が16ミリ秒の差を感じ取れないからです。
16ミリ秒は格闘ゲームでよく使われる1F(フレーム)なので、
何フレームまでなら差を感じ取れないか?で考えるとレイテンシの目安になります。
- 1F=16ms
- 2F=32ms
- 3F=48ms
- 4F=64ms
- 5F=80ms
5Fまで書いてみましたが80msは結構酷い数値です。人間はゲーム画面を見てから80ミリ秒で反応するなんてことは不可能ですが、自分で入力してからゲームに反映されるのを見る場合はそうではありません。入力から80ミリ後に反映されると違和感を覚えます。
そしてこのレイテンシは通信状況により変動するので、慣れているコマンド入力でも思ったように操作できないといったことが起こります。
レイテンシは小さくすること!そして数値を安定させることが大切です!
レイテンシを小さく安定させるために機材を整えよう
ここからが本題ですね。ラグの原因を知っていても自分で改善するためにできることは少ないです。
ラグを減らすために
- レイテンシ/pingの値を小さくすること
- その値を安定させること
を目標に機材を購入して環境を整えていきます。
Pingというワードが出てきましたがレイテンシと同じと考えてください。速度を計測するツールやサイトなどによりその意味が違ったりしますが、今回は同じものとします。
今回購入したもの
- 無線LANルーター
- LANケーブル
- 有線LANアダプタ
各商品の詳細は最後に書いておきます。
速度測定サイト
各サイトの使い方など
Google:グーグルでスピードテストと検索すると「速度テストを実行」というボタンが出てくるので押すと計れる。レイテンシが表示されない場合もある。
speedtest.net:Goを押すと測定できる。レイテンシの代わりにpingが表示される。テストサーバーを変更できる。
fast.com:ページを開くとすぐに測定が始まる。アップロード速度とレイテンシを表示するには「詳細を表示」を押す。
Sourceforge:TESTNOWを押すと測定が始まる。LATENCY / PINGの項目の下に小さく表示されているJitterがレイテンシ(ping)のバラつきを数値化したもの。
機材変更前と変更後の速度比較
変更前の環境
- 無線LANルーター:有線ポートが100BASEで最大100Mbspまで。
- LANケーブル:カテゴリー5eで最大1000Mbpsに対応していました。
- 有線LANアダプタ:任天堂純正のWii用LANアダプタをSwitchで利用していました。
契約している回線は1000Mbpsのギガビットに対応していますが、まず無線LANルーターのせいで最大100Mbpsまで絞られていました。
Switchで有線接続を行うときには任天堂純正の有線LANアダプタを使っていました。こちらも規格が100BASE-TXなので最大100Mbpsまで絞られます。
LANケーブルはギガビットに対応していましたがより良いものに変更しました。
上で解説したようにデータ量は100Mbpsでも1Mbpsでも問題ありません。なので新しく機材を購入しなくてもゲームのオンラインには影響がないのでは?とも思えますが、重要なのはレイテンシとpingです。
機材を良いものに変更することでレイテンシとpingも改善されるのか?
というのが今回のポイントになります。
計測結果(変更前)
機材変更前
計測サイト | ping | 下り | 上り |
---|---|---|---|
21 | 94.3 | 93.6 | |
speedtest.net | 16 | 94.62 | 95.58 |
fast.com | U9L11 | 80 | 68 |
sourceforge | 16 | 91.9 | 78.6 |
fast.comのレイテンシが低いですが他は16~21でした。計測は時間帯を変更して5回行った結果の平均値です。Jitterは0-3で安定していました。
PCの有線ポートをWii用LANアダプタに変更した場合
計測サイト | ping | 下り | 上り |
---|---|---|---|
24 | 45.9 | 55.9 | |
speedtest.net | 21 | 95.36 | 95.57 |
fast.com | U9L11 | 56 | 58 |
sourceforge | 16 | 85.9 | 78.9 |
PC内蔵LANポートではなくUSB接続したWii用のLANで測定してみました。大きな変化があったりなかったりバラバラです。Jitterは変わらず0-3で安定していました。
PCに無線アダプタを付けて測定
計測サイト | ping | 下り | 上り |
---|---|---|---|
speedtest.net | 81 | 51.20 | 50.79 |
41 | 46.9 | 44 | |
fast.com | U12L48 | 40 | 30 |
sourceforge | 94 | 33.2 | 16.0 |
デスクトップPCなので無線で繋ぐことはほとんどありませんがやはり無線は酷い結果になりました・・・。接続は11gの2.4GHz帯で行いました。11gは最大54Mbpsです。
Jitterも30~40とバラつきが大きいです。
スイッチ本体の接続テストの結果(有線100BASE)
レイテンシとpingは分かりませんが下り50Mbps、上り30Mbpsぐらいになりました。
計測結果(変更後)
変更後の環境
- 無線LANルーター:有線ポートが1000BASEで最大1000Mbspまで。
- LANケーブル:カテゴリー6で最大1000Mbpsに対応。
- 有線LANアダプタ:1000BASEで最大1000Mbpsに対応、USB3.0。
契約している回線の上限の1000Mbpsまで出せるように全て1000BASEで統一しました。データ量だけでなくレイテンシやpingも改善されるのか?結果を見ていきましょう。
機材変更後
計測サイト | ping | 下り | 上り |
---|---|---|---|
10 | 453.7 | 221.7 | |
speedtest.net | 9 | 739.55 | 662.68 |
fast.com | U9L11 | 210 | 450 |
sourceforge | 13 | 297 | 416 |
無線LANルーターとケーブルを変更しました。回線の上限である1000Mbpsまでは届きませんでしたがspeed.netで下りが700Mbps以上になりました。その他のサイトで速度があまり出ていないのはサーバー側の問題でしょう。
pingも7~11ほど下がりました!fast.comでは全く変化がありませんでした。Jitterは0-1になりました。
PCの有線ポートを1000BASEのLANアダプタに変更した場合
計測サイト | ping | 下り | 上り |
---|---|---|---|
11 | 218.7 | 209.4 | |
speedtest.net | 11 | 633.52 | 398.77 |
fast.com | U9L11 | 230 | 250 |
sourceforge | 14 | 420 | 170 |
こちらも全て1000BASEで内蔵のLANポートとほとんど差がありませんね。USB3.0で接続していることを除けばスイッチもこのぐらいの速度が出てもおかしくはないです。
PCに無線アダプタを付けて測定
計測サイト | ping | 下り | 上り |
---|---|---|---|
31 | 81.7 | 51.8 | |
speedtest.net | 41 | 90.11 | 51.7 |
fast.com | U16L11 | 49 | 54 |
sourceforge | 35 | 44 | 24.3 |
接続は11acの5.0GHz帯で最大867Mbpsと書いてありましたが実際は100Mbpsも出ませんでした。やはり無線なので最高値には程遠いですね。
pingはルーターと接続方法を変更したことで30~40ほど下がりました!
Jitterは30~40ほどだったのが20前後まで下がりました。それでもやはり対戦ゲームを快適に遊ぶには厳しいと感じました。
スイッチ本体の接続テストの結果
ギガビット対応の有線LANアダプタで測定
純正の100BASEから1000BASEの有線LANアダプタを変更したことで下りが150Mbps、上りが30Mbpsほどになりました。pingは分かりませんが良くなっているはずです!
11acの5.0GHz帯で接続
11acで接続しても速度が出ませんね。普段はスマホでしか無線を利用しないので具体的な数値は気にしていませんでしたが、置き場所が決まっているゲーム機に合わせて配置を調整しようかな?と思いました。
結果をまとめると
ルーター、LANケーブル、有線アダプタを全て1000BASEにすることでレイテンシとpingも改善されました。元の数値が悪くなかったのでその幅は小さかったですが元の数値が悪いほど改善効果も大きいと思います。
あと感じたことはやはり、有線接続と無線接続ではレイテンシとpingに非常に大きな差があるので有線でプレイするのがオススメ!ということですね。
今回購入した商品の紹介・レビュー
無線LANルーター:NEC Aterm WG1200HS2 PA-WG1200HS2
元の無線LANルーターもNECの製品で特に不便はなかったので今回もNECのルーターにしました。好きなメーカーのものを買うと良いと思います。価格は4500円ほどでした。
この製品を選んだ理由
- 1000BASEの有線ポートが3つ以上あること
- 11acに対応していること
- MUーMIMOに対応していること
有線ポートは全て1000BASEに対応しているものが良いです。1ポートしか対応していない物もあるので購入前に確認しましょう。
MU-MIMOは無線を複数の端末で使うときに速度低下を防ぐ仕組みです。
セットアップはとても簡単でモデムとルーターの電源をオフオンしてLANを繋ぐだけです。あとは全てルーターとPC側が自動でやってくれます。テレビでゲームをできる人なら問題なくセットできるでしょう。
LANケーブル:サンワサプライ SANWA SUPPLY LA-FL6-05BK
この商品を選んだ理由
- カテゴリ6に対応していること
- フラットケーブルであること
LANケーブルにも規格があり古いものだと1000BASEに対応していないものもあります。カテゴリ6が安価で1000BASEにも対応しているのでオススメです。ルーターやLANアダプタを購入するついでにLANケーブルも買い換えると良いかも?
こちらの商品はフラットケーブルで柔らかいタイプなので非常に扱いやすいです。
有線LANアダプタ:エレコム ELECOM EDC-GUA3-B
この商品を選んだ理由
- 1000BASEに対応していること
- USB3.0に対応していること
任天堂純正のものは100BASEで最大100Mbpsです。こちらは最大1000Mbpsです。
ドックに標準でLANポートを付けてほしかったですね。こちらは1500円ほどしますが無線と有線では大きな差があるので快適に遊ぶならやはり有線がオススメです。
USB3.0についてですが、Switchは将来的にサポートするようですが現時点ではUSB2.0で動作しているようです(USB3.0には下位互換があるので動作に問題はありません)
全て1000BASE対応のものにすることでここまで速度が上がりました。
急に通信速度が下がった、100Mbpsに制限された
追記 2021-06-14
記事を書いてから2年以上経ちますが最近、急に速度が落ちる現象があったので解決までの流れをメモとして書いておきます。
- 半年前にPCを新調、マザボからドライバまで一新、その際に速度を測ったところ問題なく1Gbps(1000BASE)基準の速度を確認
- 半年後(追記時)に速度が出ていないことに気づき計測すると100Mbpsに制限される現象を確認
ボルトネックを探すために基本的なことを確認。
- ルーターのポート挿し間違いを確認
- LANケーブルの規格を確認(1000BASE)
- ドライバの設定を確認
ドライバの設定は使用しているアダプタのプロパティ>詳細設定>速度とデュプレックスを確認します。デフォルトでは自動ネゴシエーションになっているかと思います。
(自動でも問題ありません。100Mbpsになっていたら上げましょう。)
- 全て確認したのに直らなかったのでルーターの設定も確認
- それでも直らなかったのでルーターのファームウェアの更新を確認
FW更新が出ていたので更新すると直りました。
こういう記事ありがたいです
参考になりました