プレイヤーやその他のオブジェクトが単純な座標系で画面上を移動するマルチプレイヤー 2D ゲームを開発しています。そのため、プレイヤーのクライアントはその動きをサーバーに送信し、それらの動きに従って、サーバーのゲーム ルーム スレッドが定期的に (おそらく 50 ~ 100 ミリ秒)、すべてのオブジェクトの新しい速度、座標、および角度を計算します。次に、それらの変更に関するデータをすべてのプレーヤーに送信します。
たとえば、1 秒間に 3 回動きを送信できる 10 人のプレイヤーがいる場合、サーバーはそれらの動きを全員に送信する必要があります。単なる動き以外のプレーヤーのアクションを考慮すると、1 秒間に数十個の小さなメッセージが発生する可能性があり、それは 1 つの部屋に限られます。
だからここにたくさんの質問があります:
1) Netty は私が探しているフレームワークですか? リアルタイム ゲームなので、1 ミリ秒も重要ではありません。低遅延は最も重要な要件です。プレイヤーの ping が 30 を超えると、プレイはかなり貧弱でラグが発生します。
2) もしそうなら、小さなパケットを送信するこの種のサーバーの最適化と設定に関するアドバイスをすべて聞きたいのですが、それらはたくさんあります。同時プレイヤーのピークは、100 ~ 200 の部屋で 2000 ~ 3000 人のユーザーがプレイしていると推定しているので、サーバーがその数のプレイヤーがゲームをプレイしても遅延なく処理できるようになれば、非常にうれしいです。
3) すべてのゲームルームには、ゲームをループして実行する独自のスレッドがあります。この種のスレッドを実行する適切な方法があるので、サーバーの通常の機能にはあまり影響しませんか?
回答ありがとうございます。