Questions tagged «path-finding»

用来绘制从一个点到另一个点的行进路线的方法,通常可以避免途中的障碍。



6
寻路逃亡
如您所知,当您想在从A点到B点的二维环境中找到最佳路径时,有很多解决方案。 但是,当对象位于点A并希望尽可能快地远离点B时,如何计算路径? 一些背景信息:我的游戏使用2d环境,该环境不是基于图块的,但具有浮点精度。运动是基于矢量的。通过将游戏世界划分为可行走或不可行走的矩形并在其角外构建图形来完成寻路。我已经有了使用Dijkstras算法工作的点之间的寻路。逃逸算法的用例是,在某些情况下,我的游戏中的角色应该将另一个角色视为危险,然后逃离。 简单的解决方案是将角色沿着威胁的相反方向沿向量方向移动,直到达到“安全”距离,或者角色到达一堵墙然后在恐惧中掩盖。 这种方法的问题在于,演员将被他们容易绕开的小障碍所阻挡。只要沿着墙壁移动不会使他们更接近他们可以做到的威胁,但是当他们首先避免障碍时,它将看起来更聪明: 我看到的另一个问题是地图几何图形的死角。在某些情况下,存在者必须在一条路径之间进行选择,该路径可以使它现在更快地走开,但最终会被困在死胡同中;或者,这是另一条路径,这意味着它起初不会远离危险(或甚至更近一点),但另一方面,它们将获得更大的长期回报,因为最终他们会走得更远。因此,越来越远的短期回报快必须以某种方式对价值越来越远的长期回报远。 对于演员应该接受的,接近较小威胁,摆脱较大威胁的情况,还存在另一个评级问题。但是完全忽略所有次要威胁也将是愚蠢的(这就是为什么此图中的参与者竭尽所能避免右上方区域的次要威胁): 是否有针对此问题的标准解决方案?


7
RTS游戏中的寻路如何工作?
[从stackoverflow交叉发布] 在《魔兽争霸3》或《帝国时代》等游戏中,AI对手在地图上移动的方式似乎几乎是无限的。地图很大,其他玩家的位置也在不断变化。 这些游戏中的AI寻路方式如何工作?在这种设置中,似乎无法使用标准的图形搜索方法(例如DFS,BFS或A *)。

4
流场寻路如何工作?
最高指挥官2拥有称为流场路径查找的功能。它是如何工作的?是否有可用的文章可供我阅读以了解其工作原理?

12
当目的地无法通行时,如何使A *更快完成?
我正在制作一个简单的基于图块的2D游戏,该游戏使用A *(“ A星”)寻路算法。我一切正常,但是搜索存在性能问题。简而言之,当我单击不可逾越的图块时,该算法显然会遍历整个地图以找到通往不可逾越的图块的路线-即使我站在它旁边。 我该如何规避?我想我可以减少对屏幕区域的寻路,但是也许我在这里遗漏了一些明显的东西?

2
即使障碍物在移动,A *还是有效的吗?
我刚刚开始学习路径查找,并且一直在研究A *算法,而我主要担心的是,我所看到的所有示例都显示了围绕它进行计算的静态障碍。 如果我有移动障碍物,例如说其他角色,也要四处走动,以确保角色必须找到自己的位置,我假设我必须在每一帧都运行算法,但是我担心这样做会变得很昂贵硬件为每个活动演员处理每个帧。 那么,A *是否仍然足够有效,以便在障碍物也移动时也可以使用,或者还有另一种寻路方法能够更有效地处理障碍物?

6
寻找目标的标准解决方案是什么?
我正在开发类似游戏的2D RTS,基本A *可以完美地将单位从A点移动到B点。 但是现在我遇到了连续的寻路问题,例如A攻击移动的对象B,一旦对象B的位置改变似乎效率低下,则在每一帧调用A *。 那么解决此问题的标准方法是什么?


4
用作启发函数时,曼哈顿距离是否单调?
我有一个基于正方形的地图。仅允许水平和垂直移动(禁止对角线)。移动成本始终为1。 我正在使用曼哈顿距离作为距离启发式算法在该地图上实现A *算法。这种启发式是一致的吗?我是否可以避免检查g(node)CLOSED集合中的节点? 编辑:一致我的意思是单调的。

