私はスクリプト作成が初めてで、Navmesh エージェントを使用して、1V1 ゲーム Mova スタイルのゲーム専用の UDP サーバーを作成しています。setDestination
プレーヤーがクリックして移動し、他のクライアントでその位置に移動した場合にのみ、プレーヤーの変換または同期を常に更新する必要がありますか? また、ハッキングに関しては、サーバーですべてを再確認する必要がありますか? ありがとう。
1 に答える
これを行うにはいくつかの方法があります。そのうちの 2 つを長所と短所とともに指摘します。
Player クリックして移動場所をサーバーに送信します。
1) 次に、サーバーはこの場所をすべてのクライアント (発信元を含む) に送信し、クライアントはパスを計算して移動の補間を開始します。
長所:低帯域幅、高速実行、実装の複雑さの軽減。
短所: クライアントは簡単にハッキングできます。
2) サーバーは、プレイヤーがたどる必要があるパスを計算し (パスファインディング)、パス ノードをクライアントに送信します。
長所:ハッキング不可能、サーバーはすべてのプレーヤーのアクションで最終的な言葉を持っています
短所:サーバーはこれが機能するために物理学またはパスファインディングを必要としますが、これは本当に大変な作業です。物理演算を実装する場合は、サーバー上で動きを補間し、定期的に位置をクライアントに送信して動きをシミュレートできます。
2 番目のオプションを実装するのに役立つ便利なテクノロジは、 BulletSharp、 SharpNavであり、どちらもサーバー側にジオメトリ (地形) をロードする必要があります)、およびクライアント サーバー ネットワーク化物理を最適化するためのスナップショット圧縮です。
幸運を祈ります。説明や助けを求めることができます。