我一直在努力研究如何在星际争霸2中实现路径搜索。我并不是在寻找所有复杂的功能,比如群集、排队等等。事实上,我喜欢在星际争霸1中,这些单位会互相干扰。但我确实想要一个比星际争霸1更好的寻路器。
从谷歌搜索中,我做了各种各样的答案与A*有关的导航网格和/或处理某种“可见性图”。但对于我该做什么,我得到了一些矛盾的或不明确的答案。
我读到的一件事与在三角形网格(导航网格)的顶点上做A*有关。然后不知怎么地“修整了这条路”,我不知道该怎么做。但这并不能保证最优性,对吧?
我的另一个问题是,星际争霸2寻路是如何处理这样的事实,即这些单位是有限半径的圆盘,而在处理拐角时不是点?以及如何处理动态障碍,如闲置单元,甚至其他移动单元。
我正在寻找一些坚韧不拔,详细的解释,而不是一般的超高水平概述,这是典型的搜索结果。
如果重要的话,我已经看过阿米特关于路径查找的笔记了。我听说过但没有读过计算几何:算法与应用。一个关于2011年GDC人工智能导航演示的博客帖子提到,星际争霸2使用约束delaunay三角剖分作为导航网格。尽管这篇博客文章提到了Boids的指导和“水平分析”,但它并没有具体提到核心路径查找是如何在导航网上完成的。
发布于 2013-09-30 14:36:25
如果您安装了星际争霸2,打开地图编辑器并切换路径查找。你将能够看到导航网是如何构造的,因为你放置建筑物和其他障碍周围。
事实上,我喜欢在“星际争霸1”中,这些单位会互相干扰。但我确实想要一个比星际争霸1更好的寻路器。
不应该是个问题--“星际争霸”1's的探索是愚蠢的。其中一位程序员的这篇博客文章谈到了这一点。
我读到的一件事与在三角形网格(导航网格)的顶点上做A*有关。然后不知怎么地“修整了这条路”,我不知道该怎么做。但这并不能保证最优性,对吧?
它是关于使人工智能不傻,而不是最优。如果你不应用一点平滑技术,你的单位就会在节点之间产生锯齿状移动。
在进行路径规划时,您将有一个精化阶段,您将看到您的单元需要经过哪些节点才能达到它们的目标,然后开始在我们不需要遵循的路径中间取出多余的节点,也就是说,我们可以在没有静态冲突的情况下直接从节点A到节点C到B,所以完全忽略B。
这最终会使这条路变得更直。
我正在寻找一些坚韧不拔,详细的解释,而不是一般的超高水平概述,这是典型的搜索结果。
如果你想要一个坚实的解释,这已经在书中很好地涵盖了(甚至工作游戏代码)。所以,如果你有一些钱要烧,去看看用实例编程游戏AI和/或游戏人工智能。他们两人都深入地讨论了这些问题。
https://gamedev.stackexchange.com/questions/62881
复制相似问题