2011-11-30 11 views
0

シルバーライトを使用したブラウザ内カードゲームを開発する必要があります。このゲームでは、正確に4人のプレイヤーがプレーする必要があります。今私がオンラインで読んだのは、サーバー上にそのゲームロジックを実装し、そのサーバーにWebサービスリクエストを送信してゲームイベントを処理する必要があるということです。
私の質問は、どのようにゲーム[ループ]の複数のインスタンスを処理できるサーバーを実装できるかです。私は4人のグループのためにサーバーがゲームの別のインスタンスをどのように扱うのか分かりません。 私はすべての人がサーバーに接続し、他の3人のプレイヤーを選択してからゲームのインスタンスを実行できるようにしたいと思います。より明確にするため、吸う絵の具の図が添付されています。だから私はどのようにそれを達成することができる?永続化、並行性、セキュリティ、並行ゲームセッションの可能性、プレーヤーの同期ロジック等サーバWebベースのシルバーライトカードゲームの実装

は、しかし、一般的には、あなたのサーバが何らかの形で、すべてのゲームを追跡する必要があります。enter image description here

+1

あなたの質問は広すぎます。実際の問題をより具体的にしてください。 –

+1

あなたが受け入れるならば、実際にターンベースで、リアルタイムではなく、あなただけが扱うのはデータベースの問題です。テーブルを使って 'games'、' players'、 'turns'、' hands'、 'cards'、' score'などのインスタンスを追跡します。各Silverlightクライアントは、各画面を更新するために定期的な更新を行います。次に、ゲーム状態(例えば、 'game'テーブル内のさまざまなステータスフィールド)を追跡するだけです。あなたのサーバーロジックは単に状態エンジンになります。 –

+0

@HiTech私はあなたのアイデアを考えましたが、サーバ[DB]の変更を繰り返し調査するのは効率的でしょうか?プレイヤーの1人が異常に切断された場合、どのようなしきい値になりますか? – whizzyifti

答えて

0

まあ、オーバー考える原料の束がありますそれらに一意の識別子を割り当てます。また、すべてのアクティブなクライアントに識別子を割り当てる必要があります。各クライアントは、それ自身の識別子とセッション識別子を使用して、他のプレイヤーの移動を要求したり、自分の移動をポストしたりします。すべての移動にタイムスタンプを付けて、クライアントが更新を入手できるようにする必要があります。

関連する問題