BeamServer2 DLLを使用してC#で専用サーバーをプログラミングしています。最初は、他のプレイヤーがすでに作成したOmuniマップ上で動くのを見たいと思っていました。これは、フレームごとにサーバーに自分の位置を送信することで行いました。これはうまくいき、私は数人の友達と遊ぶことができましたが、運動は遅れがありませんでした。そこで、サーバーが他のクライアントに到達するのを妨げることなくサーバーが誤った位置を送信できないように、動きの平滑化といくつかのセキュリティを追加しようとし始めました。
私がやったのは、remotePlayerにMovementControllerを持つmasterClientを作成したことです。クライアントが移動したいときは、ローカルに移動し、移動する方向を示すメッセージをサーバーに送信します。その後、サーバーは速度を取り、それをmasterClientに送信します。masterClientは、remotePlayerが自分自身を移動するように、remotePlayerを移動します。彼が動くのをやめると、彼は自分の位置を入れたメッセージを送ります。次に、マスタークライアントは、自分が来た位置がクライアントからの位置と同じくらい近いかどうかをチェックします。サーバーのクライアントの位置にサーバーを置いたクライアントのpingに従って現実的な場合は、
これは機能しますが、まだ問題があり、これを修正する方法がわかりません。クライアントの動きをスムーズにする必要がありますが、自分の位置に(x / 2、y / 2、z / 2)をたたきつけて、次のフレームで実際の位置に置くことができることに気付き、失敗しました。すぐに再試行します。それが追加されても、遅延が修正されているかどうかはわかりません。
他のテクニック、提案、質問、...?ありがとう、ディーデ。