クライアントがサーバーに要求を送信する頻度は? また、サーバーはどのくらいの頻度でクライアントに更新を送信する必要がありますか? 推奨事項はありますか?
3 に答える
そこに着くまで、これについても心配しないでください。頻繁にメッセージを送信することから始めて、規模が拡大するにつれて、必要に応じてメッセージの頻度を減らし始めることができます (この時点で、プロファイリングを使用してホット スポットを特定する必要があります)。
本当に知りたい場合は、頭に浮かんだゲームを起動してテストしてください。また、ほとんどの大規模な MMORPG は標準の Web 要求/応答を使用しておらず、非常に最適化されたバイナリ プロトコルを使用した直接ソケット接続を使用している可能性があります。
ただし、これは必要に応じて切り替えることができる別のものです。
2 人の仲間のユーザーが指摘したように、あなたの質問は非常に漠然としています。実装する MMO の種類と、どのような情報を渡すかが重要です。
そうは言っても、MMORPG の世界では、そのような場所でオンラインのプレイヤーが 1 人しかいない場合でも、クライアントとサーバーの間で多くのことを解決する必要があります。
まず、クライアントとサーバー間で画像と音声を転送しないようにする必要があります。クライアントには、必要なものがすべて揃っているはずです。
第 2 に、世界で (ユーザーが見ることができる) 何かが変わるたびに、サーバーはそれをクライアントに伝える必要があります (新しいモンスター、新しいプレイヤー、動き、攻撃)。クライアントが実行するすべてのアクションは、サーバーに通知する必要があります。
第 3 に、必要な情報のみを保持するようにしてください。何回も送信しないでください。既知のものを送信しないでください (誰かが攻撃しても動かない場合は、位置情報を送信しないでください。冗長であり、帯域幅と処理時間を浪費しています)。
それが役に立てば幸い!
率直に言って、それはゲームの性質に依存します。人々は、0.1秒を超えるラウンドトリップ時間を遅延として認識し、1秒を超えるラウンドトリップ時間を重大な問題として認識します。
http://www.useit.com/papers/responsetime.html
メッセージレートはそれを考慮に入れる必要があります。ただし、実際の双方向通信を確立できる場合(一般的なTCPチャネルで十分です)、それは適切ではない可能性があります。
このようなゲームを作成する場合、25ミリ秒のイベント収集遅延を設定します。
- 基本的に、イベントを通信する必要がある場合は、同じネットワークパケットにまとめられる可能性のある後続のすべてのイベントを収集するために、さらに25ミリ秒待機します。
- 次に、同じ大陸(およびブロードバンド)にいる場合はさらに25ミリ秒のネットワーク遅延が発生し、受信側で25ミリ秒のイベント収集遅延が発生し、サーバーに戻るまでに25ミリ秒のネットワーク遅延が発生します。