YONのドバトブログ

YONの土鳩ブログ

ゲーム好きの鳩"YON"がツイッターでは言い切れないことについて書き連ねるブログ

スプラトゥーン2のオンライン環境は前作より悪化している  AN IN-DEPTH LOOK AT ONLINE MULTIPLAYER IN SPLATOON 2 日本語要約

スプラトゥーン2を買ってから主に鮭、時々ガチマで楽しんでいる私だが、先日Twitterにてこのようなツイートを発見し、詳細を調べる内に引用元の記事を発見した。こちらはスプラトゥーン2のオンライン対戦の仕様と、それを理解するための前提知識を非常に詳しく解説した有用な記事である。この記事では、その記事を要約した日本語訳を記載する。

http://archive.today/Rgbht (魚拓版)

こちらの記事はCreative Commons Attribution 4.0 International Licenseに則って書かれており、この翻訳記事もこれに従う。

前述のクリエイティブコモンズライセンスに従い、改変を加えた点を示す。原文の翻訳、要約に際し、改変を加えた点は以下の通りである。

  • 一部を除き、箇条書きによる要約を行っている。また中略や原文から記載箇所を変えた記述(後述)、厳密な和訳よりも短い表現に翻訳した箇所、及び複数の文を1つにまとめて短縮した箇所がある。中略と補足は目立たせるために緑字で表記した *1
  • 原文の"tick rate"の項で説明している事項の一部を"update rate"の項に移し、一部の表現を改めた。大意に影響はない *2
  • 可読性を高めるため、太字を追加した箇所がある
  • 適宜、注釈にて訳注を付す
  • あくまで私個人による翻訳であるため、誤訳等があっても一切の責任は負わない(しかし指摘は欲しい)

 

(日本語要約はじめ)

スプラトゥーン2オンライン対戦の詳細調査

著者 Octobyte | 2017年7月31日  訳・要約 YON

ライセンス : Creative Commons Attribution 4.0 International License

スプラトゥーン2は2017年7月にnintendo switchでリリースされた。新しいタイトルに群がるゲーム競技界隈にとって、スプラトゥーン2は我々が欲していた延命剤になるはずだった。 (中略) Smash ‘N’ Splash *3 以降、私はスプラトゥーンをプレイする意欲が失せてしまった。率直に言って、WiiUのオンライン対戦の酷い体験にうんざりしてしまっていたのだ。

私は、スプラトゥーンに戻ってきたプレイヤー達に悪いニュースを伝えるのではないかと心配している。しかし、スプラトゥーン2に対しあまりにも辛辣すぎると私を非難する前に、私が悪いニュースを伝えようとしているのは善意によるものだと伝えておきたい。何千時間もスプラトゥーンに費やしてきたプレイヤー達と同じくらい、私はこのシリーズに情熱を持っている。辛辣にはなるが、それは私がこの界隈の他の人間と同じくらい、スプラトゥーン2の成功に関心を持っているからだ。(中略)

 

始めに知っておくべきこと

まず最初に、いくつかの概念を説明したい。ゲームのオンラインの体験がどのように作られるか知らない人は、この節全体を時間をかけて読んでほしい。もしかすると、この記事の理解に影響するような誤解があるかもしれないからだ。今持っている考えや意見は忘れること、これが重要な点だ *4

ping 
  • ping (ピン、ピング) とは、通信相手に信号を送信してから返事の信号を受信するまでの時間差であり、Round Trip Time (RTT)としても知られる。原理的には潜水艦のソナーと同じ *5
  • pingは、プレイヤー間の距離が近いほど、またプレイヤー間の通信環境が良好なほど小さくなる。逆に、プレイヤー間の距離が遠いほど、またプレイヤー間の通信環境が悪いほどpingは大きくなる *6
  • スプラトゥーンで言えば、日本人プレイヤーがヨーロッパ人や北米人のプレイヤーに比べ遥かに悪質なラグを持つ理由がこれだ *7
  • 高いpingのプレイヤーはあまりにも遅れてダメージを受けるため、低いpingのプレイヤーに不快な体験を与え得る(死体から弾を出すなど) *8

f:id:YON_4:20170808034640g:plain

 

アップデートレート(更新頻度)
  • アップデートレートとは、1秒あたりの更新回数である。単位はHz *9
  • 1秒あたりにより頻繁に更新情報を送受信することで、プレイヤー達に対し、リアルタイムで正確な情報を与えることができる

