あなたがまだの場合は、私はあなたがこれらの二つの深いが、分かりやすい記事を読むことをお勧め:https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networkingとhttp://fabiensanglard.net/quake3/network.php。
これらは、「固定間隔」パケット送信を使用することが推奨される理由を説明しています。簡単に言えば、実際には、サーバーから送信されるパケットにとって主に重要です。
パケットの送信には固定コストがあり、ネットワークパケットの最大サイズは約1.5 KBです。たとえば、サーバーのプレイヤーが16人いる場合、各フレームでプレイヤーの動きを計算すると、ナイーブコードは動きの解像度ごとに各プレイヤーに更新パケットを送信できるため、16 * 16 = 256パケットです。30のフレームレートがある場合、それは7680パケットです。
より良い方法は、フレームの各開始点にバッファーを作成し、16の計算された位置の更新を連結してから、16のプレーヤーに送信することです。
同じ結果を得るために、秒単位で480パケットのみを送信するようになりました。
プレーヤーからサーバーへの場合、それは同じパケットで最大データを送信する必要があることを意味します。見えた位置、このフレームと呼ばれるアクションなど。
あなたの質問の2番目の部分について-私はラグ感覚を減らすために選択した方法は、各フレームでこの情報をサーバーに送信することでした:
サーバーはこの情報を受け取るたびに、将来の位置と見た位置を更新し、プレーヤーエンティティは最終的にその将来の位置に向かって移動します。
プレイヤーが正確に同期されることはありませんが、入力応答は即座に行われ(私にとって最も重要です)、予測された位置は私にとって十分に正確であることがわかりました。