3

私は現在、Silverlightを使用したブラウザベースのゲームの設計の初期段階にあります。ゲームには2〜4人のプレーヤー(おそらく最大8人)の多くの試合があり、ターン制になります。

経験があるので、フロントエンドはSilverlight3.0です。私はバックエンドがどうあるべきかを理解しようとしています。ゲームはターンベースであるため、リアルタイムゲームほど頻繁にサーバーをポーリングする必要はありません。サーバーエンドには、クライアントとバックエンドの間で通信するある種の中間層が含まれます。バックエンドは、ユーザーアクション(攻撃、防御、移動、スキル、レベリングなど)に基づいて検証と計算を実行するac#ベースのWindowsサービスになります。

Silverlight 3.0クライアントとサーバー上のc#Windowsサービス間の中間通信レイヤーに関する次の長所と短所は何ですか。

  1. ソケット
  2. WCF/WCFデュプレックスサービス
  3. .NetRIAサービス

現在、上記の3つのオプションについては何も知りませんが、過去にASP.Net Webサービスを作成し、大学ではほとんど忘れていたソケットプログラミングを行いました。

4

1 に答える 1

2

これが私の見方です:

ソケット: 利点は、これが非常に優れたパフォーマンスを発揮できることです。欠点は、クライアントとサーバーの両方で実装するのがやや壊れやすく、複雑であることです。他に方法がない限り (たとえば、非常に高いパフォーマンスが必要な場合)、これは避けます。

WCF / WCF Duplex: WCF は、何をやり取りしたいかを考えるのに 10 分かかるだけで、非常に簡単に実装できます。パフォーマンスは良好で、展開は簡単です。これは、オンラインゲームの最初の選択肢です。

WCF Duplex はやや複雑です。これを機能させる方法については、いくつかの優れたチュートリアルがありますが、努力する価値がないかもしれないいくつかの落とし穴があることがわかりました. 高いポーリング間隔が必要ない場合は、通常の WCF を使用します。私の知る限り、WCF Duplex もポーリングを行うため、実際には二重ではありません。

.NET RIA サービス: これについてはよくわかりませんが、大量のトラフィックがある場合、オーバーヘッドは必要なものではないと思います。また、フォーラムの質問から、これはカスタマイズがそれほど簡単ではないことがわかりましたが、WCF はより柔軟です。

結論: やむを得ない理由がない限り、私は WCF を使い続けます。

于 2009-09-22T06:53:02.960 に答える