サーバーが見つかりません apex

サーバーが見つかりません apex

簡単に言えば、チックレートが高いほど全プレイヤーに送信される帯域幅が増加します。20Hzのサーバーから60Hzのサーバーに移行した場合、ゲームが使用する帯域幅は3倍に増えます。現時点で「エーペックスレジェンズ」はゲーム開始時に約60kB/sを消費しています。60Hzのサーバーであれば、180kB/sが消費されます。大したことがないように聞こえるかもしれませんが、実際はとても重要なことで、私たちは帯域幅を減らせるように常に改善策を模索しています。

計算結果を見てお気付きになられたでしょうが、20Hzのサーバーでは約5フレームの遅延、60Hzのサーバーでは3フレームの遅延が発生します。つまり、最善の場合であっても、帯域幅とCPUコストを3倍にして削減できる遅延はたった2フレーム分だけだということです。利点はあるのですが大きくはありませんし、普通のラグに関係する問題(遮蔽物に隠れているのに撃たれる)やISPレベルの問題、あるいはバグ(命中判定やスローモーションのサーバー関連)に関してはまったく効果がありません。

覚えている方もいるかもしれませんが、シーズン7と8では、ゲーム開始時のチャンピオン画面で速度低下が起きていました。試合に参加している全プレイヤーが同じ場所にスポーンしたことで、プレイヤーが別のプレイヤーの真上に配置されたり、重なり合ったことが問題の原因でした(UIのせいでその光景を見ることすらできなかったわけです!)。物理シミュレーションでは、オブジェクトが他のオブジェクトと重なり合うと問題が発生します。そして物理エンジンがプレイヤーの体をお互いから引き離そうとしたことで、サーバーのCPUに大きな負荷がかかったというわけです。

比較すると、このサーバーは一度もフレーム時間を満たしておらず、主に200msのフレーム時間で動作しています(つまり、4倍遅いということです)。一般的には、スローモーションになっているサーバーです。

仮定の話として、あなたのPing、あるいはレイテンシーの平均が50msだとしましょう。Pingが測定しているのは、お使いの機器とサーバー間を往復する速度だということを覚えておいてください。レイテンシーの変動やハードウェアのラグ(例:ディスプレイには20~50msの遅延があります)といったその他の問題がないと仮定した場合、あなたがボタンを押すか、あるいはマウスを動かすと、サーバーは25ms(Pingの半分)後に入力を受け取ります。

サーバーには映像が表示されないので、サーバーパフォーマンスの話をする場合にはfps(一秒あたりのフレーム数)について言及することはありません。代わりに、サーバーは「状態」を計算しますが、基本的な原理は同じです。ユーザーからの入力を(ネットワークから)受け取って、物理挙動を計算し、新しいワールドステートをクライアントに送り出したら、その後は同じことを繰り返します。このプロセスに50ms以上かかる状況が続くと、サーバーがシミュレーションを完了できるように、ゲームは速度を下げます。こうして、サーバーがスローモーションになるというわけです。

あなたがWi-Fiでプレイしているというのであれば、私たちにはどうしようもありません!そうでないというのであれば、レイテンシーの急変動はサーバーのパフォーマンスに関連している場合があります。

命中判定についてお話ししましょう。命中の判定がされていないということはつまり、あなたは標的に命中させたと思っているのですが、サーバーはそう思っていないということです。あなたの視点では、血しぶきや音といった様々な形で命中の証拠が表示されているのに、ダメージカウンターが出てきません。「エーペックスレジェンズ」のようなシューティングゲームにおいては、非常に不愉快な現象です。

実際のところ、このアプローチであっても問題への対応がやや遅いのです。ほとんどのデータが確実に収集され、報告されるまでには一週間待たなければなりません。その後、完全な調査が行われるまでに、また一週間かかるということはよくあります。あなたが問題に気付いてから私たちが修正方法を発見するまでに、最大で二週間かかります。サーバーパッチが必要という場合であれば、その修正を導入するまでにもっと時間がかかります。

41.67msが75msよりいい数値なのは間違いありませんが、フレームレートという点で考えると、この数値にはどんな意味があるのでしょうか?ここでも60fpsで動作していると仮定しましょう。各フレームは16.67msを要します。つまり入力してからサーバーが認識するまでのラグは、約3フレームです(毎アップデート41.67ms / 毎フレーム16.67ms = 約2.5フレーム、半フレームは変わらず存在しませんので、切り上げて3フレーム)。

大変な話題がやってきましたね。この問題に関しては、透明性のある形で取り組みたいと考えています。サーバーのチックレートについては、他のオンラインシューティングゲームのように20Hzから上げてしまわないのは何故なのか、という質問を多くのプレイヤーから受け取っています。

最後に言及しておきたいことがあります。それは、オンラインの問題のせいでプレイヤーの皆様が感じる、心の底からのフラストレーションです。ラグ、命中判定なし、あるいはスローモーションのサーバーといった問題に遭遇するのは、楽しくありません。現実に引き戻されるような気持ちになります。ランクを上げようとしている時、友達といい結果を残そうとしている時、あるいは夕方にリラックスしようとしている時なんかには、やる気が削がれてしまいます。 これらの問題によってプレイヤーの皆さまにご不便をお掛けしている点に付きまして誠に申し訳ございません。

問題なのは、 各チックの間にいったい何が起きているのかということです。サーバーが完全なワールドステートをチックのたびに保存するのは、ワールドステートの精度をできる限り高くしたいからです。こうしていなかったなら、サーバーのCPUコストを少し減らせていたかもしれませんが、シミュレーションの精度が落ちてしまいます。そのリスクに見合った価値はありません。

通常であれば、クライアントとサーバーは同じ結論に至り、銃弾は予測通りの場所に着弾します。以前は、弾道や弾の軌道を計算する方法にバグがありました(例えばスナイパーライフルといった、弾のサイズが点ではない全ての武器において)。この種のバグは発見するのが非常に困難なので、問題をすぐ発見できるよう、プレイテストの際に視覚効果を導入しました。残念ながら、この診断コードは(帯域幅の懸念から)公開しているゲームで使用するには重すぎるため、社内でのテストに頼るしかありません。

私たちのサーバーは20Hzですから、ワールドステートは50msごとに更新されます(1秒は1,000msであり、それをチック20回で割ると50ms)。そのため最悪の場合であれば、入力は75ms(25ms + 50ms)後にサーバーで処理されます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です