《漫威蜘蛛侠》AI分析

简介

这是对【中英字幕】【GDC】《漫威蜘蛛侠》AI开发剖析_杂谈的分享的分析和整理

这个分享主要包括如下内容:

  • Behavior Authoring

  • Synced Animations

  • Combat Iteration

  • Procedural animation

  • Improve

Behavior Authoring

这部分主要是介绍他们怎么进行AI编辑的,主要分为了两个建议:

  • 少用复杂行为树

  • 使用数据驱动的状态机

这样的原因,主要是因为蜘蛛侠里面的敌人的战斗方式很多,并且开发人员少。

Complex Behavior Trees

他们认为用行为树有这么几个缺点:

  • 使用了大量的回调节点

  • 运行策略很多,装饰器也很多

这些导致很难debug,虽然说行为树的节点可以大量复用是一个优点,但一旦行为树复杂起来,就不得不考虑节点之间的运行顺序什么的,维护起来就会很麻烦,这一点确实,实际项目中一般小怪还好,要是boss或者多个小怪之间需要联动的话,无论是单个行为树的配置,或者是多个行为树之间的通讯联动,都很麻烦,甚至如果为了性能,边缘行为树的tick频率会降低,这样导致如果表现上不正确的话,排查起来就很麻烦。

所以他们在项目里面确实是使用了行为树,但也仅仅是在一些小的树里面使用,并且尽可能的不去使用回调。

然后,特别是最后一点,

Data-Driven HFSMs

从周围的敌人中选择攻击者的策略

之前雷火也介绍过他们的选择策略 https://zhuanlan.zhihu.com/p/405050234,和失眠组的选择策略比起来的话,他们的更加偏向于一种