("tick rate"の項から移動した記述はじめ)

  • 更新の頻度が低い場合、次回の更新で情報がまとめて送られることになり、壁裏にいるのに倒されたり異常に短いキルタイムで倒されたりする事態が発生する
  • 入力機器が非常に多くの処理を実行する場合、更新データの送信に遅れが生じ、接続の切断や大きな遅延に繋がる。スプラトゥーン1における例を挙げると、同時に大量のチェイスボムラッシュを発動した場合、あまりにも多くの処理を実行するせいで通信が切断される *10
  • アップデートレートは、開発者による実装がどの程度最適化されているか、また入力機器のスペックがどの程度良いかによって決まる
  • アップデートレートの制約からゲームが超過する場合、あらゆる種類の異常な事態が引き起こされることになる。崖の同期ズレ、プレイヤーのテレポート、ヤグラの瞬間移動、ラグアーマーなど

("tick rate"の項から移動した記述終わり)

▽本当は上下の丸の速度が同じでないとおかしいので、やや不適切な図である(指摘して頂いたシュート氏に感謝)f:id:YON_4:20170808042125g:plain

 

チックレート(サーバーの更新頻度)
  • チックレートとは、1秒あたりのサーバーの更新回数である。単位はHz *11

 

オンライン対戦のネットワーク処理

ゲーム開発者は自分達のタイトルにオンライン対戦を導入するにあたって、制限なく選択肢を持っている。最も重要なのはゲームに合ったシステムを選ぶことだ。

専用サーバー
  • ゲーム開発者が自分達で管理する専用サーバーを立てる方法

メリット

  • ゲームサーバーは強力なハードウェア上で動き、サーバーが使用できる通信量は非常に大きくなる(1000mbps超) *12
  • 常に運営の管理システムを導入できるため、チーターへの対策をしやすい
  • クライアントの接続先の数が少なくなるため、クライアントが使用する帯域幅を狭く抑えられる(携帯デバイスにとって都合が良い) *13
  • IPアドレスが他のプレイヤーに晒されない

デメリット

  • コストが高くなる。特に、プレイヤーのpingを小さくするために各地域に専用サーバーを点在させれば、その分コストが大きくなる。各地域のプレイヤーに自前で専用サーバーを用意させたり、オンライン対戦を寄付金ベースのサービスにすることで費用を緩和できる

 

クライアントホスト *14
  • 全てのプレイヤーから選ばれた1人がホストとなり、サーバー役を担う方法
  • 初期CoDのオンライン対戦はこの方法を使用していたが、現在は専用サーバーのpingが高すぎる場合のみ使用している

メリット

  • 専用サーバーを用意しなくてよいので、コストを抑えられる。ただし対戦用サーバーは不要だがマッチング用のサーバーは必要

デメリット

  • ホストプレイヤーが有利になる。ホストプレイヤー自身がサーバーとなるため、サーバーとの通信ラグが0となり、他のプレイヤーがホストの行動を知るよりも早く、ホストは他のプレイヤーの行動を知ることができる
  • ホストの通信環境が悪いと更新に支障が生じる。プロバイダの通信速度が遅かったり、Wi-Fi利用者だったり、質の悪いルータを使用するプレイヤーがホストの場合、遅延やパケットロスが発生する
  • 部屋内の全プレイヤーのIPアドレスがホストプレイヤーにバレる
  • チートに弱い。チーターがホストになった場合の対処が難しい
  • ホストが抜けるとホスト移行のために試合が中断される

 

ピア・トゥ・ピア (P2P)
  • プレイヤー同士が他の全てのプレイヤーに対し互いに通信を行う方法
  • スプラトゥーン1が利用していた通信方式
  • 1人のプレイヤーがホストとなるが、クライアントホストとは違い、ホストはゲームのコアな機能だけを扱う。たとえばスプラトゥーン1では、ホストはヤグラの制御やガチホコの所有者と位置の確認を担当していた

メリット

  • 「ある程度は」有利不利がない *15
  • 専用サーバーを用意しなくてよいので、コストを抑えられる(マッチング用のサーバーは必要)

デメリット

  • 他のプレイヤー達が誰に対しても同一のpingを有するかどうか確認できない。スプラトゥーン1では各プレイヤーの自分に対する回線環境が示されなかったので大きな問題になった
  • チートに非常に弱い。クライアントホストと違い、全てのプレイヤーが改造版でプレイできる。スプラトゥーン1のチート対策はマッチングサーバーからのチェックだけだったので、簡単にチーターが潜り込めた *16
  • switchではスペック改善により緩和が期待されるものの、家庭用ネットに接続しているプレイヤーにホストをさせるという欠点は変わらない
  • 専用サーバーがある場合に比べ、全員が他のプレイヤー全員と通信をするので通信量が大幅に増える(スプラトゥーン2の場合、観戦者2人を含めると9回同じ情報を送信することになる)。しかもほとんどの情報は無駄なので極めて効率が悪く、P2Pはオンラインマルチ対戦には向いていない

 

