System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及一种网络游戏地图路径搜索方法,特别涉及一种网络游戏区块链路地图时空高效路径搜索方法,属于网游地图搜索。
技术介绍
1、当前网络游戏特别是手游高速发展,如果仅依靠重复单一的打怪升级模式和单调而又简陋的图像画质,已经无法吸引玩家的注意。唯有提高游戏的可玩性以及服务器运转性能才能提高玩家黏性。对于一款游戏而言,人工智能控制系统在游戏中起着的作用日益凸显。而对于游戏中的人工智能控制系统来说,游戏场景中的路径搜索系统又是最基本的系统之一。由于游戏中的地图从一开始最早的封闭式地图再到无缝开放式的地图发展,游戏地图越做越大,导致标准的寻路算法很难满足一款高质量游戏的运转需求。
2、现有技术大多数游戏路径搜索系统,很难做到高效与准确这两个性能并存。在一个动态的大型地图中,问题表现为游戏人物在行走过程中极大地偏离目标位置或游戏人物在去往目的地的过程中,游戏人物因算法运算性能较差而产生的走走停停。更严重的是,明显可达目的地而寻路搜索系统判定寻路失败情形。在同样都确定能得出准确路线的搜索路径系统,能否满足可靠性、高效性、可行性、逼真性,是判定搜索路径系统好坏的标准。
3、游戏搜索路径算法所遇到难题,以及搜索路径算法在最终路径优劣上的衡量标准,都在指引着一款高质量游戏的发展方向。一种高效而又准确的搜索路径系统能给玩家带来真实且流畅的游戏体验,对于实际游戏算法的优化起着积极作用。
4、在地图类游戏的开发中,路径搜索算法是最根本和最重要的部分,找到一条正确无误的路径也是游戏人物的一项必备技能。当游戏地图逐渐趋于
5、盲目式搜索路径算法不考虑问题本身特征的无信息式搜索算法,由于不考虑结点信息的蛮力搜索式算法,所以在时间和空间的两方面效率都极其低下,一般只能用于处理简单问题。当游戏的地图逐渐变得愈加复杂时,游戏地图中的结点愈发增多,而盲目式搜索算法处理起来力不从心。启发式搜索算法给解决复杂地图提供了一个新思路。
6、但启发式搜索算法在解决大型游戏地图的寻路问题时,其性能依然难以令人满意。其中的启发式区块搜索寻路算法,首先将大地图均匀的切分成若干个小地图,再通过将抽象结点设置在小地图的方式上,连接多个抽象结点进而形成多个抽象联通图,最后再在抽象联通图上进行启发式搜索算法来找出最佳路径。但由于启发式区块搜索算法在预处理和在线寻路阶段,均未将地图的障碍结点信息考虑在内,而只是进行简单而又生硬的划分。虽然能在一定程度上减少判断的时间,但容易造成不必要的时空浪费,阻碍了寻路搜索效率的进一步提高。
7、除上述问题和缺陷外,本申请需要解决的问题和关键技术难点还包括:
8、(1)标准的启发式搜索算法的open表所使用的逻辑结构不能高效的查找键值最小的结点,使用启发式搜索算法进行路径检索时,需要针对open表进行频繁的插入结点、查询结点以及删除结点操作,均会涉及到对表内信息反复读取和排序。如果open表的逻辑结构不当,则这些操作容易耗费大量的时间和空间。由于需要对open表中所有结点的键值信息进行比较之后,才能得出表中的估算值最小结点。所以,是否能选到合适的排序算法尤为关键。选择的目标旨在找到能减少对于open表的查询次数之余还能提高每次查询最小键值结点的效率,从而使得路径规划算法能够达到地图游戏中对于实时性的要求,进而提高玩家的满意度以及用户黏性。
9、(2)按值查询open表效率低下,如果想确定下一个遍历的结点,则需要将当前结点的八个方向上的结点都逐个进行判断,再决定对这些结点的进一步操作。其中,如果该结点并非为障碍结点,则需要根据open表中进行查询是否该结点已然存在,再来决定下一步的操作步骤。即在扩展下一结点这一步骤时,需要不断反复地在open表中进行按值查询结点的操作。而标准的启发式搜索算法中,open表的逻辑结构采用的是队列。无论是选择链表队列还是数组队列这两种存储方式中的任意一种,其按值查询的效率都为o(n),查询效率不高。即便是将open表的逻辑结构由队列变为更能方便查询最小键值的最小二叉堆后,按值查询的效率也仅是由o(n)提升为o(logn),依然存在提升空间。把open表进行按值查询操作的时间复杂度降至o(1)是本申请的目标之一。
10、(3)启发函数不能很好的满足高强度的寻路需求,启发函数能决定通过启发式搜索算法选取路径的成功与否,如果选择了恰当的启发函数,不仅能使游戏中的人物正确的朝着目标前行,还能使搜索路径过程顺畅而毫无阻碍即计算时间短而不出现卡顿。如果没找到合适的启发函数,则容易导致最终的搜寻结果并非最优路径,且在搜寻过程中效率极低,甚至搜寻出的路径与最优路径相去甚远。启发函数在计算上的难易程度由游戏地图中的启发信息总量决定,当启发函数复杂,则容易导致其所需的启发信息增多,增加计算量。但复杂的启发函数对结点信息筛选的条件更加严苛,排除的无效结点也自然更多,进而也能加快搜寻路径的效率。所以,如何平衡搜索精确度与搜索速度之间的矛盾,是游戏开发中躲不开的难题。在标准启发式搜索算法中,使用的是基于欧几里得距离的启发函数。算法虽然在执行上简单,并且从长度来看是最短的。但在游戏场景当中,游戏角色的行走往往不能按照直线路径。所以,通过欧几里得距离来计算起始结点到目的结点之间的距离与游戏人物的实际行走容易差别较大,实用性不强。相对于欧几里得距离函数,采用曼哈顿距离函数作为启发函数更具有实用价值。但曼哈顿距离在计算两点之间的距离时,只是简单的将其横坐标与纵坐标的绝对值之和相加。在真实的游戏地图中,游戏角色是可以朝着当前结点的八个方向前进的。在曼哈顿距离中,如果游戏角色要到达斜对角的结点时,只能先进行水平方向上的移动,再进行竖直方向上的移动。这样的移动方式不仅规划路线效率不高,而且过于生硬的行走方式就游戏的真实度而言,效果也不好,不能给玩家带来较为真实的游戏体验。
11、(4)当游戏地图规模较大时,现有技术在寻路过程中均没能将地图中的结点信息考虑在内。并且当障碍物疏密程度不一样时,即使是同一个算法的寻路性能也差异较大,难以达到实时性水平。标准启发式搜索算法与盲目搜索算法中的迪杰斯特拉算法的时间复杂度都较高,在处理大型地图的寻路问题时的效率难以令人满意,一味地将地图均匀地四分切割,并没有将地图中的障碍结点信息考虑在内,使得该算法在处理大面积非障碍结点地图之时,搜索路径的效率极为低下;在分区时只把起始结点与目标结点考虑在内,容易导致其它分区的寻路速度慢,而且过多的扩展结点也会造成时间上的浪费。在线寻路阶段均采用标准的启发式搜索算法,整个寻路算法的局限性表现在两个方面,一是在真是游戏场景中,障碍结点所占比例并不高,即大部分分区是空白区域,而在空白区域上使用启发式搜索算法实则效率低下且完全没有必要;二是标准的启发式搜索算法本身就有存在有待提升的方面。搜索路径系统无法满足可靠性、高效性、可行性、逼真性的需求。<本文档来自技高网...
【技术保护点】
1.网络游戏区块链路地图时空高效路径搜索方法,其特征在于,基于启发式区块搜索算法在预处理、在线寻路以及所使用的启发式搜索算法三个方面分别进行优化,包括基于向量迭代余弦的启发式优化搜索算法、基于地图信息链路启发式区块搜索优化算法;
2.根据权利要求1所述网络游戏区块链路地图时空高效路径搜索方法,其特征在于,优化OPEN表逻辑结构:基于启发式搜索算法需要反复从OPEN表中选取最键值小值并将其删除的这一特征,采用最小二叉堆迭代逻辑结构来处理OPEN表中的结点信息,父结点的键值总是不小于其左右孩子的键值,并且每一个结点的子树又都满足于最小二叉堆的条件,如此递归定义满足搜寻OPEN表并寻得最小启发函数值的需求,采用最小二叉堆迭代逻辑结构来处理OPEN表中各个数据之间的关系,高效获取表中的键值最小值和删除表中键值最小的结点;包括添加新链路结点和删除键值最小的结点。
3.根据权利要求1所述网络游戏区块链路地图时空高效路径搜索方法,其特征在于,基于向量迭代余弦距离的启发函数:
4.根据权利要求1所述网络游戏区块链路地图时空高效路径搜索方法,其特征在于,基于地图
5.根据权利要求1所述网络游戏区块链路地图时空高效路径搜索方法,其特征在于,所需系数设置:子区域障碍结点所占比δ是该子区域内障碍物结点所占总结点的比例,定义如式7:
6.根据权利要求1所述网络游戏区块链路地图时空高效路径搜索方法,其特征在于,子区域的划分:首先将地图平均分成四等分,终止条件中考虑具体当前子区域上的结点信息,终止条件与临界值β和障碍结点占比δ相关,且根据这二参数的相对大小分三种情形:
7.根据权利要求1所述网络游戏区块链路地图时空高效路径搜索方法,其特征在于,子区域的抽象化:分为对地图划分、形成抽象图以及在线寻路三个步骤,抽象结点位于相邻子区域的连通口上,在算法开始前设置一个临界值,当连续的连通结点个数小于这一临界值时,则选择中间的连通结点作为关键点;而当连续的结点个数大于这一临界值时,选择两边的结点作为关键点;先将同一子区域内的关键结点相连,再将相邻子区域的关键点相连,则形成最终的抽象连通图,完成预处理。
8.根据权利要求1所述网络游戏区块链路地图时空高效路径搜索方法,其特征在于,在线寻路:
9.根据权利要求1所述网络游戏区块链路地图时空高效路径搜索方法,其特征在于,寻路过程预处理:
10.根据权利要求1所述网络游戏区块链路地图时空高效路径搜索方法,其特征在于,在线寻路:
...【技术特征摘要】
1.网络游戏区块链路地图时空高效路径搜索方法,其特征在于,基于启发式区块搜索算法在预处理、在线寻路以及所使用的启发式搜索算法三个方面分别进行优化,包括基于向量迭代余弦的启发式优化搜索算法、基于地图信息链路启发式区块搜索优化算法;
2.根据权利要求1所述网络游戏区块链路地图时空高效路径搜索方法,其特征在于,优化open表逻辑结构:基于启发式搜索算法需要反复从open表中选取最键值小值并将其删除的这一特征,采用最小二叉堆迭代逻辑结构来处理open表中的结点信息,父结点的键值总是不小于其左右孩子的键值,并且每一个结点的子树又都满足于最小二叉堆的条件,如此递归定义满足搜寻open表并寻得最小启发函数值的需求,采用最小二叉堆迭代逻辑结构来处理open表中各个数据之间的关系,高效获取表中的键值最小值和删除表中键值最小的结点;包括添加新链路结点和删除键值最小的结点。
3.根据权利要求1所述网络游戏区块链路地图时空高效路径搜索方法,其特征在于,基于向量迭代余弦距离的启发函数:
4.根据权利要求1所述网络游戏区块链路地图时空高效路径搜索方法,其特征在于,基于地图分布信息优化启发式区块搜索算法,在对大规模地图进行分区时将地图的结点信息考虑在内,并且当处于在线寻路的过程中,对使用启发式搜索算法或bresenham直线算法的情形进行分类处理;
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。