私の知る限り、ほとんどの大規模ゲームでは固定タイムステップを使用して、安定したシミュレーションを実現しています。
ゲームサーバーについて、どの「フレームレート」を課していますか?または、別の言い方をすれば、どの固定タイムステップを使用する傾向があるのでしょうか?
多くの人が「彼らが逃げることができる限り早く」と言うことを知っています。確立されたMMORPGの直接的な経験がある場合、それがどれくらい速いかを知りたい。
私の知る限り、ほとんどの大規模ゲームでは固定タイムステップを使用して、安定したシミュレーションを実現しています。
ゲームサーバーについて、どの「フレームレート」を課していますか?または、別の言い方をすれば、どの固定タイムステップを使用する傾向があるのでしょうか?
多くの人が「彼らが逃げることができる限り早く」と言うことを知っています。確立されたMMORPGの直接的な経験がある場合、それがどれくらい速いかを知りたい。
回答:
Second Lifeは、Havokを使用してサーバー側で物理を実装し、更新を1秒あたり45にロックします。
https://community.secondlife.com/t5/General-Discussions/SIM-FPS-is-maxed-out-at-45/td-p/181120
2005年から2006年頃の以前のバージョンでは、サーバーが許容する範囲で物理更新をフロートできました。スクリプト化されたオブジェクトがほとんどない単純な領域は、1秒あたり800回の更新で実行できます。効率と一貫性を高めるために、後で45にロックしました。
(Second Lifeでは、フレームレートは各クライアントのCPUとグラフィックスパワーに依存します。世界の精度はネットワークパフォーマンスに依存します。)
私は、MMO用のスイートを含む、いくつかのゲームサーバーに取り組んできました。
一般的に、物理学はまったくありません。物理学が必要ないくつかの状況(主にジャンプ)で、クライアントが自分の物理学を計算できるようにし、あまりにも奇抜なものはすべて拒否します(プレイヤーがあまりにも速く動きすぎて、ジャンプできるはずの高さをはるかに超えて、等)。
サーバーには通常、「タイムステップ」もありません。彼らは通常、「1秒あたりのフレーム数」をまったく考慮していません。代わりに、最後に誰かから何を聞いたのか、そのとき何をしていたのかを知ってから、少し後に再び彼らから聞いたときに、彼らが今何をしているかを聞くので、それに合わせて内部状態を更新します。サーバー側のすべてを厳密にシミュレートする必要はありません。クライアントが私たちに言ったことを記録し、クライアントが言ったことが私たちにとってもっともらしいように見えるかどうかを確認するためにいくつかのチェックを行います。
perTick * ticksSinceLastUpdated
シンプルで効率的です。
与えられた他の良い答えに加えて、いくつかの物理学は一般にサーバーによって駆動されず、サーバーによっても知られていないという事実を追加したいと思います。これは、ネットワークやサーバーにオーバーヘッドを追加せずに世界をより豊かに見せるための一般的なトリックですサイド処理。
たとえば、地面を蹴ったり、風に吹かれて他のオブジェクトと相互作用したりする破片があったり、死体を押しのけたりすることがあります。
物理が純粋に装飾的なものであり、動きやゲームプレイにまったく影響しない場合は、クライアント側で完全に発生させることができます。
プレイヤーが異なれば物事は異なって見えます(例えば、地面で缶を撃って飛び去った場合、他のプレイヤーは飛ぶことができるとは見えないかもしれません)が、それは経験が重要ではないことは多くの場合ですすべてのプレーヤーで同じであり、クライアント側の物理シミュレーションを使用すると、オンラインゲームのルックアンドフィールを実際に改善できます。
EVE Onlineは、単一のシャードと大きなスペースでの戦闘で最大数千枚のMMOを備えたMMOであり、「運命」ティックと呼ばれる1 Hzティックで物理学を実行します。
http://community.eveonline.com/news/dev-blogs/fixing-lag-drakes-of-destiny-part-1-1/
いわゆる「Bloodbath of B-R5RB」は、これまでにオンラインゲームで発生した史上最大の緊急プレーヤーの戦いです。https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RBによると」)。