スプラトゥーン2のアップデートレート

  • スプラトゥーン2もP2P通信方式を利用していることが判明
  • せめてP2Pをローカル対戦だけに留めるべき。専用サーバーを利用した通信よりも7,8倍もトラフィック負荷が大きい

▽クライアントアップデートレート(青、単位Hz)とサーバーアップデートレート(赤、単位Hz)。スプラトゥーン1,2はP2P通信であり、特定の対戦サーバーが存在しないためサーバーアップデートレート(チックレート)が存在しない *17

f:id:YON_4:20171231051948p:plain

  • スプラトゥーン2のアップデートレートは15.75Hzスプラトゥーン1(26.17Hz)に比べ30%も更新頻度が落ちており、8年前に発売されたマイクラより低い
  • スプラトゥーン2は、競技性の高いe-sportsゲームになるために必要なシステムを有していない
  • スプラトゥーン2には専用サーバーが必要

  • さらに悪いことに、2018年から任天堂はオンライン有料化を予定している
  • プレイヤー同士で通信するP2Pへの課金は是認できない。万が一マッチングサーバーのコストだとしても、相当な利益が上がるはず
  • 任天堂がオンライン有料化をするなら、高いチックレートを有する専用サーバーを用意すべき

 

データ通信量

  • ゲーム側の最適化により、前作より送受信する通信量を下げた」と言う野上氏へのインタビューを検証した
  • 最終的に25Hz換算でスプラトゥーン1の送受信データは146kbps、スプラトゥーン2は132kbpsとなり、同環境下では9.5%しか通信量を削減していないことが判明
  • ただし、スプラトゥーン2のアップデートレートは16Hzであるため、実際に送受信するデータ量は80kbpsである

 

実遅延時間

  • 解析により判明した調査者のping(74ms)に、更新間隔を加えることで、実際の遅延を概算できる
  • スプラトゥーン1の平均実遅延時間は113ms、スプラトゥーン2の平均実遅延時間は137msとなり、24ms悪化していた *18

 

専用サーバーについて

  • 専用サーバーの導入により、どの程度ゲームが改善されるのか解説する
専用サーバー導入により期待されるパフォーマンス改善
  • スプラトゥーン1, 2ではマッチングサーバーにAmazon Web Services(AWS)を用いている
  • ゲームで使用した回線を用いて、ロンドンのAWSと接続して平均pingを計算したところ40msとなった。これを任天堂が専用サーバーを導入した場合のpingと仮定する
  • スプラトゥーン1の専用サーバー導入後実遅延時間は78ms、スプラトゥーン2の専用サーバー導入後実遅延時間は103msと予想される *19
アップデートレートとチックレートの増加
  • 専用サーバーの導入により、アップデートレートが16Hzから60Hz(BF1と同じ)に改善されたとする
  • このとき、スプラトゥーン2の専用サーバー導入後実遅延時間は57msと予想され、現状に比べ45%の高速化が見込まれる *20 *21

 

まとめ

スプラトゥーン2のオンラインは、相当多くの点において前作に比べ大きく劣っているスプラトゥーン2はスプラトゥーン1に比べ30%も更新が遅く、ゲームの仕様はダメージが高くキルタイムが短い武器を不当に優遇している。さらに、後で全く無意味であると証明された大胆な主張のせいで、プレイヤー達はこのゲームに引き込まれてしまった。*22 オンラインマルチ対戦の良好な通信環境は、人々を競技レベルでプレイする気にさせるために、以前よりもずっと重要となっている。もし任天堂がスプラトゥーン2を競技性のあるタイトルにすると固く決心しているなら、2018年に専用サーバーを使えるようにすることに、努力の焦点を定めるべきである。専用サーバー導入により、セキュリティとチーター対策も増強されるだろう。オンラインにおけるチートは前作で大変大きな問題となったため、専用サーバーは任天堂に大きな恩恵を施すだろう。

この新しいゲームのコンテンツは生まれ変わっている。通信環境を改善することで、このゲームは真に熱中できる物に変わるだろう。それまでは、私は気楽に遊ぶことにする。サーモンランだ、さあ行こう。

 

データリスト

もし生データを閲覧したいなら、Googleシート上にアップロードしてある。

[スプラトゥーン1 | スプラトゥーン2]

 

謝辞


(日本語要約終わり)

 