1
路径查找算法?
我首先在堆栈溢出中发布了这个问题,但是我猜那里没有人对视频游戏非常感兴趣... 所有类型的游戏中都使用哪些寻路算法?(无论如何,所有类型的角色都会移动)Dijkstra是否使用了很多?我认为不会,因为它实际上并未找出到达某个地方所需采取的步骤,对吗?如果我理解正确,它只会确定哪个对象是最近的。我并不是真的想编写任何代码;只是做一些研究,尽管如果您粘贴伪代码或其他内容,那也很好(我能理解Java和C ++)。我基本上是在总体上寻找路径查找的快速概述。 我知道A *就像在2D游戏中使用的算法。那太好了,但是不是基于网格的2D游戏又如何呢?帝国时代或Link的觉醒之类的东西。没有可导航的独特正方形空间,那么它们做什么? 3D游戏做什么?我已经读过这个令人毛骨悚然的http://www.ai-blog.net/archives/000152.html,听说它是该主题的权威,但是一旦设置了网格,它并不能真正解释如何操作,路径查找完成。如果他们使用的是A *,那么在3D环境中如何做?花键如何精确加工圆角?

3
带锁和钥匙的寻路?
我正在开发一款带有类似于锁和钥匙拼图的地图的游戏。AI需要导航到可能在红色门锁之后的目标,但红色钥匙可能在蓝色门锁之后,依此类推... 这个难题类似于塞尔达风格的地牢,如下图: 要达到目标,您必须击败Boss,这需要经过坑,这需要收集羽毛,这需要收集钥匙 塞尔达传说地下城是线性的。但是,我需要解决一般情况下的问题。所以: 目标可能需要一组键中的一个。因此,也许您需要获取红色键或蓝色键。否则可能会有很长一段未锁的门! 可能有多种门和钥匙。例如,地图中可能有多个红色钥匙,而收集一个红色钥匙将授予所有红色门的访问权限。 由于正确的钥匙在锁着的门后面,因此可能无法达到目标 如何在这样的地图上执行寻路?搜索图是什么样的? 注意:关于检测无法达到的目标的最后一点很重要;例如,如果无法达到目标,则A *效率极低。我想有效地处理这个问题。 假设AI知道地图上所有位置。

3
为什么某些联网游戏使用插值而有些使用寻路来进行远程移动?
这是一个悬而未决的问题,但我希望看到有人为这两者做出良好的推理。 举两个例子: 插值模型 考虑一下Valve模型,其中客户端经常接收位置更新,而远程设备使用此数据上的插值来更新其位置。 寻找路径 在此模型中,认为用户发送了目的地,并且每个人都找到了目的地。 什么类型的游戏适合每种游戏,什么时候应该使用?

3
高效寻路许多成群的敌人绕过障碍物
我正在努力改善游戏敌人的寻路能力。现在,他们基本上只是通过计算自己与玩家之间的角度并朝该方向移动,不断地朝着玩家的确切位置移动。我也有一个植绒算法,可以防止敌人相互堆叠,因此它们会成组,而不是相互夹住。 但是,既然我已经添加了基于图块的地图,那么我就需要敌人也能够绕过障碍物和墙壁。我最初尝试为“不可行走”的瓷砖添加间隔值,以使植绒算法将墙壁和障碍物视为要远离的对象。我还没有弄清楚这是否可行,因为我的初步测试显示敌人击中了一个看不见的“墙”,那里没有不可行走的瓷砖,但由于某种原因,他们击中了它并开始飞扬。 我想知道如果使用A *计算到达播放器的路径,然后使用植绒算法来防止结块,可能会导致性能负担过重。最初,我的游戏将是基于海浪的射击游戏,但我决定改以热线迈阿密为基础进行游戏,因此我可能会减少敌人的数量,偶尔会成群结队,他们更强大。 这是可行的解决方案吗?我将Java与Slick2D一起用作游戏引擎。还是有解决这些问题的更好的解决方案/算法?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.