私はUDPを介してネットワーク化された小惑星を実装しています。クライアントが送信するユーザー入力メッセージを状態の変化だけに制限しようとしていました。したがって、矢印キーまたはスペースキーに下または上にキーがある場合にのみメッセージを送信してください。これにより、クライアントから送信されるパケットの量が大幅に削減されます。
しかし、ネットワーク物理学に関するGaffersの記事と、UDPメッセージの信頼性を高めることに関する彼のより複雑な記事を読み直したので、私は再考しています。彼は次のように述べています。
The key to making this input stream tolerant of packet loss and out of order delivery is the inclusion of a floating point time in seconds value with every input rpc sent. The server keeps track of the current time on the server and ignores any input received with a time value less than the current time. This effectively drops any input that is received out of order. Lost packets are ignored.
したがって、パケットが失われた場合でも問題ありません。今、船を前進させるためのキーダウンを示す重要なパケットは、失われ、決して憤慨せず、ゲームを壊す可能性があると考えています。
したがって、クライアントは、パケット損失に耐えるこのスキームに適合するように、状態変化ではなく、実際のキーボード状態のより定期的な(すべての物理更新まで、1秒あたり50回)ダンプを送信するように強制されると言っているのは正しいですか?それとももっと高貴な方法がありますか?