現実的な物理学を備えた車両を使ったMMOゲームを見たことがなく、高速を実現できるのはなぜですか?ネットワーク帯域幅の制限が原因ですか?
Second Lifeには乗り物がありますが、物理は貧弱で、最高速度は悲惨です。
現実的な物理学を備えた車両を使ったMMOゲームを見たことがなく、高速を実現できるのはなぜですか?ネットワーク帯域幅の制限が原因ですか?
Second Lifeには乗り物がありますが、物理は貧弱で、最高速度は悲惨です。
回答:
はいといいえ(ただし、ほとんどの場合はありません)。
どのMMOゲームにも、物理に影響を与えるいくつかの制限があります。これらの中で最も重要なのは遅延です。レイテンシとは、クライアントがサーバーにリクエストを送信し、応答を受け取るまでにかかる時間です。非常に最良の状況でも、この時間は約50〜100ミリ秒です。現実の世界では、500ミリ秒にもなることがあります。これはつまり、プレーヤーが何かをするとき-たとえば車のホイールを回すとき-は、ゲームが100〜500ミリ秒後に反応するのを見ることができるということです。
100ミリ秒は実際にはかなりたくさんあります。レイテンシが同じであるゲームはすべて応答がないように感じられ、500ミリ秒はまったくプレイできないように感じます。これが、ゲームクライアントがこのレイテンシを隠すために多くのトリックを採用している理由です。たとえば、プレーヤーの車は、サーバーを待たずに、ホイールを回した瞬間に方向転換を開始できます。ただし、これらのトリックはレイテンシをマスクするだけで、実際にはそれを減らすことはできません。
たとえば、車に2人のプレイヤーが同時にお互いに向かって操縦しているとします。各クライアントはすぐに自分の車を回し始めます。しかし、他のプレイヤーの車は向きを変えません-待ち時間のため、コースを変更する情報がまだクライアントに届いていないためです。両方のプレイヤーが喜んで自分の車を操縦し、それからバムします!-サーバーは、実際には互いにクラッシュしたことに気づきます。
このような状況を防ぐことはできません。私たちがどんな賢い予測スキームを使用していても、他のプレイヤーがいる場合、常に問題が発生する可能性があります。どのMMOゲームでも、今見た約0.5秒はまだ実際には発生しておらず、いつでも変わる可能性があります。現在、従来のMMORPGのような遅いペースのゲームでは、0.5秒は実際にはそれほど長くありません。この間、キャラクターは1メートルか2メートルしか動きません。しかし、テンポの速いカーレースについて話すと、0.5秒は本当に長い時間です。半秒で3回(-8
実際、テンポの速いゲームは、これらの制限があっても機能します。不愉快な瞬間がいくつかありますが、すべてのプレイヤーが良好な接続を持っている限り、それはプレイ可能です。それがマルチプレイヤーレーシングゲームの仕組みです。ただし、別のMMO制限があります。N二乗更新カウントです。
10人のプレイヤーが同時にプレーすることを想像してください。彼らがお互いを見るには、サーバーは他のすべてのプレイヤーに関するすべてのプレイヤー情報を送信する必要があります。つまり、この例では、10x10 = 100個の情報を準備して送信する必要があります。これは二乗したプレーヤーの数なので、「N二乗」になります。この数は急速に増加し、同じエリアに多くのプレーヤーがいる場合、従来のMMORPGでさえ苦労し始めます。車を使った架空のペースの速いゲームでは、これらの情報は、遅いゲームよりもはるかに速く送信する必要があります。そして、それらはおそらくそれ自体より大きくなります-位置だけでなく、速度、加速度、角速度なども送信する必要があります。これは、高速マルチプレイヤーゲームは限られた数のプレイヤーしか持つことができないことを意味します。
上記の両方の問題は、原則としてソフトウェアで解決することはできず、ある程度マスクされているだけです。プレーヤーの数を制限することで少し減らすことができます。たとえば、速い車が限られた数のプレーヤーのインスタンスでのみ使用されるゲームは、おそらく実行可能です。それがAPBのやったことだと思います。しかし、高速車を使用した完全なオープンワールドMMOゲームは実現しません。量子エンタグルメントネットワークインターフェイスか何かができるまでは。
はい。
ネットワークの遅延に対処し、ネットワーク全体でゲームの状態を同期する必要があります。車の動きが速いほど、ネットワークの遅延は顕著になります。ネットワークの問題により、ゲームクライアントがサーバー上のゲームの状態を更新できないため、プレーヤーが壁にぶつかることがあります。プレイヤーが歩行速度で移動する場合、これは問題ではありません;-)
MMOサーバーの方が負荷が高くなります。マルチプレイヤーレーシングゲームは、10人が接続されていても問題なく動作する可能性がありますが、何百人ものユーザーからの高負荷の下でサーバーが応答しなくなると、クラッシュして燃焼します。
Second Lifeの車両物理学は、うまく実装されていません。(これはまだ生きていますか?)
最初にリファレンスを見てみましょう。
GTA自体にはマルチプレーヤーに関するいくつかの問題がありますが、これは予想されることです。たとえば、レイテンシが車の追跡を悪夢に変える場合です。レイテンシが原因で、プレーヤーがお互いを殺し合うことがあります。
しかし、レイテンシだけが問題ではありません。クライアントだけでMMOを実行することはできません。サーバーが必要であり、これらのサーバーはすべての物理的ではないにしてもほとんどの物理を管理して、不正行為を回避する必要があります。
何千人ものプレイヤーと一緒に走らなければならないことを想像してみてください。物理学集約的な活動中にCPUにかかる負荷も想像してみてください。ストレスのチャンクを専用GPUに相殺できます。Bullet Physicsには、CPUで実行される実装があります。
ただし、サーバーの過負荷を回避するには、プレーヤーの密度に応じて動的ゾーンの再定義を処理するメカニズムを実装する必要があります。その場合、他のMMOよりもはるかに重要です。
実行可能です。ここでの問題は、より多くのプレーヤーを処理し、サーバーに分散されたゲームのメインインスタンスを実行するためにゲームをスケーリングする必要があることです。
物理を最適化し、オブジェクトをサーバー間で迅速かつ効率的に転送し、大規模な群集(インスタンスなど)を回避する方法を見つけた場合、MMOの性質により、参照と他のいくつかの制限と同様の制限でそれを行うことができますゲームの。
常にすべてのプレーヤーにすべてのゲーム状態の更新を送信する必要はなく、プレーヤーに直接関連する変更のみを絶えず送信する必要があることを忘れないでください。残りは低いレートで送信できます。