正在进行安全检测...
发布时间: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.1引言MMORPG即大规模多人在线角色扮演游戏川,对实时性地表上的植物或建筑等。在本文的方法中,对于场景采用了分层组织的模式,共分为地表层、地表物件层、物件层、障碍层和事件触发层5个层次。2.1地表层大地图面积巨大,一般在25600x19200分辨率左右,如果采用一张Jpeg图片作为背景地图的话,对机器的内存要求和数据同步性有较高的要求。所谓实时性,指的是网络游戏运行流畅,游戏玩家感觉不到因画面渲染或其他因素造成的延时。对于实时性要求,除了游戏硬件配置上必须达到一定的要求以外,还需要提高游戏客户端的渲染速度,而为了实现游戏客户端渲染速度的提高,则必须对需要渲染的游戏数据进行合理的数据组织。另外,游戏玩家的游戏数据是不断变化的,不同游戏玩家现实世界时间中同一时刻的游戏数据,可能对应到游戏世界时间中不同的时刻,所谓数据同步性是指不同游戏玩家之间在游戏世界中的游戏数据所处的时刻对应在现实世界中所处的时刻相同或尽量的逼近。网络游戏中,数据同步性的实现需要应尽量减少网络消息传输量,而为了实现这一目的,同样需要对游戏数据进行合理的组织。一般而言,最主要的游戏数据是指游戏场景数据。游戏场景包括游戏中的地图、物品、障碍、NPC和玩家等。采用合理的、优化的场景组织结构,无论对于提高游戏客户端的渲染速度,还是减少网络消息均有十分重要的意义。本文结合某具体网络游戏,提出了在网络环境下如何对超大规模场景进行组织的解决方案。2非常高,从工作效率和游戏程序角度讲,采用图元拼接的方式是最佳选择。为了能在游戏实时运行中取得良好的处理速度,必须在预处理阶段花费较长时间的准备工作。步骤如下:(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事件触发层3客户端渲染方式在遮挡裁减阶段,游戏的处理过程具体步骤如下:(1)将游戏中的图元和物件读人内存,并且根据物件对应的世界坐标将物件插入一个二维数组之中,这个二维数组是一个链表数组,该数组将整个场景网格化,其作用是为了遮挡裁减判定时,不必判定整个物件层的所有物体。具体示意如图5所示。浅色矩形为可见面区域,该区域大于显示屏幕,用于避免屏幕裁减错误。假设数组每个元素能代表的宽度单位为a,高度单位为b,整个世界场景宽度为W,高度为h,那么此二维数组可以表示如下:>>>>>>