クローズドアルファが終了し、8月下旬予定のオープンベータに期待が集まる『Battlefield 1(バトルフィールド 1)』ですが、BFファンならどうしても不安になってしまうローンチ時の安定性。そのローンチの成功の鍵をにぎるであろうネットコードを詳細に検証した動画が公開されました。
今でも記憶に残っているのは訴訟問題にすら発展し、EA自身も「容認出来るものではなかった」ことを認めた『BF4』のローンチですが、数多くの問題の中でも特に問題視されていたのが「ラバーバンド問題」の要因となっていたネットコードでした。
この問題を振り返るのに欠かせないのは、チックレートとアップデートレートの存在です。応答性の良いゲームプレイには欠かせない要素となり、低い数字は「ラバーバンド問題」やラグの原因となります。まずは両者の定義を過去の記事から簡単に振り返ってみましょう。
チックレートとは
チックレートはサーバーかクライアントが1秒間に処理を行う回数で、30Hzの場合はシミュレーションやコマンドの入力を含む処理を1秒間に30回行う形になります。ゲームでよく使われる画面への1秒間の描画回数であるFPS(フレームパーセカンド)と良く似ており、サーバーかクライアントで何回ゲームが更新されるかを表しています。
アップデートレートとは
サーバとクライアントの間でデータの交換が行われる回数を示しており、30Hzの場合はデータの送信が1秒間に30回行われる形となります。
現在までのネットコード
問題視された『BF4』のローンチ時は30Hzのチックレート、10Hzのアップデートレートが使用されていました。その後、改善が重ねられたネットコードでは30Hzのチックレートは変わらないものの、ダメージのみのアップデートレートは30Hzになり、距離によって(ハイフリクエンシーエリア)は全てのアップデートレートが30Hzとなる変更が行われました。その後も、60Hzや144Hzのサーバーの登場や、クライアントからサーバーへのダメージのアップデートレートのみFPSとリンクする試験的な改善なども登場するなど、大きな進化への取り組みが行われていました。
BF1(アルファ版)のネットコード
先日までクローズドアルファの行われていた『BF1』のチックレートですが、DICEのエンジニアであるジュリアン・マノロフ氏の最新のツイートによるとPC版は60Hz、Xbox OneとPS4版は30Hzとなっており、全てのプラットフォームでの60Hzの実現を目情にしているようです。アップデートレートやハイフリクエンシーエリアに関しては現在のところ不明となっていますが、少なくともダメージやハイフリクエンシーエリアでの行動は、チックレートと同様のアップデートレートが適用されているものと予想されます。
@MrProWestie @BFBulletin @iAmAnonymousTom @tiggr_ In the alpha, only on PC the tick rate is 60. On consoles it is 30.
— Julian Manolov (@_jjju_) July 8, 2016
この情報に加えて詳細な分析で定評のあるYouTuber、Battle(non)senseのクリス氏が行ったPC版の調査によると下記の情報が明らかになっています。
タイムラグ
2人のプレイヤーを同じサーバーに接続させ、片方で行った操作がもう片方の画面に反映されるまでのタイムラグを計ったテストの結果が上の画像になります。赤は最も大きかったタイムラグ、青は平均、緑は最も短かったタイムラグをミリ秒で表しています。平均を見てみると『BF1』でのタイムラグは、60Hzどころか30Hzの『BF4』すら上回ってしまう結果になっています。
しかし、ネットコードの最適化やグラフィックカードのドライバの最適化は製造直前に行われるので、まだ最適化されていないクローズドアルファのため正確な判断材料とはならず、まだ悲観べきことではないと言えます。さらに、この結果はあくまで画面に反映されるまでのタイムラグとなるので、30Hzの『BF4』より2倍の頻度でのデータの通信が行われている点は変わらないため、正確なヒット判定やスムーズなゲームプレイは体感できているとのこと。
データの送受信量
次に行われたテストでは60Hzのチックレート、64人のプレイヤーで1時間プレイし続けた時の『BF1』と『BF4』でのサーバーへのデータ送受信量の比較です。上記画像に見られるように『BF1』では受信が99.28MB、送信が38.38MB。『BF4』では受信が107.61MBで、送信が25.38MBとなっています。
『BF1』が『BF4』より送信しているデータ量が多いことが確認できますが、これもまたそこまで悲観する事実ではなく、旧世代機(PS3、Xbox 360)のネットワーク制限がなくなった『BF1』ではより多くの情報をサーバーに送れるようになったと捉えることもできます。
サーバーの性能
サーバーの性能の違いを説明する前に1つだけ理解しなければいけないことがあります。チックレートが60Hzのサーバーは、1秒間に60回の処理を行います。これは16.66ミリ秒(1000ミリ秒 ÷ 60回)に一回の処理を行なうということになります。
サーバーは次の処理が発生する16.66ミリ秒の間に、シミュレーションやコマンド入力の処理を行わなくてはならず、処理がギリギリになってくると当たり判定の遅延などの問題が発生し、処理が間に合わない場合や失敗した場合は「ラバーバンド問題」などの問題が引き起こされます。
それを踏まえた上で60HzのサーバーでネットグラフをONにし、64人のプレイヤーで1時間プレイし続けた時のサーバー処理にかかった時間を見てましょう。赤は最も長かった処理時間、青は平均、緑は最も短かった処理時間を表しています。
左が64人プレイ時の数値となっており、『BF1』のほうが多少ですが処理速度が早いという結果が出ています。最も興味深いのは右の図でプレイヤーが0人の場合の処理時間で、なぜか『BF1』は空のサーバーの時だと『BF4』より処理時間が長くかかっていることになっています。
理由は不明ですが、考えられる理由としてはネットコードの最適化が行われていないのがもっとも有力と言えるでしょう。
『BF1』のローンチに必要なこと
クリス氏は調査結果を報告した後に、『BF1』がより良いローンチ体験をプレイヤーに届けるために必要な項目を挙げています。
- 全てのプラットフォームでデフォルトのチックレートを60Hzにする
- パケットロスの多いプレイヤーはサーバーの性能に影響を与えるので切断する
- 高Pingプレイヤーを減らすためにサーバーの設置箇所を増やす
- コンソール機のプレイヤーがサーバーをホストする場所を選べるようにする
- コンソール機のサーバーでProConのようなサードパーティーのツールを使えるようにする
- 「地域限定」や「高Pingキック」機能をサーバーとサーバーブラウザに内蔵する
- パフォーマンスのインジケーターの表示をOFFに出来ないようにする(UI全てがOFFの場合以外)
- コンソールのサーバーブラウザーでPingを数字で表示する
クローズドアルファ版を見る限りは『BF4』で改善されたネットコードの適用は進んでおり、さらに最適化の余地を残している良い状態にあると言えそうです。デフォルトのチックレートが全てのプラットフォームで60Hzとなるかはまだ気になりますが、少なくとも『BF4』のローンチ時に見られた、思わず笑ってしまうほどのラバーバンド現象の心配はしなくて良さそうです。
すでにDICEは過去の失敗から学び、『SWBF』ではうまく行ったローンチの経験を活かしながら、オープンベータで安定性を確かなものにして万全を期す体制でいることを発表しています。ここは進化を続けるDICEを信じて、オープンベータを心待ちにしたいと思います。
Battlefield 1 Closed Alpha Netcode Analysis
『Battlefield 1(バトルフィールド 1)』の発売日は2016年10月21日で、対象機種はPlayStation 4、Xbox One、PC。
[wpap service="with" type="detail" id="B07G2M88NL" title="EA BEST HITS バトルフィールド 1 Revolution Edition - PS4"][amazonjs asin="B01FSB5CK8" locale="JP" title="バトルフィールド 1 オンラインコード"]
コメント
コメント一覧 (10件)
アジアサーバーが例の会社じゃなければOKよ
High ping kickとPacket loss kickはいいね
糞回線で接続する人は自己勝手で他人のことを全く考えてないからね
最近BF4しながら夕食前にレンジを使っとったとき
わしのpingが、MAXなんかね?999でビビったわ
無線でFPSとか論外だろ
有線でもゴミ回線のやつはいるよw
自分が下手だからって無線のせいにするのは良くないよ^^b
無線で電子レンジは電波干渉するからNG、というか無線でFPSはあかん。FPSでは有線を使うというのは暗黙のルールよ
なので基本ping20以内で収まる日本鯖でプレイしておる。
高Pingキックなんか実装しないで(切実)
自分、頭悪くて申し訳ないんだが、高pingキックってことは、海外の人たちとマッチングしにくくなるのかい?
WestUS程度ならマッチングするんじゃないかな