前些日子,经人推荐,看了一些CryEngine里AI部分的介绍,当然,作为一个大型商业引擎,AI部分涵盖了很多内容,特别的,我注意到里面关于行为树的部分,从CryEngine 3.3开始,行为树被舍弃了,取而代之的是称为“行为选择树”的模块,我并没有找到关于为何要做出这样的选择的官方说明,因此,我就[……]

继续阅读

上次聊到了共享节点型行为树的基本概念和节点组成,简单的来说,这种行为树就是把构成树的结构性数据,和运行时数据分开了,将结构性数据在多个行为树中共享,这样当存在大量的智能体的时候,内存的使用会减少很多。

在上次的文章里,提到了行为(Behavior),节点(Node),任务(Task)的概念和实[……]

继续阅读

我在博客上已经聊了很多关于行为树的基本概念了,我也实现了一个简单的行为树库供大家参考,在实践中,我一直没有考虑过行为树对于内存占用的问题,因为在我上一个足球的项目里,场上一共就是10个人,内存的使用相较于其他模块而言,实在是微乎其微。但如果对于存在大量NPC的游戏来说,每一个NPC都生成一个完整的行[……]

继续阅读

GDC2012

2012年游戏开发者大会(GDC 2012)将于2012年3月5日在美国旧金山举行,我有幸届时能够亲临现场,感受下全球游戏开发者的第一盛会。公司很厚道的帮我买的是All Access的票,这意味着,我可以没有任何限制的参加所有我感兴趣的会议,讲座等等,这里不得不赞一下。在GDC的官网上,可以[……]

继续阅读

上次提到了一些行为树的基本概念,包括行为节点,控制节点(选择,序列,并行),这次来更多,更深入的讨论行为树的一些东西,如果对行为树不是很了解,请参看这里

一. 关于选择节点的讨论

我们说过选择节点的定义是通过判断子节点的前提条件来选择一个节点执行,这就牵涉到判断顺序的问题,是自左向右,[……]

继续阅读

自从开博以来,每天都会关心一下博客的访问情况,看到一些朋友的订阅或者访问,不胜欣喜,也促使我去写一些更好的博文,来和大家分享和交流,从访问统计来看,有相当一部分是来自于搜索引擎的流量,关键字以“行为树”,或者“Behavior Tree”居首位,我想大家对此可能有些兴趣,加上,这几年反反复复一直在A[……]

继续阅读

做一个AI程序员是比较痛苦的事情,如果是看别人写的AI的代码,那更是痛苦至极。AI代码的可读性通常不会很高,里面充斥着莫名的算法,一大堆的经验数据,奇怪的逻辑。任何一项,都会使人觉得崩溃。AI的代码一般都是游戏相关的,而且随着design的改变而改变,正是这种特化,使得AI一般都很难有一个Engin[……]

继续阅读