自上而下游戏AI

时间:2011-08-15 17:48:13

标签: artificial-intelligence

我正在制作一款游戏,要求屏幕上的单位根据团队和每个团队的指定敌人进行对战。玩家不控制任何坦克或团队。

问题在于单位之间的战斗(目前的坦克)对于玩家来说应该足够有趣,他们可以在不做任何事情的情况下观看并享受乐趣。

我目前让坦克完全随机移动并在射程范围内相互射击,但我正在寻找更聪明的东西。

我应该研究哪种类型的ai和ai算法?欢迎所有的想法,我只是想让每场战斗变得有趣。

2 个答案:

答案 0 :(得分:9)

对于策略和战术,你的AI可能需要做一些理性的决策,使它看起来更智能。有很多方法可以解决这个问题,最简单的方法是为你的坦克写下几个条件动作规则并将它们作为有限状态机实现。 FSM易于实现且易于调试,但是当您想要修改条件规则或添加/删除任何状态时,它会变得乏味。您还可以使用公用事业代理 - AI会定期根据当前的统计数据(弹药,健康,敌人数量和位置)对每个潜在目标(例如,参与,撤退,重新加载/加油,进行掩护,修复等)执行效用检查。然后选择最优选的目标。与FSM相比,这需要更多的时间来实现,但是当您需要添加或删除行为时,不需要更改决策流的方式更灵活。它使AI看起来遵循一般规则,但并不总是可预测的。实用程序代理也更难以调试和控制,因为当您的AI发疯时,您没有任何严格的条件 - 操作规则来跟踪您对FSM的跟踪。另一种流行的方法是行为树。动作序列实现为树结构。它需要更多代码才能预先编写,但通常可以在控制和灵活性之间实现比FSM和实用程序代理更好的平衡。这些决策过程并不是相互排斥的 - 您可以使用任何顶级策略方法和低级策略的不同方法。

无论您选择何种决策制定流程,都需要输入一些信息才能输入您的AI。你可以使用影响力图帮助AI确定战场中哪些地方被认为是敌对的,哪里被认为是安全的。影响力图在团队之间共享,因此它也可以帮助团队战术。当AI与多个敌人交战时,选择正确的目标非常重要。如果你的AI选择了大多数人类玩家所不会的目标,玩家会感觉AI是“愚蠢的”,即使有时所选择的目标实际上是最好的。您可以对敌方单位进行距离检查,并根据视线,当前武器射程,威胁等级等对目标进行过滤/优先排序。有些测试比其他测试更昂贵(视线检查通常是最严重的犯罪者之一)所以如果你在范围内有很多敌方单位,你想在最后一次运行那些较慢的测试。

对于坦克的运动,请研究转向行为。它涵盖了很多车辆运动行为,但追求和逃避是你最需要的。如果您的坦克需要在复杂的地形中导航,也可以查看A *进行寻路。还有其他好的路径解决方案可以为您提供最短/最快的路径,但在游戏中,最短/最快的路径并不总是最佳路径。如果你的最短路径是开放但离敌人线太近,你想给你的坦克一些启发式路线以采取不同的路线。您可以使用A *轻松配置路径首选项。

要研究的事项:有限状态机,基于效用的代理,行为树,转向行为,*搜索算法,导航航路点或导航网格,影响地图。

答案 1 :(得分:2)

最简单的方法是让它们随机行驶,当敌方坦克在范围内时,它们会开始射击,直到其中一个被摧毁。当他们的健康状况太低时,你也可以让他们随机撤退。你也可以尝试添加团队战术,其中任何未参与的坦克都会加入(有一些可行性,以便它可能会,也许它不会 - 只是为了让事情变得有趣)它是战斗中最近的邻居。

如果您正在寻找算法,A *(“A-Star”)是一种通用的路径寻找算法,可以帮助您的坦克四处移动,但我不知道任何通用算法来控制战斗。