7

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

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

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

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

4

2 回答 2

9

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

无论您选择什么决策过程,您都需要一些输入来输入您的 AI。您可以使用影响图帮助 AI 确定战场中的哪些地方被认为是敌对的,哪些地方被认为是安全的。影响力图在团队之间共享,因此它也有助于团队战术。当您的 AI 与多个敌人交战时,选择正确的目标很重要。如果你的 AI 选择了大多数人类玩家不会选择的目标,玩家会觉得 AI 很“愚蠢”,即使有时选择的目标实际上是最好的。您可以对敌方单位进行距离检查,并根据视线、当前武器射程、威胁等级等对目标进行过滤/优先级排序。

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

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

于 2011-08-15T20:27:49.583 回答
2

最简单的方法是让他们向随机方向行驶,当射程内有敌方坦克时,他们开始射击,直到其中一辆被摧毁。当他们的生命值太低时,你也可以让他们随机撤退。您还可以尝试添加组战术,任何未参与的坦克都会加入(有一定的可能性,所以它可能会,也可能不会 - 只是为了让事情变得有趣)它是战斗中最近的邻居。

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

于 2011-08-15T17:51:31.390 回答