Twisted Spread は (パフォーマンスの点で) マルチプレイヤー レーシング シミュレーターに適していると思いますか? アプリケーションの残りの部分は、Python-Ogre に基づいています。
Perspective Broker は (信頼できる?) UDP で実行できますか?
Twisted Spread は (パフォーマンスの点で) マルチプレイヤー レーシング シミュレーターに適していると思いますか? アプリケーションの残りの部分は、Python-Ogre に基づいています。
Perspective Broker は (信頼できる?) UDP で実行できますか?
ほぼ間違いなく、最初から妥当なプロトコルです。最適化の基本ルールを覚えておいてください: やらないでください。TCP ベースのプロトコルでの作業は、UDP ベースのプロトコルでの作業よりもかなり簡単になります。これは、クライアントとサーバーの間でメッセージを送信するのに 30 ミリ秒かかるか 45 ミリ秒かかるかよりも、プロジェクトの成功にとって最初ははるかに重要です。最終的に、プロジェクトが実際に成功する可能性が明確になり、その 15 ミリ秒 (またはそれ以上のミリ秒) を実際に埋め合わせる必要がある時点に到達したら、ネットワーク層を再検討して、パフォーマンスのボトルネック (レイテンシーなど) があるかどうかを検討できます。または他のメトリック) は、プロトコルの選択によるものです。もしそうなら、それはさまざまな代替案を評価するのに時間を費やす時間です. これ'問題の理解が大幅に向上し、要件を非常に具体的に特定する必要がありました。さらに2つのことにより、適切なプロトコル(TCPまたはUDPベース)を選択するタスクがはるかに簡単になり、正しい可能性が高くなります.
最初の質問ですが、はい、PB のパフォーマンスはリアルタイム ゲームには十分なものです。PB を使用していくつかのゲームが作成されています。たとえば、MV3Dは Twisted と Python-OGRE を使用して共有物理シミュレーションを表示します。
2 番目の質問に対して、PB はストリーム指向のトランスポートで実行されます。頂点に付属するPTCPモジュールのようなものを使用して、「信頼できる UDP」の上で実行できます。
ただし、「信頼できる UDP」は通常、従来の単純な TCP よりもパフォーマンスが大幅に低下することに注意してください。インターネット上のすべてのルーターは TCP を理解しており、その理解を利用して TCP を最適化できます。UDP の上に信頼性を実装する場合、必要に応じて機能的に TCP と同等のものを実装する必要があり、いくつかの要因が不利になります。
状況によっては、UDP を「高速」にすることができるのは、TCP が行う多くの作業を信頼性が低いために破棄することです。メッセージング レイヤーが信頼できない場合は、それが配信するデータが任意に破棄される可能性があることを知っておく必要があります。
通常、ゲーム内で UDP 経由で送信するのに適したデータは動作データです。位置が変更された場合、UDP パケットを送信できます。ゲームは最新の位置のみを気にするため、破棄することができます。更新が受信されると、以前の位置はすべて無関係になります。非常に多くのゲームが、1 つの (信頼性の低い) UDP チャネルを介して動作データを送信し、次にすべての制御メッセージをより信頼性の高い TCP チャネルを介して送信します。
しかし、最適化に関する Jean-Paul の回答は、いつその最適化の実装を検討する必要があるかを示す良い指標です。