论文部分内容阅读
伴随着移动网络和移动终端性能的不断提高与完善,移动游戏业务呈现快速增长势头,全球范围内移动娱乐服务成为带动移动数据业务快速发展的重要力量。与此同时,移动游戏的新陈代谢速度增快,同质化日趋严重,移动游戏市场的竞争将更加激烈。目前国内外主流的游戏服务器框架诸如国外的KBEngine、SmartFoxServer以及国内网易公司的pomelo。KBEngine优点在于底层架构设计成多进程分布式动态负载均衡方案,可以通过不断扩展硬件增加承载上限。SmartFoxServer是专门为Adobe Flash设计的跨平台socket服务器。pomelo也是多进程、分布式的服务器架构,组件可扩展性较好。但这些服务器架构仅仅适用于特定的游戏类型,尤其在移动游戏应用上存在过于复杂的缺点。本文针对利用移动游戏《NBA梦之队》的服务器端开发进行了设计和实现。该游戏服务端针对移动网络游戏轻量、高IO访问、低逻辑复杂度的特点,利用Node.js的异步IO和事件驱动模式所对游戏服务端实现带来的便利,结合非关系数据库MongoDB和缓存方案Redis对数据存储及持久化的便捷支持,形成了一套轻量级移动游戏服务器开发解决方案。服务端具体实现大致可以抽象成网络通信层、数据缓存持久层和游戏逻辑层三层结构。网络通信层解决游戏网络连接通信的问题,确保客户端与服务器高效即时的通信。数据缓存持久层解决游戏的数据缓存与存储的问题,满足数据安全性的同时完成玩家数据的持久化过程。游戏逻辑层则具体处理了游戏所涉及的游戏逻辑计算,具体响应玩家对客户端的操作。逻辑层根据游戏功能划分为角色养成系统、战斗系统、社交系统以及引导系统。三层架构协同合作构成服务器端主体框架。目前,该游戏已经在各大主流市场上顺利运营。游戏服务器组运行性能良好,能够并发支持近万人进行游戏。游戏对玩家的操作响应快速高效,验证了该套服务端解决方案的可行性和正确性。