大きなMMORPGはどのくらいの頻度で物理学を更新しますか?[閉まっている]


12

私の知る限り、ほとんどの大規模ゲームでは固定タイムステップを使用して、安定したシミュレーションを実現しています。

ゲームサーバーについて、どの「フレームレート」を課していますか?または、別の言い方をすれば、どの固定タイムステップを使用する傾向があるのでしょうか?

多くの人が「彼らが逃げることができる限り早く」と言うことを知っています。確立されたMMORPGの直接的な経験がある場合、それがどれくらい速いかを知りたい。


他の人がしていることにあまり注意を払ってはいけません。他の人のために働くものは、必ずしもあなたのために働く必要もありません。
フィリップ

6
EVE Onlineは1秒に1回シミュレーションを更新しますが、そのシステムは異常です。詳細については、この記事の最初の部分を参照してください:themittani.com/features/understanding-eve-online-server-tick
Ross Ridge

1
ゲームの開発に関する質問とは対照的に、これは「すでに存在する他の人のゲームについての雑学を求める」質問ですか?
トレバーパウエル

2
私はこれをトリビアとは呼びません-それは非常に重要です。一部のゲームで1秒のティックを使用できること、私が知らないこと、または物理学をまったく使用しないことは、私にとって非常に重要です(開発者にとってもそうである必要があります)。同時に、フィリップに対する私の答えは、FPSを決定したかったので、これを尋ねていたという暗黙の意味合いによるものでした。私のエンジンには多くの制限があり、使用できる制限FPS(下限と上限の両方)を既に知っているため、これは意味がありません。
ファビオ

1
Blizzardの記事で、戦闘イベントのWoWサーバー処理速度を400 MSごとに1回から「いつでも」に変更したことを覚えています。ただし、WoWはその年齢のために物理学にあまり大きな影響を与えないため、物理学に関連するものではありません。私もこれのソースを見つけることができません。
Nzall

回答:


7

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とグラフィックスパワーに依存します。世界の精度はネットワークパフォーマンスに依存します。)


確かに、これは合理的なようです。インテグレーターが優れていて衝突検出が十分にスマートであれば、30 FPSの低さでもまともな仕事をすることがわかりました。適切な物理学を持つ他のMMOとそのタイムステップを知っていますか?
ファビオ

2
実世界の例を提供する唯一のものとして受け入れられましたが、すべてが思考の良い食べ物でした。みんなありがとう。
ファビオ

24

私は、MMO用のスイートを含む、いくつかのゲームサーバーに取り組んできました。

一般的に、物理学はまったくありません。物理学が必要ないくつかの状況(主にジャンプ)で、クライアントが自分の物理学を計算できるようにし、あまりにも奇抜なものはすべて拒否します(プレイヤーがあまりにも速く動きすぎて、ジャンプできるはずの高さをはるかに超えて、等)。

サーバーには通常、「タイムステップ」もありません。彼らは通常、「1秒あたりのフレーム数」をまったく考慮していません。代わりに、最後に誰かから何を聞いたのか、そのとき何をしていたのかを知ってから、少し後に再び彼らから聞いたときに、彼らが今何をしているかを聞くので、それに合わせて内部状態を更新します。サーバー側のすべてを厳密にシミュレートする必要はありません。クライアントが私たちに言ったことを記録し、クライアントが言ったことが私たちにとってもっともらしいように見えるかどうかを確認するためにいくつかのチェックを行います。


4
これは、プレイヤーがログに記録せずに環境でシミュレーションを行わない場合にのみ機能しますか?私は実際にそれが一般的にそうであると仮定していましたが、おそらく「生きている」わけではないので、おそらくほとんどのMMOにとってそれは重要ではありません。ありがとう、これは予想外の答えでした。
ファビオ

2
@FabioほとんどのMMOは、オブザーバーがいないときは何もしません。実際の生活経済(およびエコロジー)があったUltima Onlineでさえ、リリースされる前にそれを許可します(技術的な理由ではありません)。プレイしないときでも何かが起こるゲーム(HavenやHearthなど)がありますが、コツは観察されるまで何も起こらないということです-すべてのアクティブなアイテムは最後に観察された時間を記憶し、何が起こったかを計算しますその間、あなたが再びそれを見る瞬間。したがって、各ティックを更新する値の代わりに、perTick * ticksSinceLastUpdatedシンプルで効率的です。
ルアーン

1
誤解しないでください。MMOサーバーには、定期的なタスクが実行されることがよくあります。再スポーンする必要のあるモンスターを確認し、リソースノードのスポーンを検討し、ゲームの状態をバックアップします。もしあなたのゲームが何らかの手続き的なアクティビティを持っているなら、もっともっとファンシーなものかもしれません。しかし、周囲に誰もいなくても毎秒「x」回実行する物理学とは違います。モンスターの出現を1分間に数回確認します(または、それを行う外部プログラムがあり、サーバーを突くだけでその時間を知らせるため、サーバー自体がクライアントリクエストの処理に集中できます) 。
トレバーパウエル

11

与えられた他の良い答えに加えて、いくつかの物理学は一般にサーバーによって駆動されず、サーバーによっても知られていないという事実を追加したいと思います。これは、ネットワークやサーバーにオーバーヘッドを追加せずに世界をより豊かに見せるための一般的なトリックですサイド処理。

たとえば、地面を蹴ったり、風に吹かれて他のオブジェクトと相互作用したりする破片があったり、死体を押しのけたりすることがあります。

物理が純粋に装飾的なものであり、動きやゲームプレイにまったく影響しない場合は、クライアント側で完全に発生させることができます。

プレイヤーが異なれば物事は異なって見えます(例えば、地面で缶を撃って飛び去った場合、他のプレイヤーは飛ぶことができるとは見えないかもしれません)が、それは経験が重要ではないことは多くの場合ですすべてのプレーヤーで同じであり、クライアント側の物理シミュレーションを使用すると、オンラインゲームのルックアンドフィールを実際に改善できます。


一部のゲームでは、それが十分に速く飛び去ることができれば、誰かを殺すことができます。爆発によって推進されたトラフィックコーンで誰かが殺されたHaloゲームのビデオを見てきました。
Random832

缶がゲームプレイに影響するようにしたい場合は、同期された物理世界に追加できますが、同じ空間に同期されていない物理世界を持つこともできます!基本的に、非同期の物理世界はプレイヤーと同期した物理世界の影響を受ける可能性がありますが、元に戻すことはできません(:
アランウルフ

3

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によると」)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.