《漫威蜘蛛侠》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,和失眠组的选择策略比起来的话,他们的更加偏向于一种