论文部分内容阅读
近年来,伴随着科技的迅猛发展和计算机网络的日益普及,游戏产业得到了高速发展的机会。游戏产业从早期的单人非联网模式逐步发展成为大型多玩家在线游戏(MMOG, Massive Multiplayer Online Games)。特别是近10年,随着网络带宽的增加,愈来愈多的人选择网络游戏来作为一种新型娱乐方式。因此,提供良好的服务性能,保证网络游戏的实时性、顺畅性成为网络游戏的关键环节。而游戏服务器作为整个游戏的中心,负责整个游戏的运行,因此网络游戏服务器对于一款游戏而言起着重要作用。本文从AOI(Area Of Interest,兴趣区域)场景算法、负载均衡算法、分层设计等三个方面进行了分析和设计,并针对现有网络游戏服务器在以上三个方面存在的不足提出了新的算法和思路。主要研究内容和工作成果如下:1.针对传统的AOI场景算法存在计算量和同步数据量过大的问题,提出了一种改进型格子AOI算法。引入定时器机制,将进入AOI区域和离开AOI区域的对象分别放入不同的优先级队列中,利用定时器调度该优先级队列,并调用计算对象与对象之间距离的函数,从而减少AOI事件的计算。2.针对负载均衡中的一致性哈希算法的不足,提出了基于权重的一致性哈希算法。权重的引入使得一致性哈希算法可以考虑各个结点之间差异性,通过为实际结点分配不同数量的虚拟结点的方式来进行权重分配。本文还提出了一种运行过程中集群负载均衡转移算法,大大的增加了传统一致性哈希算法的实用性。3.针对网络游戏服务器架构实时性要求较高的特点,提出MCC(Model-Controller-Communication,模型—控制—通讯)分层模型。MCC分层模型的提出使得该架构具有高内聚低耦合的特点。层次更为清晰,同时也符合现代软件开发的标准。4.构建了一个分布式的网络游戏服务器架构,并对该架构中的各个服务器的工作流程和作用做出了说明。本文提出的架构是一种通用的游戏服务器架构,对于游戏服务器架构设计具有普遍意义。