【问题标题】:Top down Game AI自上而下的游戏人工智能
【发布时间】:2011-08-15 17:48:12
【问题描述】:

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

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

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

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

【问题讨论】:

标签: artificial-intelligence behavior-tree


【解决方案1】:

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

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

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

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

【讨论】:

  • + 1 并检查非常复杂和详细的答案。这正是我一直在寻找的,它为我提供了一些可以展望未来的东西。
【解决方案2】:

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

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

【讨论】:

  • 我喜欢这个主意。我让它变得比它必须的更复杂,让每个单位停下来射击让它变得更简单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多