1

私は現在、課題のためにオンラインターンベースの RPG をコーディングしています。ゲームでは、プレーヤーは互いにチャットし、ターンが完了するとアクションを送信できます。プレイヤー間のデータ交換を処理する最善の方法は何ですか? ソケットまたはすべての情報をデータベースに保存し、プログラムは定期的に更新を確認するように要求しますか? より良いアプローチがない限り。

ゲームは大規模であることに注意してください。つまり、多くのプレイヤーが同じサーバーで同時に多数のゲームをプレイするため、できるだけ効率的になるように努める必要があります。

4

3 に答える 3

3

Silverlight では、Silverlight アプリを提供したホストにのみ接続できるため、クライアント間のソケットは除外されます。ゲーム内のすべて (チャットを含む) は、サーバーを経由する必要があります。

Windows Communication Foundation (WCF) は、Silverlight2 での作業に非常に適しています。ゲームをターンベースにすることで、リアルタイムでプレイヤー間でまったく同じゲーム状態を維持する必要がないため (つまり、最大 100 ミリ秒のレイテンシーを目指していない)、少し簡単になります。

于 2009-02-12T20:54:36.670 に答える
1

可能であれば WCF を使用してください。

于 2009-02-12T20:35:14.453 に答える
1

大きく2つの可能性があります。Sockets通信を適用するか、 Duplex WCFを使用できます。トレードオフは次のとおりです。

ソケット => 小さい生産性よりも優れたパフォーマンス
デュプレックス WCF => パフォーマンスは低下しますが、生産性は向上します

ネット上には両方のシナリオの優れた例がいくつかありますが、WCF ソリューションを決定する場合は、リソースの一部を次に示します。

Peter McG による非常に優れたチュートリアル。msdn からの二重 WCF
に関する情報。

于 2009-02-24T15:33:53.697 に答える