首页 > 编程语言 >游戏中的寻路算法以及动态避障算法

游戏中的寻路算法以及动态避障算法

时间:2024-06-21 16:58:41浏览次数:12  
标签:电势 避障 游戏 矩阵 算法 寻路

参考:即时战略游戏中实用的寻路算法都有哪些,比较如何? - 知乎 (zhihu.com)

 

寻路算法

1.深度/广度优先搜索

比较简单,略过 

 

2.Dijkstra 最短路径算法

图文详解 Dijkstra 最短路径算法 (freecodecamp.org)

 

3.A*寻路算法

比较常见,略过 

 

4.流场 FlowField

该算法可以解决RTS或者其他需要对大量单位进行寻路的情况,对比对所有单位进行一次寻路计算,流场算法只需要进行一次计算,就可以将该结果应用于全部单位。

RTS核心技术:流场寻路详解(Flow Field Pathfinding) - 简书 (jianshu.com)

流场寻路算法-FlowField(01) | Yimi的小天地 (yimicgh.top)

 

5.导航地图 Recast & Detour(unity就用这个库做的navmesh)

recastnavigation/recastnavigation: Industry-standard navigation-mesh toolset for games (github.com)

参考:Recast-Detour看这里就够了!_recast算法-CSDN博客

分两部分:

Recast 是一个导航网格生成工具,用于将几何数据(通常是三维模型)转换成导航网格。导航网格是一种用于路径规划的数据结构,表示可以行走的区域。

Detour 是一个高效的路径规划库,基于 Recast 生成的导航网格进行路径搜索和导航。它提供了许多高级功能,如路径平滑、障碍物避免等。

 

6.人工势力场 Potential Field

它是将地图用一个矩阵来表示,矩阵储存着大小不同的电势(整数)。

例如,正电势表示吸引,负电势表示排斥。

而游戏中的单位本身是一个负电势,游戏以一个数组储存所有单位的电势和位置 [7]。

这样,在计算一个单位需要怎么从A点到B点时,我们可以用一个新的矩阵将目的地B点设成正电势,并以不同方式(如圆形、四边形等)辐射开来,离B点越远电势越低,直到0。

然后将地图矩阵,目的地矩阵,和所有单位数组的电势相加,得出一个新的、反映当前游戏世界的电势矩阵

然后单位再选择周围所有电势点中的最高电势点去走。

不过这里坑很多,因为它本质上是Greedy Algorithm,所以它未必能找出解。[5]

然而在某些设定中,例如在没有过于复杂地形,并且需要单位自动不相互覆盖的情况下,Potential Field还是可以完成任务 [8]。

 

集群/避障算法

寻路算法可以算出从A到B的最短距离,但当角色前方有动态出现的障碍物时,可以用避障算法动态算出角色应该怎么规避障碍物,同时仍旧朝着寻路算法算出的路线走

1.集群算法 Flocking Behavior

寻路和Flocking算法的结合 - 知乎 (zhihu.com)

【Flocking算法】海王的鱼塘是怎样炼成的-CSDN博客

 

2.ROV避障算法

避障算法 - VO、RVO 以及 ORCA (RVO2) | indienova 独立游戏

rvo动态避障算法源码分析_rvo算法-CSDN博客

 

标签:电势,避障,游戏,矩阵,算法,寻路
From: https://www.cnblogs.com/jeason1997/p/18258833

相关文章

  • A*算法实现最优路径规划
     用A*算法实现最优路径规划,绿色五角星为起点,红色四角星为终点,黑色方块为障碍物,如下图所示。简要介绍问题的估价函数、算法步骤、搜索路径、代码实现和代码运行结果。importmathfromrandomimportrandintimportpygamefromenumimportEnum#定义全局变量:地图中节点......
  • 神经网络与模式识别课程报告-卷积神经网络(CNN)算法的应用
     =======================================================================================完整的神经网络与模式识别课程报告文档下载:https://wenku.baidu.com/view/393fbc7853e2524de518964bcf84b9d528ea2c92?aggId=393fbc7853e2524de518964bcf84b9d528ea2c92&fr=catalogM......
  • 头歌机器学习实训答案 第1关:集成学习常用算法详解
    任务描述本关任务:学习集成学习的基本概念以及常用算法并编程熟悉sklearn。相关知识为了完成本关任务,你需要掌握:1.个体与集成的概念,2.常用的集成学习算法。个体和集成集成学习(ensemblelearning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-class......
  • 深度学习各算法的优缺点和适用场景!!纯干货,建议收藏。(下篇)
    ............纯   干  货........上篇地址:深度学习各算法的优缺点和适用场景!!纯干货,建议收藏。(上篇)-CSDN博客目录废话不说,直接上干货自编码器1、标准自编码器(VanillaAutoencoder)2、稀疏自编码器(SparseAutoencoder)3、去噪自编码器(Denoisin......
  • 深度学习各算法的优缺点和适用场景!!纯干货,建议收藏。(上篇)
     ........纯  干  货..........下篇地址:深度学习各算法的优缺点和适用场景!!纯干货,建议收藏。(下篇)-CSDN博客​目录前馈神经网络1、梯度下降(GradientDescent)2、随机梯度下降(StochasticGradientDescent,SGD)3、小批量梯度下降(Mini-batchGradi......
  • 算法合集
    算法合集这里是我的算法合集:博弈论Gametheory图论Graphtheory数论Numbertheory三角函数Trigonometricfunction字符串Strings计算几何Computationgeometry数据结构Structs动态规划DynamicprogrammingLIS问题LongestIncreasingSubsequenceproble......
  • 算法神尊
    作者:是轨迹呐标记说明:code,地点,算法武技、算法功法上篇算法大陆,诺伊宗,核心弟子居住区。一个面容清秀的少年正站在元始碑之下,望着碑上的文字默默祷告。那碑上,用黄金铸就的一行代码闪闪发亮:cout<<"Hello,world!";。元始碑是算法大陆的一种古老的传承,修炼每一种语言的码农都......
  • scau程序设计与算法(个人偷懒版(前两章
    目录1.四个常见问题18104 练习使用多case解题2.c++STL的运用19116 丑数18440 走迷宫18276 走迷宫218105 银行的叫号顺序18216 银行服务18118 勇者斗恶龙18107 校赛排名18104 练习使用多case解题时间限制:1000MS 代码长度限制:10KB提交次数:0通过次数......
  • 算法合集
    算法合集这里是我的算法合集:博弈论Gametheory图论Graphtheory数论Numbertheory三角函数Trigonometricfunction字符串Strings计算几何Computationgeometry数据结构Structs动态规划DynamicprogrammingLIS问题LongestIncreasingSubsequenceproble......
  • 代码随想录算法训练营第17天 | 二叉树04
    代码随想录算法训练营第17天找树左下角的值https://leetcode.cn/problems/find-bottom-left-tree-value/找树左下角的值代码随想录https://leetcode.cn/problems/find-bottom-left-tree-value/路径总和https://leetcode.cn/problems/path-sum/description/路径总和2https......