apex legends サーバー
仮定の話として、あなたのPing、あるいはレイテンシーの平均が50msだとしましょう。Pingが測定しているのは、お使いの機器とサーバー間を往復する速度だということを覚えておいてください。レイテンシーの変動やハードウェアのラグ(例:ディスプレイには20~50msの遅延があります)といったその他の問題がないと仮定した場合、あなたがボタンを押すか、あるいはマウスを動かすと、サーバーは25ms(Pingの半分)後に入力を受け取ります。
3月下旬より意図的にサーバーをダウンさせる「鯖落ちグリッチ」が横行しています。
Multiplay は、配信開始時における Apex Legends ゲーム サーバーの 95 % を Google Cloud Platform で運用し、残り 5 % をオンプレミスで運用することにしました。コンピューティング サービスの中核となるのは、Google Cloud のグローバル ネットワーク上で仮想マシンを提供する IaaS の Google Compute Engine です。プレーヤーの急増に応じてリソースを容易に増強できることは多くのゲームにとって重要な要件であり、配信開始後 1 時間で 800 万ダウンロードを記録した Apex Legends にも当然あてはまりますが、これを Compute Engine は可能にします。さらに、Compute Engine の仮想マシンはプレーヤーの需要に合わせてすぐに終了できるため、必要のないゲーム サーバーを減らしコストを最適化できます。
オレゴンは、以下の4つのサーバーが対象。
サーバーには映像が表示されないので、サーバーパフォーマンスの話をする場合にはfps(一秒あたりのフレーム数)について言及することはありません。代わりに、サーバーは「状態」を計算しますが、基本的な原理は同じです。ユーザーからの入力を(ネットワークから)受け取って、物理挙動を計算し、新しいワールドステートをクライアントに送り出したら、その後は同じことを繰り返します。このプロセスに50ms以上かかる状況が続くと、サーバーがシミュレーションを完了できるように、ゲームは速度を下げます。こうして、サーバーがスローモーションになるというわけです。
これは、とある「エーペックス」のプロプレイヤーのネットワーク経路(レイテンシーを表示しています)です。彼のインターネットモデムから、私たちのサーバーへと到達しています。インターネット接続の本当の状態を判断するため、私たちは何度も調査を行います。最善の状態であれば、彼は31msのレイテンシーでゲームを楽しめていることが見て取れますね。ですが最悪の場合だと、522ms付近です。つまりこの場合だと、接続に500msもの振れ幅があるため、ゲームの遊び心地はかなり悪いということです。彼のローカルISPネットワークの接続は不安定ですが、平均を見てみると非常に稀なケースであることがわかります(平均が31mで、最低値が264ms。たまたま起きたのでしょう)。しかしその後、ローカルのISPとISP1の間でレイテンシーが急増しています。これはプレイヤーとゲームサーバーの間のノードの一つです。この二つの間でパケットロスと経路の問題が発生しているということがほぼ確実に言えるわけです。我々にはどうしようもない問題ではありますが、取引先の企業へと通知することはできます。たいていの場合、この状況を解決できれば全員に利益があります。
© 2021 Electronic Arts Inc.EA, the EA logo, Respawn, the Respawn logo, and Apex Legends are trademarks of Electronic Arts Inc.
さて、サーバーのチックレートを上げた際の不利益をいくつか解説しました。ですが、例えば20Hzから60Hzまで上げた場合の利益はどうでしょうか?そんなの簡単でしょ、Respawn!サーバーの速度が3倍速くなって、3倍快適になるんじゃないの?上げちゃえばいいじゃん!
台湾サーバーのAPEXのランクは、東京サーバーと比較すると、とにかく部隊数の減りが早いです。
時には、ゲームの物理シミュレーションの不具合であることもあります。皆様へと即座にフィードバックを返すために、私たちは予測というコンセプトに頼っています。あなたが射撃したとき、私たちは弾道を把握しているので、銃弾があなたのゲーム内でどこに向かっているのかが予測でき、サーバーからあなたへとその情報を送る必要がなくなるのです。これにより、ゲームの反応性が向上します。
「Code:net」はゲームがサーバーからタイムアウトした時に表示される一般的なエラーメッセージです。この問題の原因は数多くあり、私たちの側に問題があることもあれば、あなたの側に問題がある場合もあります。実のところ、最も深刻なcode:netバグ(およびcode:leafのような関連したバグ)のいくつかは本ゲームを支えるRespawnのサービスに関連する可能性があり、詳細な調査が必要になります。
判定なしが発生するたび、私たちは当たり判定と銃弾の軌道を図にします(軌道は少し曲がるはずなのですが、大体合っているので良しとします!)。問題が起きたことがすぐわかりますし、サーバーのログを確認する際の視覚的資料としても役立ちます。
最後に言及しておきたいことがあります。それは、オンラインの問題のせいでプレイヤーの皆様が感じる、心の底からのフラストレーションです。ラグ、命中判定なし、あるいはスローモーションのサーバーといった問題に遭遇するのは、楽しくありません。現実に引き戻されるような気持ちになります。ランクを上げようとしている時、友達といい結果を残そうとしている時、あるいは夕方にリラックスしようとしている時なんかには、やる気が削がれてしまいます。 これらの問題によってプレイヤーの皆さまにご不便をお掛けしている点に付きまして誠に申し訳ございません。
問題なのは、 各チックの間にいったい何が起きているのかということです。サーバーが完全なワールドステートをチックのたびに保存するのは、ワールドステートの精度をできる限り高くしたいからです。こうしていなかったなら、サーバーのCPUコストを少し減らせていたかもしれませんが、シミュレーションの精度が落ちてしまいます。そのリスクに見合った価値はありません。
みんな大好きな問題ですね。私たちのサーバーは20Hzで動作しています。これはつまり、サーバーがワールドステート(ゲーム内世界の状態)全体を50ms(1秒、または1,000msを20で割った数値)ごとにシミュレートしているということです。