自分のゲームを完全にサーバー側にしたい。つまり、クライアントはキーストロークのみを送信します。次に、変更されたオブジェクトの位置をサーバーから更新します。その後、クライアントはすべてのフレームをすべてレンダリングします。 BOX2Dを使用してその間のフレームを計算し、サーバがあることを行って、実際にある場所を予測しようとしないでください:ゲームのネットワーキングですか?
これは、2Dゲーム
私はこのような何かを考えていたです。
ServerPos - > ClientPos - > ServerPos - > ...その後、私たちは、クライアント上の次のフレームをシミュレートする一定の時間によって我々は(ドロップまたは何か)パケットをもらっていない場合は
。この考えは、サーバーが常に私たちの立場を修正するのを避けることです。私たちは、クライアントが仲間を埋めることを望みますが、サーバーがどこになるかを予測しようとはしません。
クライアントがシミュレートされているため、プレーヤーを反対方向に移動することは避けたいので、結果のベクトルに0.98のようなスカラーを掛けることができます。クライアントはサーバーよりもわずかに遅くなります。サーバーの位置へのスムーズな移行を確実にします。
おかげ
+1 - 私はそれとほとんど同じことを言っていたが、後ろ向きに笑っていた。 @Milo - 帯域幅やサーバ/クライアントが処理できるようにするのではなく、**レイテンシ**についてのあなたの主な敵と同じ意見を具体的に共有しています。 – BeemerGuy
@Milo - データを光速で移動させると仮定すると、_Longest_の通信回線(地球上のAからBまでの距離)は66msです。これは非常に制限されています。 – BeemerGuy
+1、私も勝つ。 **クライアントからサーバーへのping ***を提案しようとしていました - それはあなたが超過できないハードfps限界を与えるでしょう。また、UDPドロップパケットの問題を見落としています。つまり、突然最後の10秒分のパケットを一度に取得すると、TCPが輻輳して遅れることになります。 - 追加編集:私はあなたがいくつかの予測的な仕事をすることができ、将来的にすべての可能性を出すことができると思います。しかし、あなたは非常に迅速にいくつかの深刻な帯域幅を話している! –