论文摘要
网络游戏是一种依靠计算机网络作为通信方式的典型的分布式系统,它具有信息双向交流、速度快、不受空间限制等优势,从根本上提高了游戏的互动性、仿真性和竞技性,近年来受到众多商家和社会各个阶层人士的重视。当前商业化的MMOG(巨量多玩家网络游戏,Massively Multiplayer Online Games)通常采用C/S模式,由服务器保存共享状态信息和协调玩家之间的通信,客户端只是一个接收命令的终端系统。其伸缩性面临着体系结构本身带来的固有的限制,致使网络游戏系统受限于服务器的计算能力,不能支持大量的玩家。为了解决服务器的计算和带宽瓶颈问题,通常采用服务器集群或网格技术以支持一定的伸缩性。但是,这种提供伸缩性的代价往往是高昂的。P2P作为一种分布式计算模式可以提供很好的伸缩性,它可以将终端系统的资源边缘化,弱化甚至是消除传统服务器的功能。P2P覆盖网络的自组织特性使创建一个动态适应玩家数量变化的网络游戏系统成为可能。但是,由于玩家有限的运动速度和感知能力,基于P2P的MMOG和如文件共享等其它的P2P应用不同,它的内容搜索在很大程度上局部化在一个AOI(兴趣域,Area of Interest)之内。由于网络游戏独特的局部性需求,现有的P2P覆盖网络方案都不能很好的支持MMOG。因此,如何构建一个适合于MMOG的、可伸缩的P2P覆盖网络架构成为近年来网络游戏中研究的热点问题。本文立足于网络游戏的伸缩性和局部性需求,在深入研究分析了国内外关于支持MMOG的P2P覆盖网络方案的基础上,主要完成了以下几个方面的工作:1提出一种支持MMOG的P2P覆盖网络架构SPOAR(scalable P2P overlay architecture)在结构化P2P覆盖网络方案分级设计的基础上采用基于MANET的非结构化的P2P节点拓扑组织方案来维护节点在游戏世界的邻居拓扑及进行邻点发现,从而使SPOAR覆盖网络架构在保证全局连通性的同时提高系统局部通信的效率。2提出基于SPOAR的拓扑一致性算法和容错实现机制由于玩家频繁的加入和离开,使MMOG和其它的典型的P2P应用相比具有更多的动态性。本文针对SPOAR覆盖网络架构动态拓扑管理,给出了拓扑一致性算法和针对协调者的容错实现机制。3提出基于SPOAR的分布式事件分发机制本文分析了网络游戏中的对象类型以及对象之间的交互,并针对MMOG中对象间交互产生的事件,提出一种基于SPOAR覆盖网络的分布式事件分发算法,进而实现游戏状态的一致性。实验表明SPOAR覆盖网络架构在保持全局连通性的同时提高了局部通信的效率,具有较好的伸缩性。SPOAR的拓扑一致性算法和容错实现机制能够较好的适应MMOG的动态性。此外,基于SPOAR的分布式事件分发算法能够在较大的程度上降低协调者负载,在保证较低多播延迟的情况下在很大程度上减小了消息冗余。