Artificial intelligence 自上而下的游戏AI

Artificial intelligence 自上而下的游戏AI,artificial-intelligence,behavior-tree,Artificial Intelligence,Behavior Tree,我正在创建一个游戏,要求屏幕上的单位根据团队和每个团队指定的敌人相互战斗。玩家不控制任何坦克或队伍 问题是,单位之间的战斗(目前的坦克)对玩家来说应该足够有趣,他们可以在不做任何事情的情况下观看并享受乐趣 我现在有坦克完全随机移动,在射程内互相射击,但我在寻找更聪明的东西 我应该研究什么类型的人工智能和人工智能算法?所有的想法都是受欢迎的,我只是想让每一场战斗变得有趣。最简单的方法是让他们沿着随机方向行驶,当有敌人坦克在射程内时,他们开始射击,直到其中一辆被摧毁。你也可以让他们在健康状况太差时随

我正在创建一个游戏,要求屏幕上的单位根据团队和每个团队指定的敌人相互战斗。玩家不控制任何坦克或队伍

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

我现在有坦克完全随机移动,在射程内互相射击,但我在寻找更聪明的东西


我应该研究什么类型的人工智能和人工智能算法?所有的想法都是受欢迎的,我只是想让每一场战斗变得有趣。

最简单的方法是让他们沿着随机方向行驶,当有敌人坦克在射程内时,他们开始射击,直到其中一辆被摧毁。你也可以让他们在健康状况太差时随机撤退。你也可以尝试加入小组战术,任何未交战的坦克都会加入(具有一定的可预测性,这样也许它会加入,也许它不会加入——只是为了让事情变得有趣)它是战斗中的近邻


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

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

无论你选择什么样的决策过程,你都需要一些输入来输入你的AI。你可以使用影响地图帮助AI确定战场上哪些地方被认为是敌对的,哪些地方被认为是安全的。影响图在团队中共享,因此它也有助于团队战术。当你的AI与多个敌人交战时,选择正确的目标很重要。如果你的AI选择了一个大多数人类玩家不会选择的目标,玩家会觉得AI是“愚蠢的”,即使有时候选择的目标实际上是最好的。你可以对敌方单位进行距离检查,并使用视线、当前武器范围、威胁等级等对目标进行筛选/优先排序。有些测试比其他测试更昂贵(视线检查通常是最严重的违规行为之一),因此如果你有大量敌方单位在射程内,你希望在最后一次测试中运行这些较慢的测试

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


需要研究的东西:有限状态机、基于实用程序的代理、行为树、转向行为、a*搜索算法、导航航路点或导航网格、影响图。

pacman Ghost使用的逻辑可能会给你一些想法—(非常复杂)。我喜欢这个想法。我让它变得比必须的更复杂,让每一个单位停下来射击使它变得更简单。+1,检查非常复杂和详细的答案。这正是我一直在寻找的,它给了我一些展望未来的东西。