正在进行安全检测...

发布时间:2023-11-05 23:58:49

电脑编程技巧与维护MMORPG超大地图中的场景数据组织宋桂岭1,明安龙2(1.淮安信息技术学院,淮安223003;2.北京邮电大学,北京100876)摘要:大规模多人玩在线角色扮演的游戏时存在两个需要解决的基本问题:实时性和数据同步。当游戏中使用超大地图时,这两个问题尤其难以解决。为此,本文提出了一种基于分层组织的场景数据组织方法,对于场景中的物体,分成了地表层、地表物件层、物件层、障碍层和事件触发层进行数据组织。本方法满足网络数据处理的实时性和同步性要求。关键词:多人在线网络游戏;场景;数据组织TheScene'sDataManagementinMapswithBigSizesofMMORPGSONGGl删,MI/q6Arao,1l产223003;(1.Huaian2.BeijingCollegeofInformationTechnology,Huai7anUniversityofPostsandTelecommunications,Beijing100876)Abstract:TwobasicproblemsinmassivelymuhiplayeronlineRPG(RolePlavGames)wouldbesolved:thereal—timecha卜acteranddatasynchronization.胁enmapswithbigsizesusedingame,thesetwoproblemsespeciallydifficult.Thusinthispaper.amethodoftheaccordingtofivelayers:thesurface,thesurface—object,theobject,theobstacleandtheevent-trigger.,I'11eproposedmethodsuppliesthedatamanagementisproposed.Wedealwiththeobjectsinmapsdemandofreal—timecharacteranddatasynchronization.Thegame”Theromanceoffairy2”onlinehasadaptedthemethod.TheKeyoperationresultofthisgameillustratesthemethodiSeriective.words:MMORPG:scene;datamanagement.引言MMORPG即大规模多人在线角色扮演游戏川,对实时性地表上的植物或建筑等。在本文的方法中,对于场景采用了分层组织的模式,共分为地表层、地表物件层、物件层、障碍层和事件触发层5个层次。2.1地表层大地图面积巨大,一般在25600x19200分辨率左右,如果采用一张Jpeg图片作为背景地图的话,对机器的内存要求和数据同步性有较高的要求。所谓实时性,指的是网络游戏运行流畅,游戏玩家感觉不到因画面渲染或其他因素造成的延时。对于实时性要求,除了游戏硬件配置上必须达到一定的要求以外,还需要提高游戏客户端的渲染速度,而为了实现游戏客户端渲染速度的提高,则必须对需要渲染的游戏数据进行合理的数据组织。另外,游戏玩家的游戏数据是不断变化的,不同游戏玩家现实世界时间中同一时刻的游戏数据,可能对应到游戏世界时间中不同的时刻,所谓数据同步性是指不同游戏玩家之间在游戏世界中的游戏数据所处的时刻对应在现实世界中所处的时刻相同或尽量的逼近。网络游戏中,数据同步性的实现需要应尽量减少网络消息传输量,而为了实现这一目的,同样需要对游戏数据进行合理的组织。一般而言,最主要的游戏数据是指游戏场景数据。游戏场景包括游戏中的地图、物品、障碍、NPC和玩家等。采用合理的、优化的场景组织结构,无论对于提高游戏客户端的渲染速度,还是减少网络消息均有十分重要的意义。本文结合某具体网络游戏,提出了在网络环境下如何对超大规模场景进行组织的解决方案。非常高,从工作效率和游戏程序角度讲,采用图元拼接的方式是最佳选择。为了能在游戏实时运行中取得良好的处理速度,必须在预处理阶段花费较长时间的准备工作。步骤如下:(1)制作基本图元。所谓基本图元,是指草地、雪地、土地、沙地等。(2)制作过渡图元。过渡图元指草地到沙地,草地到雪地,雪地到土地等种种过渡情况。(3)给基本图元和过渡图元编号,建立基本图元与过渡图元之间的对应关系,只有确定了这种对应关系,才能实现一种基本图元到另一种基本图元之间的平滑过渡。例如,假设由草地向土地过渡,只有草地和土地之间有过渡图元,草地到土地之间的过渡才能自然,图l左面的四张图片可以清楚地反映出草地到土地的自然过渡,之后在过渡图元的邻接网格内可以继续绘制基本图元。(4)拼接基本地形。根据(3)确定的各个图元之间的对应关系,来拼接基本地形。因为基本图元和过渡图元之间均超大地图场景数据组织游戏中的场景包含地图的地表(如草地,河流)以及在本文收稿13期:2009—1—1I有编号对应,所以可以实现场景的拼接。一82一万方数据
ARTIFICIALINTELLIGENCEANDIDENTIFICATIONTECHNIQUES人工智能及识别技术图l用来拼截地表地形的图元2.2地表物件层对于悬崖、河流、桥梁等,仅用基本的图元拼接,效果十分单调。因此,需要使用特殊的地形块,该地形块是预先定义好的图像,并且需要建立基本图元、过渡图元和地形块之间的对应关系。特殊地形如图2所示。特殊地形放置结束后,整个游戏地表就确立下来了,将游戏地表按一定格式保存下来,就可以在实时渲染时绘制地表层。图2特殊地形至于具体的图元编号、特殊地形编号、供渲染引擎使用的数据组织结构、可以根据不同情况采用不同的方法。最简列,程序启动时进行预先读取地表的排列顺序,保存方式可以采用二维数组。物件层是指独立于地表的房屋、墙壁等物体要放置的层形,并且在预处理时避免物件间底面四边形的交叉,这样实时绘制时的消隐算法将十分简单,可采用画家算法。物件层放置于地表层上,在数据组织结构上,保存了其底面四边形的四个顶点信息。图3物件层万方数据2.4障碍层场景中的物体既有房屋、墙壁等高障碍,也存在花坛、河流等矮障碍。图4用不同颜色表示了地图中的障碍信息。同样,这些信息只是为了在场景预编辑时作为标识用,该信息也会以一定文件结构被预先存储。图4障碍层2.5事件触发层在地图相关文件中保存了事件触发层信息,作用是用来进行场景间的切换以及特殊事件的触发,如图5所示。当玩家走到该区域时,在客户端,可以预先读取下一个地图的场景,从而实现地图的无缝连接,同时将消息发送到服务器端,切换地图服务器。事件触发层在预处理阶段采用平行四边形的表示方式,这样在游戏系统实时处理中,点是否在多边形内的判定问题得到了简化。在事件触发层的数据文件中,需要保存平行四边形的四个顶点的坐标,以及对应于事件层的游戏脚本文件名。图5事件触发层客户端渲染方式在遮挡裁减阶段,游戏的处理过程具体步骤如下:(1)将游戏中的图元和物件读人内存,并且根据物件对应的世界坐标将物件插入一个二维数组之中,这个二维数组是一个链表数组,该数组将整个场景网格化,其作用是为了遮挡裁减判定时,不必判定整个物件层的所有物体。具体示意如图5所示。浅色矩形为可见面区域,该区域大于显示屏幕,用于避免屏幕裁减错误。假设数组每个元素能代表的宽度单位为a,高度单位为b,整个世界场景宽度为W,高度为h,那么此二维数组可以表示如下:一83—单的一种图元编号方法是采用文件名编号法,而地形数据组织结构则可以采用二维网格方式,将所有图片按对应位置排2.3物件层次,如图3所示。可以将物件的底边多边形简化为平行四边
电脑编程技巧与维护ObjListWorldObjTable[w/a】[h/b】;(2)根据当前主角的世界坐标,判定地图场景的可见部分。此时地图的大小有25600xi9200,所以确定游戏的可见视口(ViewPort)十分重要。(3)根据主角坐标,将主角视野范围内的图元(Tile)读取到图元绘制链表中。(4)根据主角坐标.在图6所示的二维数组中查找相关的物件链表信息。定位二维数组索引方式如下(假设数组一维为行数,’二维为列数)将主角的x坐标与数组一维行数求余,即可得数组的行索引;将主角的Y坐标与数组二维列数求余,即可得数组的列索引;然后在该索引的基础上在横向、纵向均查找±l或±2个单位即可。在信息找到之后,即可将静态物件插入到相关绘制链表中。对于场景中的动态物体,则在动态物体出现、移动等事件发生时,执行从二维数组链表中的移除、插入等操作。图6二维数组4结果分析本方案应用在了实际网络游戏项目《f山侣奇缘笏版本中,该项目目前已经正式收费运营。从图形渲染角度来看,该项目实现了预定的目标,保证了渲染效果的实时性,从消息传输来看,基本实现了传输流量的最小化。4.1数据组织结构4.1.1服务器端场景数据组织结构根目录结构,与场景相关的内容包括地图服务器、地图目录和事件目录,如图7所示。图7服务器端场景数据组织Map目录结构,由地图文件,npc列表和障碍列表组成,如图8所示。图8Map目录——84——万方数据4.1.2客户端场景数据组织结构客户端文件较多,BMP文件存放小地图,Jpeg文件存放大地图的缩略图,NPC文件存放NPC列表,OBJ文件存放物件列表,OBS文件存放地图障碍信息,til存放图元拼接信息,如图9所示。图9客户端场景数据组织结构4.2结果在游戏的内测、公测阶段已经证实,有的玩家机器只有Intel赛扬1.0GB,256MB内存,他们自然被高端配置的游戏拒之门外,因此以上解决方案和算法具有很强的实用性,可以给游戏带来更广泛的用户。游戏运行时内存使用情况如图10所示。图10游戏运行时内存使用情况结语在网络游戏中,很多游戏玩家坐在一个局域网环境中一起访问远程服务器游戏。因此对于游戏的同步性要求很高,本方案结合了作者参与的实际项目,提出了一种合理的场景组织结构,配合场景预处理技术,可以满足网络游戏处理的同步性要求,也能满足客户端图形渲染的实时性需要,在网络游戏领域具有广泛的应用价值。参考文献[I]叶丁,叶展.游戏的设计与开发[M].人民交通出版社,航空工业出版社,2007.[2]王鑫,罗金海,赵千里.PC游戏编程(网络游戏篇)[M].清华大学出版社。重庆大学出版社,2003.[3]缘夙之,超大地图MMORPG的场景管理【C/OL].http://publishblog.blogchina.com/blog/tb.b?diarylD=2509241,2005.7.基金项目国家“八六三”高技术研究发展计划(2006AA012304).作者简介宋桂岭,男(1978一)(满族),河北省承德市人,淮安信息职业技术学院教师,讲师、工程师,硕士,主要研究领域为计算机图形学、多媒体系统。明安龙,男(1979一)(汉族),博士,主要研究领域为多媒体。系统、模式识别、网格计算。
MMORPG超大地图中的场景数据组织作者:作者单位:刊名:英文刊名:年,卷(期:被引用次数:宋桂岭明安龙SONGGuilingMINGAnlong宋桂岭,SONGGuiling(淮安信息技术学院,淮安,223003明安龙,MINGAnlong(北京邮电大学,北京,100876电脑编程技巧与维护COMPUTERPROGRAMMINGSKILLS&MAINTENANCE2009,""(80次1.叶丁.叶展游戏的设计与开发20072.王鑫.罗金海.赵千里PC游戏编程(网络游戏篇20033.缘夙之超大地图MMORPG的场景管理20051.学位论文左强网络游戏程序设计中的负载均衡2006在网络游戏的研发领域,尤其是在“大型多人在线角色扮演”(MMORPG类网络游戏的研发过程中,如何利用有效的负载均衡方法来解决服务器过载的问题,一直困扰着服务器程序的研发人员。本文试图通过一个简化的网络游戏服务器模型,来给出一种解决上述问题的方法。本文主要分为三个部分,第一部分绪论,主要介绍了网络游戏市场发展和研发技术发展的现状。第二部分网络游戏服务器的负载均衡,从程序设计的角度出发,给出了一个解决服务器过载问题的方案。该部分分别从客户端、通讯、世界服务器、场景服务器的角度进行了详细的设计和实现,并且给出了关键的实现代码。第三部分给出了上述方案的运行结果和数据分析,并加以总结,通过分析程序的运行结果,从数据上证实了本文第二部分所给出的方案是正确可行的。在本文对网络游戏负载均衡方面的理论和实践探索中,采取了设计模式当中的多个思想和方法,并充分应用了完成端口(IOCP技术以及多线程技术的理论与实现技巧,最终,通过可视化的模型达成了预期目标。本文通过对这一简化模型的研究,为日后更进一步的高效率实现大型多人在线网络游戏的网络底层和负载均衡的优化,提供了有力的依据和基础。并且,通过这一技术的应用,可以有效的降低对服务器组的配置和数量要求,有效的降低了运营大型多人在线网络游戏的硬件成本。本文链接:http://d.g.wanfangdata.com.cn/Periodical_dnbcjqywh200908033.aspx授权使用:万方数据测试账号(wanfangtest,授权号:7c81c1a1-3436-45a2-ac17-9e2500b80116下载时间:2010年11月5日

正在进行安全检测...

相关推荐