全体要約

  • スプラトゥーン2は、オンラインマルチゲームに明らかに不向きであるP2P通信方式を前作から引き続き採用している
  • スプラトゥーン2のクライアントアップデートレートはたったの15.75Hzであり、前作に比べ30%も更新頻度が落ちている
  • スプラトゥーン2の平均実遅延時間は137msであり、前作に比べ24ms悪化している
  • スプラトゥーン2をe-sportsゲームにするためには、専用サーバーの設置が必要不可欠である

個人的な意見

スプラトゥーン2は前作よりもオンライン環境が悪化しているというショッキングな内容であり、前提知識に至るまで丁寧に解説されている。switch最大の利点はオフ対戦がしやすいことであるが、switchはオフ対戦でもラグが発生する事例が存在し、*23 スプラトゥーン2は通常8人で対戦を行うため、スマブラよりもオフ会やオフ大会の開催難易度は高い。Octobyte氏が述べるように、オンライン環境の充実がスプラトゥーン2のe-sports化において重要であり、早急な設備の拡充が求められる。

f:id:YON_4:20170810221710j:plain

 

*1:なぜ要約版にしたかというと、原文が非常に長いからだ。丁寧に説明するために比喩や反復も多く取り入れており、まともに全文訳すると記事の作成にも読解にも非常に時間がかかるため、やむを得ず要約とした

*2:原文は"tick rate"を「サーバーの」更新頻度とせず、クライアント側の更新に対しても使用している。しかし、本記事ではこのページこのページこのページを参考に、チックレートという用語をサーバーの更新にのみ使用する

*3:Gamers HQ主催の海外スプラトゥーン大会

*4:原文にこんなことを書いていながら"tick rate"の項に大幅な変更を加えてしまった点を詫びようか迷っている

*5:ここの「信号」は"ICMP Echo Request"を指す。ICMPはInternet Control Message Protocolの略。要は「この信号を受信したら即座に返信を送ってくれ」という信号。詳細はこのページを参照

*6:つまりpingは通信相手毎に定まる数値であり、絶対的に決まる数値ではないことに注意しよう。pingを測定するサイトも必ず通信相手となるサーバーの指定があるはずだ

*7:要は米国プレイヤーにとって、地理的に離れた日本プレイヤーは大変ラグいということだ。逆もそうであるように

*8:ちなみに日本国内で自分のpingを近場のサーバーから測定できるサイトとしては、たとえばSpeedtest by Ookla - The Global Broadband Speed Test がある。switchとPCが同環境の場合は、PCから測定して大体20ping以内なら問題はない。PCで測る場合とswitchで測る場合には大きな差があるため、switchから直接pingを測れるようなサイトを知っていたら教えてほしい

*9:言葉の定義が原文にないのでこちらで付け加えた。オンラインゲーム内で行った全ての入力は、逐一相手に伝えられるのではなく、一定時間毎にまとめて送信される。1秒あたり何回情報を送信するかを示すのがアップデートレートである

*10:ちなみに似たようなバグは他にもある。大量のビーコンをメガホンで同時に破壊すると、メガホンを撃ったプレイヤーの通信が切断される

*11:原文には定義がない。こちらで付け加えた

*12:bpsはbit per secondの略で、1秒間でやりとりする情報量を示す。一般的な家庭の高速ネット回線の「理論値」が1000mbpsであることを考えると、速い通信速度を実現していると言える

*13:帯域幅とは周波数の範囲のこと。帯域幅が広い方が高速で通信できる(ブロードバンド)。通信に使用できる帯域幅は限られており、一般に携帯デバイスは利用可能な帯域幅が狭い

*14:良い訳が思いつかなかったので代案や一般的な用語がある場合は教えてほしい

*15:後述の通り「誰が誰に対して有利であるのか分からない」という意味。はっきり言って大して公平ではない

*16:スプラトゥーン1末期のガチマッチの惨状を考えるとまあ納得である

*17:よって、冒頭で取り上げたこのツイートのように、スプラトゥーンに対して「チックレート」という用語を使うのは誤りである。アップデートレートを使おう

*18:計算式は74ms+1000ms/26.17 ≒ 113ms, 74ms+1000ms/15.75 ≒ 137ms。2のアップデートレートの方が低いので当然2の方が遅延が大きい

*19:計算式は40ms + 1000ms/26.17 ≒ 78ms, 40ms + 1000ms/15.75 ≒ 103ms

*20:計算式は40ms + 1000ms/60 ≒ 57ms

*21:この計算には疑問が残る。仮にサーバーのチックレートが60Hzになったとしても、クライアント側のアップデートレートが60Hzにならなければここまで改善されない。switchにそれほどのスペックがあるのかは不明である

*22:「大胆な主張」はイカ2のオンライン環境に対する野上氏の発言を指している

*23:たとえばここここここ