Answers:
如果您想研究和学习一般的寻路技术,我绝对建议您学习不仅仅是一种算法。您将希望了解总体概念,但能够将其应用于您正在从事的工作。大多数需要认真探索的游戏开发人员最终都会编写自己的自定义算法,尽管它们高度依赖于已知的解决方案,但每个游戏都是不同的,并且会有不同的要求。
我将从阅读一些更广为人知的方法开始,例如A *,Dijkstra的算法,深度和广度优先搜索。每个方面在互联网上都有很多很好的信息。(http://en.wikipedia.org/wiki/Pathfinding)
阅读它们时,请注意每种方法的优点和缺点,以及算法可以处理的数据类型。可以将其应用于3维路径吗?可以对其进行修改以解决我们希望避开地图中的地雷的人类AI的问题吗?
在寻路方面,A *几乎是每个人使用的黄金票。您绝对应该知道它是如何工作的。(http://en.wikipedia.org/wiki/A*_search_algorithm)
这是A *的一个很好的例子,因为它适用于RTS游戏,该游戏需要考虑不同大小的实体:http : //aigamedev.com/open/tutorials/clearance-based-pathfinding/
祝好运!
寻路算法基本上是一种图搜索问题解决算法。
http://en.wikipedia.org/wiki/Pathfinding#Algorithms
最著名的是Djikstra的算法:http : //en.wikipedia.org/wiki/Dijkstra's_algorithm
及其A *搜索算法的变体:http : //en.wikipedia.org/wiki/A*
有几种寻路算法。
最受欢迎的游戏之一可能是A *(A-Star)。如果您具有启发式功能,可以给您估计达到目标的成本(例如,到目标的视线距离),这是一种非常有用的算法。A *对于找到从起点到终点的最短路径非常有用。
除此之外,还有Dijkstra算法,该算法对于从多个项目中查找最接近的项目非常有用。例如。如果您想找出哪个加电(或类似功能)最接近您的游戏角色。
还有其他几种算法,但我想A *是迄今为止最受欢迎的算法。垫巴克兰有关于他的书寻路的优秀篇章编程游戏AI的例子。我强烈建议您获得一份副本。否则,您可以通过搜索“星级搜索”来在线查找大量信息。
这是有关使用Dijkstra的算法进行寻路的教程。
这并不是入门知识,但是我们在2009年秋季的算法课程中广泛讨论了图算法。我们使用了这本书,
算法入门,第三版,Thomas H. Cormen,Charles E. Leiserson,Ronald L. Rivest和Clifford Stein
http://mitpress.mit.edu/algorithms/
并且还附有MIT课程的youtube讲座。
第17、18和19章讨论了最短路径。
请参阅Wikipedia 1上的[图形和树搜索算法] 。它们几乎只是状态空间搜索的一种变体,您只需要仔细研究所有这些内容,然后找出它们的不同之处。
还有Collaborative Diffusion,这是前面提到的算法之一,以有趣的方式完成。