AI在stream行游戏中最常用的是什么?

我不是gamedev,我只是一个非游戏的好奇编码器。 我想知道,人工智能在stream行的现代游戏如FPS中是如何工作的? 它是基于硬编码的规则吗? 与其他种类的AI(如为自动驾驶汽车等提供动力的)有何共同之处? 开发人员如何确保AI的行为自然而有趣地发挥作用?

我用googlesearch过的东西提到了MinMax的不同衍生物,但没有回答AI如何处理连续的,可改变的世界,AI奖励什么行为/状态,以及如何计算出不同行动成功的机会。 我也看到机器学习在这里和那里提到,但它似乎没有用于任何严肃的游戏?

有很多方法。 我会回答FPS,因为每个stream派都有自己的一套问题,人工智能方法严重依赖问题领域,以及如何最好地表示它。

常见的FPS方法包括:

  • 硬编码的规则(可以在逻辑上等同于以下任何一种)
  • 有限状态机
  • 分层有限状态机
  • 行为树
  • 决策树
  • 目标导向的行动计划

以上的各种排列和变化。

Minimax通常不被用于像FPS这样的持续状态的游戏,更多的是在象Chess这样的离散游戏空间中的基于回合的游戏。它可以用于高层次的规划,但通常并不是因为有更好的系统(即上面)面对多重敌人时,信息不完整,但计划简单。

他们通过testing确保AI的乐趣。 如果它太具有挑战性,那么它们可能在任何决定启发式方法中引入错误,或者在它们的反应中延迟,或者在它们的瞄准中应用随机因子等。如果它不够具有挑战性,则它们将只需要改善提供给algorithm的数据。

那里有关于各种AI如何工作的论文,我最熟悉的就是FEAR

两种更常见的方法

UCTsearch。 有一种forms主义,但这个想法基本上是做一个随机播放,直到游戏结束,反馈比赢得比赢得更重的胜利游戏。 关于这种纯粹的forms的好处是,AI不需要知道什么可能是更好或更差的举动。

Minmaxsearch通常结合alpha-beta树修剪,基本上是对游戏空间进行一定深度的search,用静态赋值器评估每个terminal节点,赋值给一个数值。 这对于那些有衡量进步的明显指标的游戏来说效果很好。