CN111111187B - 基于网格的在线游戏寻路方法和装置 - Google Patents
基于网格的在线游戏寻路方法和装置 Download PDFInfo
- Publication number
- CN111111187B CN111111187B CN201911186960.0A CN201911186960A CN111111187B CN 111111187 B CN111111187 B CN 111111187B CN 201911186960 A CN201911186960 A CN 201911186960A CN 111111187 B CN111111187 B CN 111111187B
- Authority
- CN
- China
- Prior art keywords
- current
- point
- jump
- obstacle
- path
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/53—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
- A63F13/537—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
- A63F13/5378—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen for displaying an additional top view, e.g. radar screens or maps
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Radar, Positioning & Navigation (AREA)
- Physics & Mathematics (AREA)
- Optics & Photonics (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于网格的在线游戏寻路方法和装置,S101,执行游戏运行指令,加载游戏地图文件,读取所述游戏地图文件的地图规格信息和障碍区域数据,地图内非障碍区域的坐标点集合即为可行走区域;S102,根据游戏世界中动态生成的障碍信息,计算动态障碍区数据;S103,根据地图障碍区域数据和动态障碍区域数据计算出当前游戏世界下的实时障碍区域数据;S104,根据路径搜索指令,获取路径在游戏世界坐标系下的起点坐标和终点坐标,根据起点坐标、终点坐标、地图内障碍区域信息及动态障碍区域信息,确定移动路径。本发明所消耗的平均时间为使用A*算法时间的1/93,效率提升了93倍。
Description
技术领域
本发明涉及互联网在线游戏寻路领域,尤其是涉及基于网格的在线游戏寻路方法和装置。
背景技术
伴随着5G时代的到来,游戏用户对大型多人在线游戏的延迟性有了更加严格的要求。由于游戏内容的丰富,游戏地图的膨胀,游戏的实时寻路业务因其自身的CPU密集属性便成了低延时游戏要面对的一个难题。因此一个高效的寻路方法是决定5G时代大型多人在线游戏成败的先决条件和关键因素。
目前,大部分游戏采用两种寻路方法:一种是基于NavMesh的寻路方法,一种是基于A*的寻路方法。
NavMesh寻路效果准确,但CPU消耗过大,且通常无法用于大型多人在线游戏,目前主要用于单机游戏或允许客户端自行计算路径的场景。
基于A*的寻路方法实现简单,在近距离寻路效率尚可,因此绝大多数大型多人在线游戏采取A*算法,但该算法在用于面积较大或者阻挡较多的地图情况时,随着寻路距离越大,效果衰减越明显,性能急剧下降,CPU消耗急剧上升,由此带来很大的延迟性。对于有动态障碍生成的地图,比如盖起一座大楼,宫殿的大门关闭等情况,原本可达的路径会变得不可达,需要根据动态障碍计算真实的可达路径,这就使得解决动态障碍下的寻路会更进一步消耗CPU资源。因此,对于采用A*算法寻路的游戏,根据动态障碍计算路径会让延迟变得不可接受,无法真实的模拟现实世界,大大降低了游戏的代入感和体验感。
发明内容
本发明目的在于提供一种基于网格的在线游戏寻路方法,本发明另一目的是提供基于网格的在线游戏寻路装置。
为实现上述目的,本发明采取下述技术方案:
本发明所述基于网格的在线游戏寻路方法,包括下述步骤:
S101,执行游戏运行指令,加载游戏地图文件,读取所述游戏地图文件的地图规格信息和障碍区域数据,地图内非障碍区域的坐标点集合即为可行走区域;其中,游戏地图文件用于保存地图的大小和所述障碍区域数据,所述障碍区域数据为对美术地图信息进行预处理所得到,为游戏世界坐标系下障碍点对应的坐标点集合;
S102,根据游戏世界中动态生成的障碍信息,计算动态障碍区数据;所述动态障碍区为所处游戏世界中动态出现的障碍物所占的区域对应的坐标点集合;
S103,根据地图障碍区域数据和动态障碍区域数据计算出当前游戏世界下的实时障碍区域数据,进而计算出实时可行走区域,所述可行走区域为游戏世界内无障碍的坐标点集合;
S104,根据路径搜索指令,获取所述路径在游戏世界坐标系下的起点坐标和终点坐标,根据所述的起点坐标、终点坐标、地图内障碍区域信息及动态障碍区域信息,确定移动路径。
本发明所述基于网格的在线游戏寻路装置,包括以下模块:
障碍区域数据获取模块,用于获取游戏运行指令,加载游戏地图文件,读取地图规格和障碍区域数据;地图内非障碍区域的坐标点集合即为可行走区域;其中,所述游戏地图文件用于保存地图的大小和障碍区域数据;所述障碍区域数据为对美术地图信息进行预处理所得到,障碍区域包含障碍点所处游戏世界坐标系下的坐标点;
动态障碍信息获取模块,用于获取游戏世界内实时产生的动态障碍数据,将动态障碍所覆盖的游戏世界坐标点集合设置为动态障碍区域数据;
实时可行走区域获取模块,用于根据所述地图障碍区域数据和所述动态障碍区域数据,计算出当前地图可行走区域;所述可行走域为游戏世界内无障碍的坐标点集合;
移动路径确定模块,用于根据路径搜索指令,获取所述路径在游戏世界坐标系下的起点坐标和终点坐标,根据所述的起点坐标、终点坐标、地图内障碍物信息及动态障碍信息,确定移动路径。
本发明根据游戏玩家发出的移动路径的寻找指令中的起点坐标、终点坐标和预存的障碍区域数据以及动态障碍区域数据,确定移动路径;与现有技术相比,具有以下优点:
1、计算效率大幅度提高,使用基于网格的寻路比赛(GPPC,The Grid-Based PathPlanning Competition)专用地图测试,使用本方法所消耗的平均时间为使用A*算法时间的1/93,效率提升了93倍;
2、更快的效率提供了更低的延时,提升了大型多人在线游戏的实时性;
3、支持动态障碍下的寻路,能够模拟更复杂、更真实的世界,也为游戏设计者提供了更广阔的设计空间。
附图说明
图1是本发明实施例1所述寻路方法的流程图。
图2是本发明实施例2所述寻路方法的流程图。
图3是本发明实施例3所述所述寻路装置的结构示意图。
具体实施方式
下面结合附图对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述实施例。
实施例1:
本实施例可适用于游戏角色寻找移动路径的过程中情况,本方法可以由一种游戏寻路装置来执行,该装置可以由软件和/或硬件的方式来实现。
如图1所示,该方法包括下述步骤:
S101,执行游戏运行指令,加载游戏地图文件,读取地图规格和障碍区域数据;其中,游戏地图文件保存地图的大小和障碍区域数据,所述障碍区域数据为对美术地图信息进行预处理所得到,地图内除去障碍区域即为可行走区域;地图数据可以进行位压缩,节省内存的同时可以在水平移动时通过位操作快速获取跳点所在位置;地图数据旋转90度后可以在垂直方向移动时通过位操作快速获取跳点所在位置。
所述游戏运行指令为可以使游戏启动指令;游戏地图文件为游戏地图的具体信息,包含地图边界坐标点、不可走坐标点,根据地图文件信息生成地图障碍数据;地图中非障碍区域的坐标集合即为可行走区域,游戏角色进行移动时只能在可走区域中寻找路径。
S102,获取游戏世界内实时产生的动态障碍数据,将动态障碍所覆盖的游戏世界坐标点集合设置为动态障碍区域数据;例如在可行走区域中创建一座建筑物,则该建筑物所覆盖的区域对应的坐标集合就是动态障碍区域数据。
S103,根据地图障碍区域数据和动态障碍区域数据计算出当前游戏世界下的实时障碍区域数据,根据实时障碍区域数据计算出实时可行走区域;所述实时可行走域为游戏世界内无障碍的坐标点集合。
S104,根据路径搜索指令,获取所述路径在游戏世界坐标系下的起点坐标和终点坐标,根据所述的起点坐标、终点坐标、地图内障碍物信息及动态障碍信息确定移动路径。
路径搜索指令通常由游戏玩家发出;路径搜索指令包括移动路径的起点坐标、终点坐标和移动路径开始运算指令;移动路径计算指令用于驱动运算操作的开始。
实时可行走区域坐标集合组成一个统一消耗(Uniform-Cost)网格,运算操作开始时,所述方法从起点所在网格开始计算,并逐一对相关方向的单元格进行检测运算,进而获取到移动路径。
实施例2:
本实施例在实施例1的基础上,进一步阐述了在实时可行走区域内计算路径的运算操作,如图2所示,该方法包括:
S201,将起点加入到openset中,所述起点为路径搜索指令传入的起点数据,所述openset是保存待确定方向的跳点集合。所述跳点的定义为:
1)如果节点n是x的邻居,且节点n的邻居有障碍,并且parent(x),x,n的路径长度比其他任何从parent(x)到n且不经过x的路径短,其中parent(x)为路径中x的前一个点,则n为x的强迫邻居,x为n的跳点。
2)如果x为起点或者是终点,则x为跳点。
3)如果从parent(x)到x为对角线移动,且x经过水平或者垂直方向移动可以到达跳点,则x为跳点。
S202,寻找openset中F值最小的点,设为current;所述F值计算方法为F=G+H,所述G为起点到current节点的距离,所述H为current到终点的距离估算值,H的距离值可以使用曼哈顿距离计算、欧氏距离或者切比雪夫距离计算,也可以使用其他预估算法。
S203,判断current是否为终点,如果为终点则返回路径,执行步骤S215完成寻路;如果不是终点,则执行S204。
S204,将current从openset中删除,加入到closeset中;所述closeset为关闭跳点的集合,保存所有已经计算过的跳点。
S205,判断current当前的搜索方向,如果是直线方向,则依次按照步骤S206-S208搜索跳点,如果是对角线方向,则依次执行步骤S209-S211搜索跳点,由于地图信息数据使用了位压缩技术,可以快速批量寻找跳点。
S206,直线移动情况下,如果current左后方不可走且左方可走,则沿current左前方和左方寻找不在closeset中的跳点。
S207,直线移动情况下,如果current当前方向可走,则沿current当前方向寻找不在closeset中的跳点。
S208,直线移动情况下,如果current右后方不可走且右方可走,沿current右前方和右方寻找不在closeset中的跳点。
S209,对角线移动情况下,如果current当前方向的水平方向可走,则沿current当前方向的水平方向寻找不在closeset中的跳点。
S210,对角线移动情况下,如果current当前方向可走,则沿current当前方向寻找不在closeset中的跳点。
S211,对角线移动情况下,如果current当前方向的垂直方向可走,则沿current当前方向的垂直方向寻找不在closeset中的跳点。
S212,经步骤S205-S211找到的跳点,判断是否已经在openset中。
S213,如果该跳点不在openset中,则加入到openset,跳转到步骤S202,再次执行循环体逻辑。
S214,如果该跳点在openset中,比较经current到跳点的G值与经原父节点到该跳点的G值比较大小,如果经current的G值更小,说明为更近的路径,将该跳点的父节点设置为current;更新父节点后跳转到步骤S202,再次执行循环体逻辑。
最终找到终点后,跳转到步骤S215,由终点依次遍历父节点直到起点,即为搜索到的路径。
本实例的技术方案,通过地图数据的位压缩和旋转,可以通过位运算快速定位沿当前移动方向的下一个跳点所在位置,有效减少了不必要的子路径搜索和计算,进而快速高效的得到游戏角色的移动路径。
实施例3:
如图3所示,是本发明提供的一种所述游戏寻路装置的结构示意图,该游戏寻路装置包括:S301静态障碍区域获取模块,S302动态障碍区域获取模块,S303可行走区域获取模块, S304移动路径确定模块。
S301静态障碍区域获取模块,用于获取游戏运行指令,从游戏地图数据文件读取地图的规格和障碍区域数据。
进一步的,所属装置还包括:
地图信息初始化模块,用于加载地图数据文件,其中所述游戏地图数据文件预存有地图的规格和障碍点对应坐标集合组成的障碍区域数据,该模块在加载地图数据时,会在游戏世界坐标系下,按照水平方向由左到右,垂直方向由上到下创建地图数据结构,每个坐标对应1bit,默认设置为1表示为非障碍,根据游戏地图文件保存的障碍信息,将所有障碍坐标点对应的位信息设置为0并标识为障碍,在水平方向移动时,可以通过位操作快速获取跳点所在位置。
地图旋转初始化模块,为了对垂直方向的移动也能够通过位操作快速获取跳点所在位置,需要将地图信息初始化模块保存的地图数据结构顺时针旋转90度;通过此模块,能将原地图垂直方向移动转置为旋转地图的水平方向移动,进而通过位操作快速获取跳点所在位置。
S302动态障碍区域获取模块,用于当游戏世界内产生动态障碍时,生成动态障碍信息;其中所述动态障碍可以为游戏世界中任何占据一定坐标区域的物体,例如建筑物、大型植物等等;进一步的,该装置还包括:
动态障碍物信息获取模块,用于在产生动态障碍物时,获取该障碍物所占据的游戏世界坐标系下的坐标点集合。
动态障碍地图初始化模块,与S301模块的地图信息初始化模块类似,将该障碍物占据的坐标点合集进行水平方向由左到右,垂直方向由上到下的位压缩,以便在水平方向移动时,通过位操作快速获取跳点所在位置。
动态障碍旋转初始化模块,与S301模块的地图旋转初始化模块类似,动态障碍地图数据结构顺时针旋转90度,以便在垂直方向移动时,通过位操作快速获取跳点所在位置。
S303可行走区域获取模块,用于将模块S301产生的静态障碍地图数据和模块S302产生的动态障碍地图数据合并处理,生成当前实时可行走区域;进一步的,该装置还包括:
实时可行走区域生成模块,基于S301的地图信息初始化模块和S302动态障碍地图初始化模块的数据,生成实时可行走区域数据,用于水平方向移动时,通过位操作快速获取跳点所在位置。
实时可行走区域旋转生成模块,基于S301的地图旋转初始化模块和S302动态障碍旋转初始化模块的数据,生成实时可行走区域顺时针旋转90度后的数据,用于垂直方向移动时,通过位操作快速获取跳点所在位置。
S304移动路径确定模块,通过获取到的路径搜索指令,根据起点和终点以及S303模块生成的实时可行走区域数据,计算最终路径。
本发明实施例的技术方案,根据游戏玩家发出移动路径的寻找指令中的起点坐标、终点坐标和计算的可行走区域数据确定移动路径,解决了现有的寻路算法中计算效率低下且无法根据动态障碍计算实时路径的问题。不仅提高了计算路径的性能,而且利用预存障碍区域数据并进行位压缩,在节省内存的同时,更通过位运算快速计算寻路跳点,减少了动态寻路的计算量,进而快速高效的得到游戏角色的移动路径。
本发明实施例所提供的游戏寻路装置可以用于执行本发明实施例所提供的游戏寻路方法,具备相应的功能和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的游戏寻路方法。
注意,上述仅为本发明的较佳实施例以及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对于本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (2)
1.一种基于网格的在线游戏寻路方法,其特征在于:包括下述步骤:
S101,执行游戏运行指令,加载游戏地图文件,读取所述游戏地图文件的地图规格信息和障碍区域数据,地图内非障碍区域的坐标点集合即为可行走区域;其中,游戏地图文件用于保存地图的大小和所述障碍区域数据,所述障碍区域数据为对美术地图信息进行预处理所得到,为游戏世界坐标系下障碍点对应的坐标点集合;
S102,根据游戏世界中动态生成的障碍信息,计算动态障碍区数据;所述动态障碍区为所处游戏世界中动态出现的障碍物所占的区域对应的坐标点集合;
S103,根据地图障碍区域数据和动态障碍区域数据计算出当前游戏世界下的实时障碍区域数据,进而计算出实时可行走区域,所述可行走区域为游戏世界内无障碍的坐标点集合;
S104,根据路径搜索指令,获取所述路径在游戏世界坐标系下的起点坐标和终点坐标,根据所述的起点坐标、终点坐标、地图内障碍区域信息及动态障碍区域信息,确定移动路径;
所述移动路径的运算操作具体为:
S201,将起点加入到openset中,所述起点为路径搜索指令传入的起点数据,所述openset是保存待确定方向的跳点集合;所述跳点的定义为:
1)如果节点n是x的邻居,且节点n的邻居有障碍,并且parent(x),x,n的路径长度比其他任何从parent(x)到n且不经过x的路径短,其中parent(x)为路径中x的前一个点,则n为x的强迫邻居,x为n的跳点;
2)如果x为起点或者是终点,则x为跳点;
3)如果从parent(x)到x为对角线移动,且x经过水平或者垂直方向移动可以到达跳点,则x为跳点;
S202,寻找openset中F值最小的点,设为current;所述F值计算方法为F=G+H,所述G为起点到current节点的距离,所述H为current到终点的距离估算值,H的距离值可以使用曼哈顿距离计算、欧氏距离或者切比雪夫距离计算,也可以使用其他预估算法;
S203,判断current是否为终点,如果为终点则返回路径,执行步骤S215完成寻路;如果不是终点,则执行S204;
S204,将current从openset中删除,加入到closeset中;所述closeset为关闭跳点的集合,保存所有已经计算过的跳点;
S205,判断current当前的搜索方向,如果是直线方向,则依次按照步骤S206-S208搜索跳点,如果是对角线方向,则依次执行步骤S209-S211搜索跳点,由于地图信息数据使用了位压缩技术,可以快速批量寻找跳点;
S206,直线移动情况下,如果current左后方不可走且左方可走,则沿current左前方和左方寻找不在closeset中的跳点;
S207,直线移动情况下,如果current当前方向可走,则沿current当前方向寻找不在closeset中的跳点;
S208,直线移动情况下,如果current右后方不可走且右方可走,沿current右前方和右方寻找不在closeset中的跳点;
S209,对角线移动情况下,如果current当前方向的水平方向可走,则沿current当前方向的水平方向寻找不在closeset中的跳点;
S210,对角线移动情况下,如果current当前方向可走,则沿current当前方向寻找不在closeset中的跳点;
S211,对角线移动情况下,如果current当前方向的垂直方向可走,则沿current当前方向的垂直方向寻找不在closeset中的跳点;
S212,经步骤S205-S211找到的跳点,判断是否已经在openset中;
S213,如果该跳点不在openset中,则加入到openset,跳转到步骤S202,再次执行循环体逻辑;
S214,如果该跳点在openset中,比较经current到跳点的G值与经原父节点到该跳点的G值比较大小,如果经current的G值更小,说明为更近的路径,将该跳点的父节点设置为current;更新父节点后跳转到步骤S202,再次执行循环体逻辑;
最终找到终点后,跳转到步骤S215,由终点依次遍历父节点直到起点,即为搜索到的移动路径。
2.一种基于网格的在线游戏寻路装置,其特征在于,包括以下模块:
障碍区域数据获取模块,用于获取游戏运行指令,加载游戏地图文件,读取地图规格和障碍区域数据;地图内非障碍区域的坐标点集合即为可行走区域;其中,所述游戏地图文件用于保存地图的大小和障碍区域数据;所述障碍区域数据为对美术地图信息进行预处理所得到,障碍区域包含障碍点所处游戏世界坐标系下的坐标点;
动态障碍信息获取模块,用于获取游戏世界内实时产生的动态障碍数据,将动态障碍所覆盖的游戏世界坐标点集合设置为动态障碍区域数据;
实时可行走区域获取模块,用于根据所述障碍区域数据和所述动态障碍区域数据,计算出当前地图可行走区域;所述可行走区域为游戏世界内无障碍的坐标点集合;
移动路径确定模块,用于根据路径搜索指令,获取所述路径在游戏世界坐标系下的起点坐标和终点坐标,根据所述的起点坐标、终点坐标、地图内障碍物信息及动态障碍信息,确定移动路径;
所述移动路径的运算操作具体为:
S201,将起点加入到openset中,所述起点为路径搜索指令传入的起点数据,所述openset是保存待确定方向的跳点集合;所述跳点的定义为:
1)如果节点n是x的邻居,且节点n的邻居有障碍,并且parent(x),x,n的路径长度比其他任何从parent(x)到n且不经过x的路径短,其中parent(x)为路径中x的前一个点,则n为x的强迫邻居,x为n的跳点;
2)如果x为起点或者是终点,则x为跳点;
3)如果从parent(x)到x为对角线移动,且x经过水平或者垂直方向移动可以到达跳点,则x为跳点;
S202,寻找openset中F值最小的点,设为current;所述F值计算方法为F=G+H,所述G为起点到current节点的距离,所述H为current到终点的距离估算值,H的距离值可以使用曼哈顿距离计算、欧氏距离或者切比雪夫距离计算,也可以使用其他预估算法;
S203,判断current是否为终点,如果为终点则返回路径,执行步骤S215完成寻路;如果不是终点,则执行S204;
S204,将current从openset中删除,加入到closeset中;所述closeset为关闭跳点的集合,保存所有已经计算过的跳点;
S205,判断current当前的搜索方向,如果是直线方向,则依次按照步骤S206-S208搜索跳点,如果是对角线方向,则依次执行步骤S209-S211搜索跳点,由于地图信息数据使用了位压缩技术,可以快速批量寻找跳点;
S206,直线移动情况下,如果current左后方不可走且左方可走,则沿current左前方和左方寻找不在closeset中的跳点;
S207,直线移动情况下,如果current当前方向可走,则沿current当前方向寻找不在closeset中的跳点;
S208,直线移动情况下,如果current右后方不可走且右方可走,沿current右前方和右方寻找不在closeset中的跳点;
S209,对角线移动情况下,如果current当前方向的水平方向可走,则沿current当前方向的水平方向寻找不在closeset中的跳点;
S210,对角线移动情况下,如果current当前方向可走,则沿current当前方向寻找不在closeset中的跳点;
S211,对角线移动情况下,如果current当前方向的垂直方向可走,则沿current当前方向的垂直方向寻找不在closeset中的跳点;
S212,经步骤S205-S211找到的跳点,判断是否已经在openset中;
S213,如果该跳点不在openset中,则加入到openset,跳转到步骤S202,再次执行循环体逻辑;
S214,如果该跳点在openset中,比较经current到跳点的G值与经原父节点到该跳点的G值比较大小,如果经current的G值更小,说明为更近的路径,将该跳点的父节点设置为current;更新父节点后跳转到步骤S202,再次执行循环体逻辑;
最终找到终点后,跳转到步骤S215,由终点依次遍历父节点直到起点,即为搜索到的移动路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911186960.0A CN111111187B (zh) | 2019-11-28 | 2019-11-28 | 基于网格的在线游戏寻路方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911186960.0A CN111111187B (zh) | 2019-11-28 | 2019-11-28 | 基于网格的在线游戏寻路方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111111187A CN111111187A (zh) | 2020-05-08 |
CN111111187B true CN111111187B (zh) | 2023-07-14 |
Family
ID=70496915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911186960.0A Active CN111111187B (zh) | 2019-11-28 | 2019-11-28 | 基于网格的在线游戏寻路方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111111187B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113877208A (zh) * | 2020-07-03 | 2022-01-04 | 上海莉莉丝科技股份有限公司 | 游戏对象寻路方法、装置及计算机可读存储介质 |
CN111744197B (zh) * | 2020-08-07 | 2022-03-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN112107863B (zh) * | 2020-08-28 | 2024-04-12 | 王梓岩 | 一种游戏地图生成模型构建方法、存储介质及系统 |
CN112221143B (zh) * | 2020-10-09 | 2022-07-15 | 腾讯科技(深圳)有限公司 | 一种控制虚拟对象移动的方法、装置及存储介质 |
CN112396697B (zh) * | 2020-11-20 | 2022-12-06 | 上海莉莉丝网络科技有限公司 | 游戏地图内区域生成方法、系统及计算机可读存储介质 |
CN112870720A (zh) * | 2021-03-09 | 2021-06-01 | 网易(杭州)网络有限公司 | 游戏中的寻路方法、装置、存储介质及计算机设备 |
CN116943201A (zh) * | 2022-04-18 | 2023-10-27 | 深圳市腾讯网域计算机网络有限公司 | 寻路数据的生成方法、寻路方法以及计算机设备 |
CN115487498A (zh) * | 2022-08-05 | 2022-12-20 | 网易(杭州)网络有限公司 | 游戏的显示控制方法、装置和电子设备 |
CN116036601B (zh) * | 2023-01-28 | 2023-06-09 | 腾讯科技(深圳)有限公司 | 游戏处理方法、装置及计算机设备、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106582023A (zh) * | 2016-12-01 | 2017-04-26 | 北京像素软件科技股份有限公司 | 一种游戏寻路方法和装置 |
CN107744663A (zh) * | 2017-10-19 | 2018-03-02 | 广州爱九游信息技术有限公司 | 人工智能ai单位的寻路方法及装置 |
CN108444482A (zh) * | 2018-06-15 | 2018-08-24 | 东北大学 | 一种无人机自主寻路避障方法及系统 |
CN110180182A (zh) * | 2019-04-28 | 2019-08-30 | 腾讯科技(深圳)有限公司 | 碰撞检测方法、装置、存储介质及电子装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593546B (zh) * | 2012-08-17 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 一种无动态阻挡网络游戏系统及其处理方法 |
-
2019
- 2019-11-28 CN CN201911186960.0A patent/CN111111187B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106582023A (zh) * | 2016-12-01 | 2017-04-26 | 北京像素软件科技股份有限公司 | 一种游戏寻路方法和装置 |
CN107744663A (zh) * | 2017-10-19 | 2018-03-02 | 广州爱九游信息技术有限公司 | 人工智能ai单位的寻路方法及装置 |
CN108444482A (zh) * | 2018-06-15 | 2018-08-24 | 东北大学 | 一种无人机自主寻路避障方法及系统 |
CN110180182A (zh) * | 2019-04-28 | 2019-08-30 | 腾讯科技(深圳)有限公司 | 碰撞检测方法、装置、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111111187A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111111187B (zh) | 基于网格的在线游戏寻路方法和装置 | |
CN106582023B (zh) | 一种游戏寻路方法和装置 | |
JP5767760B2 (ja) | 動的障害物のないネットワークゲームシステム及びその処理方法 | |
US11615090B2 (en) | Method, apparatus and system for determining accessible paths between two nodes | |
CN104613976B (zh) | 确定路径的方法及装置 | |
CN108444490B (zh) | 基于可视图和a*算法深度融合的机器人路径规划方法 | |
CN107952243B (zh) | 路径确定方法及装置 | |
CN111714892A (zh) | 游戏寻路方法及装置、存储介质、计算机设备 | |
CN112370788A (zh) | 游戏中虚拟对象的导航方法及电子设备 | |
Yakovlev et al. | Grid-based angle-constrained path planning | |
KR20190121388A (ko) | 객체 이동 방법 및 장치, 저장 매체 및 전자 장치 | |
CN113018866A (zh) | 地图资源的加载方法和装置、存储介质、电子装置 | |
CN116036604B (zh) | 数据处理方法、装置、计算机及可读存储介质 | |
CN110136165A (zh) | 一种基于自适应鲸鱼优化的突变运动目标跟踪方法 | |
CN112197783B (zh) | 一种考虑车头指向的两阶段多抽样的rrt路径规划方法 | |
CN115779424B (zh) | 一种导航网格寻路方法、装置、设备及介质 | |
Harabor et al. | Path Symmetries in Undirected Uniform-Cost Grids. | |
Rahmani et al. | Improvements to hierarchical pathfinding for navigation meshes | |
CN115957505A (zh) | 游戏中的寻路方法、装置、计算机设备及可读存储介质 | |
CN116009552A (zh) | 一种路径规划方法、装置、设备及存储介质 | |
Brand et al. | Parallel ripple search–scalable and efficient pathfinding for multi-core architectures | |
CN114610026A (zh) | 集中式汽车充电站接入配电网的线路规划方法、系统及介质 | |
CN113797543A (zh) | 游戏处理方法、装置、计算机设备、存储介质及程序产品 | |
CN111359204A (zh) | 一种手机游戏场景的渲染方法、装置及移动终端 | |
CN104801044A (zh) | 生成轨迹线顶点序列的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 705A, 6th Floor, Building 4, District 3, Courtyard 3, No. 22, Jinghai 4th Road, Economic and Technological Development Zone, Daxing District, Beijing 102600 Applicant after: Play Heart (Beijing) Network Technology Co.,Ltd. Applicant after: Ma Zongji Address before: Room 1201, Block A, Fuma Building, Yard No. 33, Guangshun North Street, Chaoyang District, Beijing 100000 Applicant before: Playcenter (Shanghai) Network Technology Co.,Ltd. Applicant before: Ma Zongji |
|
GR01 | Patent grant | ||
GR01 | Patent grant |