私は現在、物理をサーバー側でシミュレートしたいシングルプレイヤーの物理指向のゲームに取り組んでいます。これは、ゲームにリーダーボード、永続的なプレーヤーの進行状況などがあり、あらゆる種類の不正行為を防止したいためです。基本的には純粋なクライアントサーバーアーキテクチャであり、クライアントは「ダム」であり、サーバーが表示したいものだけを表示します。
しかし問題は、ゲームがおそらく数百人(おそらく数千人)の人々によって同時に行われることです。何百もの状態を同時に維持する必要がある場合、サーバーの処理能力が失われる可能性が最も高いため、これは私に関係しています。
すべての物理シミュレーションをクライアント側に移動しても問題はありませんが、クライアントシミュレーションの結果が有効かどうかを検証する方法が本当に必要です。しかし、私にはその方法がわかりません。
シミュレーションサーバー側をときどき実行して、クライアントがまだ公平に機能しているかどうかを検証することを考えましたが、サーバーにできるだけ負担をかけないようにしたいのです。
物理学は、Glenn FiedlerによるGDC 2011デモとほぼ同じくらい複雑になるでしょう。ただし、常に衝突するリジッドボディが1つのシーンに含まれ、すべてが同時に表示されます。
Web上のほとんどのリソース(ここでも、Glenn Fiedlersサイトは素晴らしいものです)が小規模なネットワーク化された物理学(Haloのような30プレイヤーのFPSなど)について話すので、私はこの特定のケースへの回答を得るのに苦労しています。
この件に関するアドバイス、ウェブサイト、論文などは非常にありがたいです。
私が回答したい質問の要約:
- クライアントサーバーモデルはどの程度実現可能ですか?サーバーの処理能力に関する懸念は正当で根拠がありますか?
- サーバー上のクライアントによって実行される物理シミュレーションを確実に検証することは可能ですか?もしそうなら、どうですか?