私たちはリアルタイムのマルチプレイヤーゲームを構築しています。このゲームでは、各プレイヤーがゲームループの反復ごとにその状態を報告する責任があります。
状態の更新は、信頼できないUDPを使用してブロードキャストされます。
状態データの送信を最小限に抑えるために、デルタ(変更された状態データに関係なく)のみを送信するシステムを考え出しました。
ただし、パケットが失われると他のプレイヤーがデルタを受信できなくなり、ゲームが予期しない動作をするようになるため、この方法には欠陥があります。
例えば:
状態は次の要素で構成されていると想定します:{positionX、positionY、health}
Frame 1 - positionX changed --> send a packet with positionX only.
Frame 2 - health changed // lost !
Frame 3 - positionY changed --> send a packet with positionY only.
//他のプレイヤーは健康状態の変化について知らない。
では、どうすればこの問題を克服できるでしょうか?データ全体を送信することは常に可能であるとは限りません。