2012-11-22 10 views
5

私は自分のゲーム用のサーバーを作成しています。スカラとakkaを試すのは良い考えだと思っていました。私はドキュメントを少し速く読んで、私はアーキテクチャのアイデアを得ました。しかし、何かをする前に、もし私が良い道を歩いていたら、より高度なユーザーに尋ねることができると思った。Akkaとゲームサーバーアーキテクチャ

基本的に私のゲームサーバーは、クライアントからの接続:http://backchatio.github.com/hookup/(websocket!)でArray [Byte]を受け取り、特定の数の "party"をホストします。配列[Byte]をsBinaryでより構造化されたデータにデコードし、構造化されたデータを送信されるはずのパーティーに関連付けることによってそれらを解釈することになっています。

私はこのアーキテクチャに従います:マスターアクタはArray [Byte](master!arrayByte)を受け取り、それらをデコードしてより構造化されたデータとしてマスタに送り返す特殊なアクタに委譲し、構造化されたデータを受け取って、構造化されたデータを理解し、Software Transaction Memory Map [Id、Party]に保持されている対応するゲームの状態を変更したInterpreterワーカーに委任し、受け取った注文をChecked当事者がクライアントに対して有効な注文であると言う場合、現在は自分の注文が正しいと仮定して、自分のバージョンの当事者で解釈することができます。

+0

STMの代わりに、1人のゲームに1人のアクターを使用し、そのアクターにゲームの状態を持っていかないのはなぜですか?私は現在、websocket、play、akkaでチェスゲームを書いています。 –

答えて

1

Akka IOでデータパケットのノンブロッキングIOを利用し、ゲームの状態を実装するのにAkka Finite State Machineを利用したいことがあります。

あなたがやりたいことのようなものに便利なことがあります。

+0

私のアンドロイドアプリケーションが必要とするので、私は本当にWebソケットが必要です。私は本当にここでFSMをどのように使うのか分かりません、plzは私を啓発します。 – Atol

+0

私は '' hookup'が標準の効率的なプロトコルのためにそれ自身の良い選択をしていることを今読んでいるので、あなたは '' Akka IO' 'について正しいと思います。 「FSM」に関しては、「FSM」俳優のモデルによって状態の一貫性が保証されているため、「STM」に頼らずにゲーム状態を実装するために使用できると思った。しかし、おそらく、あなたはすでに「Akka FSM」について知っていて、それをオプトアウトする理由があります。 –