私は、自分のゲーム開発サイド プロジェクト用に独自のネットワーク エンジンを作成する作業を行ってきました。これには、信頼できないメッセージ、信頼できるメッセージ、および順序付けされた信頼できるメッセージを持つオプションが必要です。ただし、信頼できるプロトコルと順序付けられた信頼できるプロトコルに必要なすべてのメカニズムを特定できたわけではありません。
UDP を介した信頼性の高いレイヤーに必要なメカニズムは何ですか? 追加の詳細をいただければ幸いです。
これまでのところ、これらが要件であることがわかりました。
- 受信したメッセージをシーケンス番号で確認します。
- 再送信時間が経過した後、未確認のメッセージを再送信します。
- 適切な再送信時間を計算するために、各宛先の往復時間を追跡します。
- 重複パケットを特定して削除します。
- オーバーフローするシーケンス番号を処理します。
これは私のアーキテクチャに影響を与え、シーケンスとタイムスタンプを含む信頼性の高いメッセージ ヘッダー、受信したシーケンスとタイムスタンプをエコーする確認応答メッセージ、アドレスに基づいて適切な再送信時間を追跡するシステム、および a) メッセージを受信してユーザーが受信できるようにキューに入れるスレッドを備えています。 、b) 信頼できるメッセージを確認し、c) 再送信タイマーの期限が切れた未確認メッセージを再送信します。
注: 信頼できる UDP は TCP と同じではありません。注文された信頼できる UDP でさえ、TCP と同じではありません。私は、本当に TCP が必要であることを密かに認識していません。また、誰かがセマンティクス ゲームをプレイする前に、はい...信頼できる UDP は「矛盾した表現」です。これは、信頼性の高い配信を実現する UDP 上のレイヤーです。