上次分享了《用行为树的方式思考》后,有同学想让我详细说一下任务系统,我这里就贴几个代码片段(伪代码)再详细说明一下
先是数据结构定义
由于Condition和Objective都定义成了树结构,所以我们就可以很方便的组织逻辑,下面是一个具体Condition的例子,Objecti[……]
最近在看Paul Graham的《黑客与画家》,他极力推崇LISP语言,以前我虽有耳闻,但不曾了解,后来在网上搜索了一些LISP的文章来看,发现原来LISP和AI的渊源颇深,这两篇好文是徐宥发表在他博客上的,写得很棒,特地转载一下(合并成一篇),也作为我收藏之用
原文链接:
前些日子,经人推荐,看了一些CryEngine里AI部分的介绍,当然,作为一个大型商业引擎,AI部分涵盖了很多内容,特别的,我注意到里面关于行为树的部分,从CryEngine 3.3开始,行为树被舍弃了,取而代之的是称为“行为选择树”的模块,我并没有找到关于为何要做出这样的选择的官方说明,因此,我就[……]
这段时间又收到一些朋友的来信,询问一些关于AI和行为树方面的问题,整理在这里,供更多的朋友参考,欢迎继续来信或者在博客上留言讨论,我的邮箱是finneytang@gmail.com,我的新浪微博是@imFinney,欢迎关注~
Q: 您好,我找到你的博客,看了一系列文章[……]
上次聊到了共享节点型行为树的基本概念和节点组成,简单的来说,这种行为树就是把构成树的结构性数据,和运行时数据分开了,将结构性数据在多个行为树中共享,这样当存在大量的智能体的时候,内存的使用会减少很多。
在上次的文章里,提到了行为(Behavior),节点(Node),任务(Task)的概念和实[……]