专利名称:在线角色扮演网络游戏的视野处理系统和方法
技术领域:
本发明涉及一种图像处理技术,特别是一种在线角色扮演网络游戏的视野处理系统和方法。
背景技术:
随着互联网技术的不断发展,网络游戏逐渐取代单机游戏成为电脑游戏的主流,并且仍在高速发展中。其中大型多人在线角色扮演网络游戏(MMORPG,Massive Multiplayer Online Role-Playing Game)是目前最受广大玩家推崇的网络游戏形式。在MMORPG中通常会有很多游戏场景,在游戏场景中,每个玩家可以看到他附近的其他玩家的很多游戏行为,比如其他玩家的移动和战斗。举例如玩家扮演的角色Henry (相对于该玩家是主角)可以在场景中可以看到其他玩家,有的玩家在打坐有的玩家在奔跑,有的玩家骑着龙,有的玩家骑着虎。一个游戏场景要比玩家的显示屏大得多,玩家所能看到的只是他附近的这些玩家,而不是整个游戏场景。通常将玩家所能看到的范围称为玩家的视野。主角Henry自己位于自己视野的中心,每当主角Henry移动位置之后,玩家所能看到的视野可能将发生变化,有的玩家扮演的角色从自己的视野中消失了,而又有其他的玩家扮演的角色进入了玩家的视野(也就是Henry的视野)。作为网络游戏,MMORPG包括服务器和客户端,客户端负责将游戏场景的展现给玩家,服务器负责控制所有在线的玩家以及游戏逻辑的计算和处理,也就是说,玩家所能看到各种玩家角色和非玩家角色均是由该网络游戏的服务器控制的,服务器控制并管理着各玩家的视野。客户端和服务器之间通过收发游戏的数据消息,相互传递游戏的控制逻辑。目前MMORPG中的玩家的视野处理的惯用流程如图I所示,在玩家进入场景之前,先由客户端向服务器发送进入场景请求,服务器收到该请求信息后向客户端发送批准信息,即告诉玩家所在客户端可以进入场景;当玩家进入游戏场景后,服务器会告之该玩家的客户端,有哪些角色目前可以看到,如显示玩家A、显示玩家B以及显示玩家A携带的坐骑,客户端收到消息后,将这个角色显示出来,当有角色走远离开或下线不在游戏中时,服务器会通知客户端将已经显示的这个角色删除,如服务器向客户端发送玩家A下线需将其从视野中删除的信息。服务器控制着客户端的显示,因此可以理解为是客户端的眼睛。在MMORPG中,角色移动是游戏中最频繁的处理业务之一。角色移动会引发玩家自己的视野区域的变化,而玩家的视野区域如果变化,又会引发一系列的角色进入与角色离开的通知消息,服务器需要对角色移动后的玩家的视野区域重新进行计算和处理,这对服务器性能的影响是比较大的。采用这种玩家的视野的处理技术存在的弊端是,在MMORPG中,单台服务器的同时在线人数超过千人,服务器控制并管理着上千玩家的视野,或者说是管理着上千人的眼睛,并且需要实时的根据每个玩家位置的移动重新进行其视野的计算和处理,并及时告之客户端什么时候有角色进入,什么时候有角色离开,这种计算量和处理量是十分庞大的,尤其在线人数越多,服务器的计算量和数据处理量更大,使得服务器负荷过重造成其运算处理速度逐渐缓慢,从而导致服务器性能下降,进一步影响了各在线玩家在游戏时整体的视觉感受,造成玩家在游戏时画面不流畅、无法顺利进行游戏任务,使得玩家无法体验顺畅游戏的乐趣。为避免这些问题,通常在MMORPG中提高服务器配置以提升其综合性能,但这无疑提高了成本。
发明内容
本发明针对现有的MMORPG中的玩家的视野处理技术由于服务器的计算量和数据处理量庞大导致服务器性能下降而提高服务器配置又会导致成本高的问题,提供一种在线角色扮演网络游戏的视野处理系统,通过在玩家的视野区域变化的基础上进行视野的计算处理,能够减少服务器计算量和数据处理量,提高服务器性能,本发明还提供一种在线角色扮演网络游戏的视野处理方法。本发明的技术方案如下一种在线角色扮演网络游戏的视野处理系统,包括服务器和客户端,其特征在于,所述服务器包括依次连接的分配和存储模块、视野区域计算模块、检测模块、视野变化计算 模块以及服务器数据发送和处理模块,所述服务器还包括服务器数据库,所述服务器数据库分别与分配和存储模块、视野区域计算模块以及服务器数据发送和处理模块相连;所述客户端包括终端数据接收和处理模块,所述终端数据接收和处理模块与服务器数据发送和处理模块相连;所述分配和存储模块将整个场景划分为若干相同大小的视野单元格并进行标识,所述视野单元格存储位于其内的角色集合,所述视野区域计算模块将主角放入当前位置所属的视野单元格并根据客户端坐标触发位置计算玩家的视野区域,所述检测模块检测主角的移动是否带来其所在视野单元格的变化,当存在变化时,视野变化计算模块计算得到增加和减少的视野单元格区域,所述服务器数据发送和处理模块根据增加和减少的视野单元格区域内的角色变化情况向客户端的终端数据接收和处理模块发送控制指令,所述终端数据接收和处理模块接收所述控制指令并执行相应动作。所述分配和存储模块按照二维坐标系的坐标的方式标示各视野单元格;当所述视野单元格内的角色位于两相邻视野单元格的公共侧边时,所述角色属于两相邻视野单元格中处于左侧或上侧的视野单元格内。所述视野区域计算模块计算玩家的视野区域的大小是预设固定值并且所述玩家的视野以玩家所在位置为中心。所述视野变化计算模块根据主角移动前后所在的两视野单元格进行坐标差的几何计算得到增加和减少的视野单元格区域。所述服务器数据发送和处理模块调用服务器数据库后将增加的视野单元格区域内的角色进入的消息和减少的视野单元格区域内的角色离开的消息发送至客户端的终端数据接收和处理模块。所述视野区域计算模块与服务器数据发送和处理模块相连以进行玩家的视野初始化,在主角刚进入场景时,所述视野区域计算模块将计算的玩家的视野区域传输至服务器数据发送和处理模块,所述服务器数据发送和处理模块从服务器数据库中查找所述玩家的视野区域内的视野单元格内的角色,并向客户端的终端数据接收和处理模块发送查找到的角色进入玩家的视野的控制指令。一种在线角色扮演网络游戏的视野处理方法,其特征在于,所述方法通过服务器先将整个场景划分为若干相同大小的视野单元格并进行标识,以将整个场景中的各角色集合存储于所述视野单元格内,再将主角放入当前位置所属的视野单元格并根据客户端坐标触发位置计算玩家的视野区域,然后检测主角的移动是否带来其所在视野单元格的变化,当存在变化时就计算得到增加和减少的视野单元格区域,并根据增加和减少的视野单元格区域内的角色变化情况向客户端发送控制指令,客户端接收控制指令并执行相应动作。所述服务器按照二维坐标系的坐标的方式标示各视野单元格;当所述视野单元格内的角色位于两相邻视野单元格的公共侧边时,所述角色属于两相邻视野单元格中处于左侧或上侧的视野单元格内。所述服务器计算玩家的视野区域的大小是预设固定值并且所述玩家的视野以玩家所在位置为中心。所述服务器根据主角移动前后所在的两视野单元格进行坐标差的几何计算得到增加和减少的视野单元格区域。 所述服务器调用自身数据库后将增加的视野单元格区域内的角色进入的消息和减少的视野单元格区域内的角色离开的消息发送至客户端。在主角刚进入场景时先进行玩家的视野初始化,服务器在计算的玩家的视野区域后查找所述玩家的视野区域内的视野单元格内的角色,并向客户端发送查找到的角色进入玩家的视野的控制指令。本发明的技术效果如下本发明提供的在线角色扮演网络游戏的视野处理系统,在服务器中设置分配和存储模块、视野区域计算模块、检测模块、视野变化计算模块以及服务器数据发送和处理模块,通过分配和存储模块将整个场景划分为若干相同大小的视野单元格并通过调用服务器数据库中的数据使得场景中的各玩家扮演的角色被存储到各视野单元格中,设置检测模块检测主角的移动是否带来所在视野单元格的变化,只有当检测到视野单元格存在变化时才通过视野变化计算模块计算得到增加和减少的视野单元格区域,这样,服务器数据发送和处理模块只需要将增加和减少的视野单元格区域中的角色变化情况向客户端发送控制指令即可。本发明的视野处理系统通过分配和存储模块划分视野单元格,视野区域计算模块计算玩家的视野区域,检测模块、视野变化计算模块以及服务器数据发送和处理模块配合工作,使得玩家移动引发视野单元格的变化时仅针对变化的视野单元格区域的角色变化情况进行计算和处理,而当主角移动不会引发视野单元格的变化时,视野变化计算模块不工作即不进行视野单元格区域的变化计算,这样,在主角短距离移动不会引发视野单元格变化时服务器无需考虑其他角色是否进入和离开玩家的视野,也无需向客户端发送消息通知,而当主角长距离移动引发视野单元格变化时服务器只需计算变化的视野单元格区域内的角色变化情况即可,避免了现有技术中在玩家移动时需实时计算玩家视野区域内的所有角色变化情况带来的计算量和数据处理量庞大的问题,本发明在主角长距离移动时未变化的视野单元格区域以及主角短距离移动时服务器都不进行角色变化的计算和处理,所以能够减少服务器计算量和数据处理量,有效优化服务器的性能,并可提升MMORPG中同时在线人数,故降低了对服务器性能的要求,也无需再配备高成本高配置的服务器,使玩家顺畅网游。分配和存储模块按照二维坐标系的坐标的方式标示各视野单元格,使得分配和存储模块工作快速简单直观地完成视野单元格的标记,也使得后续的视野区域计算模块的工作变得简单易行,降低了其计算难度和计算量,提高了玩家的视野处理的效率。视野区域计算模块以玩家所在位置为中心并按照预设的固定值计算玩家的视野区域的大小,这样使得视野区域计算模块计算原理简单,提高了视野区域计算模块的工作效率,减少服务器计算量,同时也更符合了游戏设置时玩家自己位于自己视野的中心的原则。视野变化计算模块根据主角移动前后所在的两视野单元格进行坐标差的几何计算得到增加和减少的视野单元格区域,由于视野单元格是按照二维坐标系的坐标的方式表示,故主角移动前后所在视野单元格具有不同的坐标,只需将两视野单元格的坐标简单的 几何计算即可得到视野单元格变化的部分,即得到增加和减少的视野单元格区域,该计算简单快速,提高了视野变化计算模块的计算速度和信息处理速度,进一步提高了视野处理的效率。服务器数据发送和处理模块接收到视野变化计算模块得到的增加和减少的视野单元格区域后,调用服务器数据库,得到在增加的视野单元格区域内的角色进入的消息以及在减少的视野单元格区域内的角色离开的消息,并将该角色进入和角色离开的消息发送至客户端,这种只计算变化的视野单元格区域的处理方式减少了服务器计算量和数据处理量,使得服务器简单高效地实行视野的处理,并可以取得良好的视野处理效果,提高了服务器的性能。本发明涉及的在线角色扮演网络游戏的视野处理方法,通过服务器将整个场景划分为若干相同大小的视野单元格以支持在整个场景中选择一定区域的玩家,各玩家扮演的角色集合存储在所划分的各视野单元格内,通过检测主角的移动是否带来其所在视野单元格的变化,以决定是否进行视野单元格区域变化的计算,只有在视野单元格发生变化时,才进行视野单元格区域变化的计算,计算得到增加和减少的视野单元格区域并根据这些视野单元格区域内的角色变化情况向客户端发送控制指令,避免了玩家扮演的主角在移动时实时计算玩家全部视野区域内的角色的情况造成的计算处理量庞大的问题,玩家扮演的主角在移动但没发生视野单元格变化时不进行视野范围的计算,故玩家的视野内的角色的信息不变,即不会对自己和其他玩家扮演的角色产生角色进入或角色离开的信息,所以减少了信息传递量,玩家扮演的主角在移动并发生视野单元格变化时仅进行变化的视野单元格区域内的角色变化情况的处理,即仅对增加和减少的视野单元格区域内的角色变化产生信息,同样减少了信息传递量,本发明的所述方法减少服务器计算量和数据处理量,有效优化服务器的性能,并可提升MMORPG中同时在线人数。
图I为现有的在线角色扮演网络游戏中的玩家的视野处理的流程图。图2为本发明在线角色扮演网络游戏的视野处理系统的优选结构示意图。图3为本发明视野处理系统中的分配和存储模块以及视野区域计算模块的工作示意图。图4为本发明视野处理系统初始化流程图。图5为本发明视野处理系统中的检测模块检测主角的移动不会引起视野单元格变化时的工作示意图。
图6为本发明视野处理系统中的检测模块检测主角的移动引起视野单元格变化时的工作示意图。图7为本发明视野处理系统中的视野变化计算模块以及服务器数据发送和处理模块在图6所示状态发生时的工作流程图。图8为本发明在线角色扮演网络游戏的视野处理方法的流程图。图9为本发明在线角色扮演网络游戏的视野处理方法的优选流程图。图中各标号列示如下I 一整个场景;2 —玩家的视野;3 —视野单元格;4 一减少的视野单元格区域;5 —增加的视野单元格区域。
具体实施例方式下面结合附图对本发明进行说明。本发明涉及一种在线角色扮演网络游戏的视野处理系统,其优选结构示意图如图2所示,该视野处理系统包括服务器和客户端,其中,服务器包括分配和存储模块、视野区域计算模块、检测模块、视野变化计算模块、服务器数据发送和处理模块以及服务器数据库,分配和存储模块、视野区域计算模块、检测模块、视野变化计算模块以及服务器数据发送和处理模块依次连接,服务器数据库分别与分配和存储模块、视野区域计算模块以及服务器数据发送和处理模块相连,视野区域计算模块还优选与服务器数据发送和处理模块相连;客户端包括终端数据接收和处理模块,该终端数据接收和处理模块与服务器数据发送和处理模块相连。图3为分配和存储模块以及视野区域计算模块的工作示意图,图中标示为A、B、C、D、E、F、G和H等的人物均为MMORPG中的角色,其中标示D代表的人物是玩家扮演的角色,即主角D,其他人物是非玩家扮演的角色。整个场景I所示的区域块是单个游戏场景的区域大小。分配和存储模块将整个场景I划分为若干相同大小的视野单元格3并进行标识,各视野单元格3如图3所示的在整个场景I中用虚线划分的众多小格,分配和存储模块调用服务器数据库使得划分的视野单元格3存储当前位于视野单元格3内的角色集合,该实施例中的分配和存储模块按照二维坐标系的坐标的方式标示视野单元格3,比如整个场景I中最左上角的视野单元格在二维坐标系中标示为(1,I ),该视野单元格中存储两个角色A和B,而主角D位于(4,2)坐标的视野单元格中。如果有角色恰巧位于两相邻视野单元格的公共侧边的时候,则可设定此时该角色属于两相邻视野单元格中处于左侧或上侧的视野单元格内,以使得每个角色所属视野单元格是唯一确定的。
视野区域计算模块将主角放入当前位置所属的视野单元格并根据客户端坐标触发位置计算玩家的视野区域,客户端坐标触发位置即为玩家的位置,也就是主角D所处位置,视野区域计算模块是以玩家所在位置为中心计算玩家的视野区域,如标示2所示的区域块是主角D的视野,即玩家的视野。玩家的视野2的区域的大小优选为预设的固定值,该固定值可选择为通用的客户端的显示屏的大小,如预设采用15寸显示屏的大小作为玩家视野2的区域大小,此时如果有在线玩家所在客户端采用19寸的显示屏,则该玩家的视野也仅为15寸显示屏的视野,特别说明的是,所述的玩家的视野仅针对其他玩家或者玩家的坐骑等,并不包括花园、凉亭等场景背景,因为场景背景是静止不动的,玩家看到的场景背景以及玩家的移动带来的场景背景的变化只需采用简单的图像处理和显示技术。故即便客户端采用19寸的显示屏,玩家能够看到19寸的显示屏显示的场景背景,但是看到其他玩家以及其坐骑的情况仍为预设的15寸显示屏的大小的视野范围。如果主角D所处位置在左上角的视野单元格内,视野区域计算模块以主角D所在的位置为中心计算玩家的视野2,则计算得到的玩家的视野仅为图3所示玩家的视野区域大小的四分之一。视野区域计算模块优选与服务器数据发送和处理模块相连以进行玩家的视野初始化,初始化流程图如图4所示,客户端的终端数据接收和处理模块向服务器数据发送和处理模块发送数据信息以告知主角D请求进入游戏场景,服务器数据发送和处理模块再向客户端的终端数据接收和处理模块发送主角D可以进入场景的控制指令,在主角刚进入场景时,通过视野区域计算模块将主角D放入当前位置所属的视野单元格并根据客户端当前坐标触发位置计算玩家的视野区域,再由服务器数据发送和处理模块从服务器数据库中查找所述玩家的视野区域内的各视野单元格内的角色,如图3所示,数据发送和处理模块查 找玩家的视野区域内的视野单元格,再向查找到的这些视野单元格中的角色C、E和G所代表的玩家(或者说是玩家C、E和G)发送角色D进入场景的数据信息(对于玩家而言,自己扮演的角色为主角,主角D是针对扮演该角色的玩家而言,相对于扮演角色C、E和G的玩家,则称为角色D),同时向扮演主角D的客户端发送角色C、E和G进入玩家的视野的控制指令。在该流程中,由服务器向各客户端发送所述控制指令是因为视野是相互的,在角色D能看到角色C时,角色C同样也能看到角色D。本发明所述的视野处理系统中的检测模块检测主角D的移动是否带来其所在视野单元格的变化。当检测模块检测主角D的移动不会引起视野单元格变化时,也就是主角D在自己当前所属的视野单元格内移动,此时为主角D的短距离移动,如图5所示,主角D从位置I移动到位置2,在二维坐标系中主角D移动前后的位置I和位置2均位于坐标为(4,
2)的视野单元格中,此时视野变化计算模块不工作即不进行视野单元格区域的变化计算,由于任何玩家不需要关注自己的视野变化,因此此时不会对自己和其他玩家产生角色进入和离开的消息,减少了数据消息量。也就是说,当主角D短距离移动(在在自己当前所属的视野单元格内移动)不会引发视野单元格变化时服务器无需考虑其他角色是否进入和离开玩家的视野,也无需向客户端发送消息通知,所以减少了服务器计算量和数据处理量,有效优化服务器的性能。当检测模块检测主角D的移动引起视野单元格变化时,也就是主角D的移动路径跨跃了不同的视野单元格,此时为主角D的长距离移动,如图6所示,主角D从位置I移动到位置2,在二维坐标系中主角D从位置I所在的(4,2)坐标的视野单元格移动到位置2所在的(5,3)坐标的视野单元格中,此时视野变化计算模块计算得到增加和减少的视野单元格区域,在该实施例所示的二维坐标系中,视野变化计算模块只需将主角D移动前后所在的两视野单元格进行坐标差的简单快速的几何计算,如将(4,2)坐标的视野单元格与(5,
3)坐标的视野单元格直接作差,就可以计算出视野变化的部分,即得到增加和减少的视野单元格区域。该实施例可理解为玩家的视野区域在二维坐标系的两个坐标轴的方向各移动了一个视野单元格,即向右同时向下均移动了一个视野单元格。在图6所示实施例中,斜线所示区域即为视野变化计算模块计算得到的主角D离开的视野单元格区域,即减少的视野单元格区域4,网格所示区域即为视野变化计算模块计算得到的主角D进入的视野单元格区域,即增加的视野单元格区域5。服务器数据发送和处理模块根据增加和减少的视野单元格区域内的角色变化情况向客户端的终端数据接收和处理模块发送控制指令,所述终端数据接收和处理模块接收所述控制指令并执行相应动作。具体为,服务器数据发送和处理模块调用服务器数据库,得到增加的视野单元格区域内的角色进入的消息和减少的视野单元格区域内的角色离开的消息,该实施例中,服务器数据发送和处理模块得到减少的视野单元格区域4内的角色有角色C,增加的视野单元格区域5内的角色有角色F和H,服务器数据发送和处理模块仅对视野变化部分进行角色进入离开消息的通知以减少了消息量,即对于主角D移动引发的视野变化,服务器数据发送和处理模块只需要告诉角色C所扮玩家的客户端(或者说是玩家C)角色D离开,告诉角色F和H所扮玩家的客户端(或者说是玩家F和H)角色D进入即可,对于玩家所扮的主角D自身而言,服务器数据发送和处理模块只需向主角D所扮玩家的客户端的终端数据接收和处理模块发送角色C离开以及角色F和H进入的消息,即发送控制指令,该终端数据接收和处理模块接收到服务器数据发送和处理模块的控制指令并执行相应动作。 图7为本发明视野处理系统中的视野变化计算模块以及服务器数据发送和处理模块在图6所示状态发生时的工作流程图。客户端的终端数据接收和处理模块向服务器数据发送和处理模块发送数据信息以告诉服务器主角D从位置I变化为位置2,服务器数据发送和处理模块调用服务器数据库并刷新主角D在视野单元格中的位置,具体是将主角D从原来的视野单元格中移除同时将主角D添加到新的视野单元格中;检测模块检测到主角D位置的变化引起了视野单元格变化后,服务器中的视野变化计算模块计算得到增加和减少的视野单元格区域,即得到减少的视野单元格区域4和增加的视野单元格区域5,服务器数据发送和处理模块向位于减少的视野单元格区域4内的角色C发送主角D离开的控制指令,向客户端(该客户端所指为主角D所扮玩家的客户端)的终端数据接收和处理模块发送角色C离开的控制指令,即服务器告诉主角D角色C离开;服务器数据发送和处理模块还向位于增加的视野单元格区域5内的角色F和H发送主角D进入的控制指令,向客户端(该客户端所指为主角D所扮玩家的客户端)的终端数据接收和处理模块发送角色F和H进入的控制指令,即服务器告诉主角D角色F和H进入;所述终端数据接收和处理模块接收到服务器数据发送和处理模块的控制指令并执行相应动作。在图7所示流程中,服务器数据发送和处理模块是先处理减少的视野单元格区域4的角色离开的数据信息,再处理增加的视野单元格区域5内的角色进入的数据信息;当然,服务器数据发送和处理模块也可以更换数据信息处理的先后顺序,先处理增加的视野单元格区域5内的角色进入的数据信息,再处理减少的视野单元格区域4的角色离开的数据信息。需要说明的是,针对各角色的移动,月艮务器在进行数据处理时是有先后顺序的,当进行主角D移动的视野处理时,其他玩家为静止状态。本发明还涉及一种在线角色扮演网络游戏的视野处理方法,该方法的流程图如图8所示,通过服务器先将整个场景划分为若干相同大小的视野单元格并进行标识,以将整个场景中的各角色集合存储于所述视野单元格内,再将主角放入当前位置所属的视野单元格并根据客户端坐标触发位置计算玩家的视野区域,在主角发生移动时先调用服务器数据库并更新主角移动后在视野单元格中的位置,然后检测主角的移动是否带来其所在视野单元格的变化,当存在变化时就计算得到增加和减少的视野单元格区域,并根据增加和减少的视野单元格区域内的角色变化情况向客户端发送控制指令,客户端接收控制指令并执行相应动作。本发明所述的MMORPG的视野处理方法的优选流程图如图9所示,在该实施例中,服务器在标示视野单元格时优选按照二维坐标系的坐标的方式进行标示,可参考图3所示的示意图,在整个场景I中用虚线划分的众多格子即为标示后的视野单元格3,各视野单元格3用于存储当前位于格子内的各角色集合,如主角D位于(4,2)坐标的视野单元格中,角色C位于(2,2)坐标的视野单元格中,角色A和B集合于(I,I)坐标的视野单元格中,如果有角色恰巧位于两相邻视野单元格的公共侧边的时候,为使角色所属视野单元格唯一确定,则可设定此时该角色属于其中的一个视野单元格,如设定该角色属于两相邻视野单元格中处于左侧或上侧的视野单元格内。图9所示流程中,客户端向服务器发送主角D请求进入游戏场景的请求时,服务器向客户端发送主角D可以进入场景的控制指令,在主角刚进入场景时服务器根据客户端坐 标触发位置所在的坐标计算出玩家所在的视野单元格,将玩家加入到该视野单元格中并更新服务器数据库,服务器将主角D放入当前位置所属的视野单元格后根据客户端坐标触发位置计算玩家的视野区域,如图3标示2所指的区域即为玩家的视野2的区域,该区域的大小可以是预设固定值,玩家的视野2以主角D所在位置为中心。服务器在计算得到玩家的视野区域后可以进行玩家的视野初始化,即服务器查找在玩家的视野区域内的视野单元格内的角色C、E和G,并向客户端发送查找到的角色C、E和G进入玩家的视野的控制指令。当然,服务器也会向角色C、E和G的各客户端发送角色D进入场景的数据信息。该视野处理方法若主角D无移动则视野处理技术结束,若主角D发生移动时,可以先调用服务器数据库并刷新主角D在视野单元格中的位置,然后本发明所述视野处理方法需检测主角D的移动是否带来其所在视野单元格的变化,若检测模块检测主角D的移动不会引起视野单元格变化时,即主角D在自己当前所属的视野单元格内移动(短距离移动),可以参考图5,此时不进行视野单元格区域的变化计算,由于任何玩家不需要关注自己的视野变化,因此此时不会对自己和其他玩家产生角色进入和离开的消息,减少了数据消息量。若检测模块检测主角D的移动引起了视野单元格变化时,即主角D的移动路径跨跃了不同的视野单元格(长距离移动),可以参考图6,此时服务器根据主角移动前后所在的两视野单元格进行坐标差的几何计算得到玩家的视野变化的部分,即可到减少的视野单元格区域4和增加的视野单元格区域5。服务器调用自身数据库后将增加和减少的视野单元格区域内的角色变化情况告诉客户端,即向客户端发送角色变化情况的控制指令,图6所示实施例是将减少的视野单元格区域4内的角色C离开的消息和增加的视野单元格区域5内的角色F和H进入的消息发送至客户端,客户端接收控制指令并执行相应动作。本发明的MMORPG的视野处理方法通过划分为若干相同大小的视野单元格以支持在整个场景中选择一定区域的玩家,通过检测主角的移动是否带来其所在视野单元格的变化,以决定是否进行视野单元格区域变化的计算,减少主角短距离移动(不会带来视野单元格的变化)时玩家的视野的区域内产生的角色进入和角色离开玩家的视野的数据信息的通知,主角长距离移动(发生视野单元格变化)时仅对变化的视野单元格区域内的角色变化情况进行处理,即此时仅对增加和减少的视野单元格区域内的角色变化产生信息,同样减少了数据信息处理量,本发明的视野处理方法能够在很大程度上减少服务器的计算量和数据处理量,有效优化服务器的性能,并可提升MMORPG中同时在线人数。需要特别说明的是,在本发明MMORPG的视野处理系统和方法中,如图3、图5和图6所示的实施例描述的玩家的视野2的区域恰好是整数倍的视野单元格,这是为了更直观地说明本发明所述的视野处理系统和方法,在实际情况中,由于玩家的视野是根据玩家所在客户端坐标触发位置,并以该玩家所在位置为中心,按照预设的固定值来计算的,所以计算后的玩家的视野的区域大小并不一定是整数倍的视野单元格,但这并不影响服务器对后续的视野单元格区域的变化的计算以及对该变化的视野单元格区域内的角色变化情况的处理。应当指出,以上所述具体实施方式
可以使本领域的技术人员更全面地理解本发明创造,但不以任何方式限制本发明创造。因此,尽管本说明书参照附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换,总之,一切不脱离本发明创造的精神和范围的技术方案及其改进,其均应涵 盖在本发明创造专利的保护范围当中。
权利要求
1.一种在线角色扮演网络游戏的视野处理系统,包括服务器和客户端,其特征在于,所述服务器包括依次连接的分配和存储模块、视野区域计算模块、检测模块、视野变化计算模块以及服务器数据发送和处理模块,所述服务器还包括服务器数据库,所述服务器数据库分别与分配和存储模块、视野区域计算模块以及服务器数据发送和处理模块相连;所述客户端包括终端数据接收和处理模块,所述终端数据接收和处理模块与服务器数据发送和处理模块相连;所述分配和存储模块将整个场景划分为若干相同大小的视野单元格并进行标识,所述视野单元格存储位于其内的角色集合,所述视野区域计算模块将主角放入当前位置所属的视野单元格并根据客户端坐标触发位置计算玩家的视野区域,所述检测模块检测主角的移动是否带来其所在视野单元格的变化,当存在变化时,视野变化计算模块计算得到增加和减少的视野单元格区域,所述服务器数据发送和处理模块根据增加和减少的视野单元格区域内的角色变化情况向客户端的终端数据接收和处理模块发送控制指令,所述终端数据接收和处理模块接收所述控制指令并执行相应动作。
2.根据权利要求I所述的视野处理系统,其特征在于,所述分配和存储模块按照二维坐标系的坐标的方式标示各视野单元格;当所述视野单元格内的角色位于两相邻视野单元格的公共侧边时,所述角色属于两相邻视野单元格中处于左侧或上侧的视野单元格内。
3.根据权利要求I所述的视野处理系统,其特征在于,所述视野区域计算模块计算玩家的视野区域的大小是预设固定值并且所述玩家的视野以玩家所在位置为中心。
4.根据权利要求2所述的视野处理系统,其特征在于,所述视野变化计算模块根据主角移动前后所在的两视野单元格进行坐标差的几何计算得到增加和减少的视野单元格区域。
5.根据权利要求4所述的视野处理系统,其特征在于,所述服务器数据发送和处理模块调用服务器数据库后将增加的视野单元格区域内的角色进入的消息和减少的视野单元格区域内的角色离开的消息发送至客户端的终端数据接收和处理模块。
6.根据权利要求I至5之一所述的视野处理系统,其特征在于,所述视野区域计算模块与服务器数据发送和处理模块相连以进行玩家的视野初始化,在主角刚进入场景时,所述视野区域计算模块将计算的玩家的视野区域传输至服务器数据发送和处理模块,所述服务器数据发送和处理模块从服务器数据库中查找所述玩家的视野区域内的视野单元格内的角色,并向客户端的终端数据接收和处理模块发送查找到的角色进入玩家的视野的控制指令。
7.—种在线角色扮演网络游戏的视野处理方法,其特征在于,所述方法通过服务器先将整个场景划分为若干相同大小的视野单元格并进行标识,以将整个场景中的各角色集合存储于所述视野单元格内,再将主角放入当前位置所属的视野单元格并根据客户端坐标触发位置计算玩家的视野区域,然后检测主角的移动是否带来其所在视野单元格的变化,当存在变化时就计算得到增加和减少的视野单元格区域,并根据增加和减少的视野单元格区域内的角色变化情况向客户端发送控制指令,客户端接收控制指令并执行相应动作。
8.根据权利要求7所述的视野处理方法,其特征在于,所述服务器按照二维坐标系的坐标的方式标示各视野单元格;当所述视野单元格内的角色位于两相邻视野单元格的公共侧边时,所述角色属于两相邻视野单元格中处于左侧或上侧的视野单元格内。
9.根据权利要求7所述的视野处理方法,其特征在于,所述服务器计算玩家的视野区域的大小是预设固定值并且所述玩家的视野以玩家所在位置为中心。
10.根据权利要求8所述的视野处理方法,其特征在于,所述服务器根据主角移动前后所在的两视野单元格进行坐标差的几何计算得到增加和减少的视野单元格区域。
11.根据权利要求10所述的视野处理方法,其特征在于,所述服务器调用自身数据库后将增加的视野单元格区域内的角色进入的消息和减少的视野单元格区域内的角色离开的消息发送至客户端。
12.根据权利要求7至11之一所述的视野处理方法,其特征在于,在主角刚进入场景时先进行玩家的视野初始化,服务器在计算的玩家的视野区域后查找所述玩家的视野区域内的视野单元格内的角色,并向客户端发送查找到的角色进入玩家的视野的控制指令。
全文摘要
本发明提供一种在线角色扮演网络游戏的视野处理系统和方法,该系统包括服务器和客户端,服务器包括依次连接的分配和存储模块、视野区域计算模块、检测模块、视野变化计算模块以及服务器数据发送和处理模块,服务器还包括服务器数据库,服务器数据库分别与分配和存储模块、视野区域计算模块以及服务器数据发送和处理模块相连;客户端包括终端数据接收和处理模块,终端数据接收和处理模块与服务器数据发送和处理模块相连。该系统通过在玩家的视野区域变化的基础上进行视野的计算处理,能够减少服务器计算量和数据处理量,提高服务器性能。
文档编号G06F19/00GK102819680SQ20121027060
公开日2012年12月12日 申请日期2012年7月31日 优先权日2012年7月31日
发明者刘恒立 申请人:北京天神互动科技有限公司