首先在架构设计上,利用Erlang的特点,采用分布式构成,分为4个节点:数据服务、房间、大厅、主逻辑处理。其中:
数据服务:提供对数据库的读写操作。
房间:通过一个房间管理器,动态的创建、管理房间。
大厅:通过一个大厅管理器,动态的创建、管理大厅。
逻辑:也即游戏主服务,socket管理,玩家数据管理。
数据库选用了mongodb,主要原因是性能比较高,不需要添加缓存层,还有一个是支持接近sql的查询,目前大多数人都是多年使用关系数据库的经验,这样过渡比直接到key/value型更为适应一些。