2018/04/29

GW前処理事案 - The Division2に必要なのは

ネットコードをせめて「普通」にすることだ。

 ただし、そんな話は(状況として理解し難いが)全く聞こえてこない。

 せめて誰か「Massiveはネットコードに一切関与させていない」とか、「Massiveはアバターのゲーム制作で忙しいので、実際にはSnowdrop2エンジンにしか関わっていない」とか、「旧作のクリエイティブディレクターはクビにして(大朗報)、ザ・クルー2しかやらせない(大悲報)」ぐらいは言ってくれないだろうか。

 我々には何らかの夢が必要だ。

 ネットコードとは、ゲームのサーバーとクライアント間の通信内容及び通信頻度などを指す。The Divisionのネットコードの酷さ、特に通信頻度の低さはベータ版時代から問題視されており、加えて未だに改善されたとの話が無いと言う事実は壮絶とすら言える。有名どころのFPSでは、早い段階のアップデートにネットコード改善が含まれている事も珍しくない。

 ちょっと実験をやってみた。現在The Divisionでは「ブラックアウト」とか言う何か分からないイベントを実施中で、とにかく通信が安定していない。時間さえ選べば10分と持たずに通信がダウン、二日に1回くらいはサーバーダウン、敵はワープし放題で、時間を選ばなくともインプットラグは十分に体感可能である。そこでインプットラグを色々と測定してみた。

 測定方法はこんな感じだ。
  1. 背後で音楽(♩=120前後)を再生しながらプレイを録画
  2. 操作(銃の発射、スキルの発動など)を音楽(要はドラム音)に合わせて実施
  3. プレイ録画上で、操作した音楽上のタイミング(要はドラム音)と実際の操作への反応で発生した音のタイミングを比較
  4. 比較には、自作の信号処理ソフトを使用 (分解能0.06ミリ秒)
 主要な結果はこんな感じ。
  • アサルトライフル発砲開始:240ミリ秒
  • LMG発砲開始:250ミリ秒
  • 追尾マイン投擲:260ミリ秒
  • 手榴弾投擲:130ミリ秒
  • 前転:120ミリ秒、400ミリ秒内に2回目は実施不可
  • パルス:240ミリ秒
  • ヘッドショットキル時の画面と音とのタイミング差:140ミリ秒
どうも125ミリ秒辺りが肝になっている雰囲気だ。発砲系の処理はサーバーからの返答が必要なので、125×2=250ミリ秒ぐらいとなっているという判断だ。

 ちなみにWorld of Warships、アジアサーバーでのping値は通常40ミリ秒前半、込んでも120ミリ秒は超えない(が、さすがに100ミリ秒を越えるときはやらない)という通信環境である。

 音楽をやっている人なら、125ミリ秒(=1/8秒)というのが途轍もない時間遅れだということは分るだろう。 ♩=120(1分間に1/4分音符が120拍、昨今のダンス曲なら♩~135、速めのD&Bなら♩~176辺り)における125ミリ秒は1/16分音符と同じ長さである。こんな遅れじゃリズムがグダグダとなってしまう。

 とあるFPSにおける通信頻度は25回/秒(25ミリ秒以下のラグ)で、総通信ラグは80ミリ秒未満とされる。つまり通信頻度は未だ「普通の1/3~1/4」ということになる。ping値80(ミリ秒)超ではRainbow Six Siegeのプレイは既にキツいと聞いたこともある。そりゃそうだ、これにサーバー反応などのラグが加われば120ミリ秒級またはそれ以上の体感ラグ発生は避けられない。The Divisionの通常状態のラグは Rainbow Six Siegeがまともにプレイできなくなるラグよりも大きいのである。

 なおSteamDBによれば、最近のRainbow Six Siegeの1日の同時プレイヤー数はThe Divisionのそれのほぼ100倍以上で、The Divisionリリース直後のピーク値と同等となっている。金、技術、対顧客コミュニケーション、マネジメント含め、通信事情に関するThe Divisionの不手際(としか解釈できない状態)は、事前の評判が決して高くはなかったRainbow Six Siegeと比べても目立つ。「口先だけのThe Division、多少ゆっくり目だが改善内容を具体的に宣言した上でそれを着実に実行していくRainbow Six Siege」、などととある知り合いは言う(ブログ主はRainbow Six Siegeはプレイしていない)。

 加えてワープし放題状態での敵の最大移動距離は、キャラ肩幅基準で最大4倍程度という感じである。なので「普通の1/3~1/4」という数字はここでも多少意味が出てくる。そりゃ肩幅の数倍もワープすれば隣の部屋に行っちゃうでしょ。なお、これを超えるようなワープ幅が発生するような状況では、サーバーとの切断が発生してしまうようである。

 ちなみにゲームエンジンのSnowdropについては、「とある開発者が自分の分野の技術内容について疑いようも無い嘘をついている」点を指摘したことこそはあるものの、基本的にベタ褒めしてきた。ポイントは「小せぇことは良いんだよ」張りの「使わない(または使わないことにどっかの段階で判断された)機能のぶった切り」による軽量化である。音声処理、特に爆発音などの処理の実装は如何にも雑そうだし、植生の処理も遅いっつーか流儀が古く見える。要は描画機能の一部を除き、既存のライブラリをそのまま使っているだけのエンジンなのだろう・・・それも見識だ。まぁ車の窓が銃撃でいったんは壊れたりするのは良いとして、所謂「Car door closing simulation(車のドアを閉じるシミュレーション機能)」 は新エンジンであるSnowdrop2には要らないでしょう。

 さて、昨今の「普通のネットコード」には当然対チート性も要求される。ネットコードに関してはRainbow Six Siegeのそれの評判が良いようなのだが・・・

0 件のコメント:

コメントを投稿