2012-11-22 188 views
5

我正在为我的游戏创建服务器,我认为尝试scala和akka可能是个不错的主意。我快速阅读了文档,并且提出了一个架构的概念。但在做任何事情之前,我想我可以问问更高级的用户,如果我走的是一条好路。Akka和游戏服务器架构

基本上我的游戏服务器从客户端接收到带有连接的Array [Byte]:http://backchatio.github.com/hookup/(websocket!)并承载了一定数量的“party”。它应该使用sBinary将Array [Byte]解码为更多结构化的数据,然后通过将结构化数据与它应该发送的参与方相关联来解释它们。所以我来到这个架构:一个主角色接收数组[字节](master!arrayByte),并将它们委托给专门的角色来解码它们,并将它们作为更多结构化数据发送回主控制器,然后当主控制器接收这些结构化数据,将它们委派给理解结构化数据并且更改软件事务内存映射[Id,Party]中保存的相应游戏的状态的Interpreter worker,然后将其收到的订单发送回Checked(订单:订单),如果当事人表示这是对客户有效的订单,现在可以认为他的订单是正确的,并在他自己的版本中解释。

+0

而不是STM,为什么不使用一个演员每场比赛,并在演员的游戏状态?我目前正在编写带有websockets,play和akka的国际象棋游戏,这对我来说非常合适。 –

回答

1

也许你想看看Akka IO来利用你的数据包的非阻塞IO和Akka Finite State Machine来实现你的游戏状态。

他们可以派上用场,为你想做的事情。

+0

我真的需要websockets,因为我的android应用程序需要它。我真的不明白tu如何在这里使用FSM,请赐教。 – Atol

+0

我现在正在阅读'hookup'对于标准高效协议有其自己的好选择,所以我想你对'Akka IO'说得对。关于'FSM',相反,我认为它可以用来实现游戏状态而不需要'STM',因为状态一致性是由'FSM'参与者的模型保证的。但是也许你已经知道'Akka FSM',并且有充分的理由选择它。 –