独立游戏的诞生

记录游戏制作的点点滴滴。

行为树、状态机与条件功能函数漫谈

可能我们每天在代码过程中都会应用到行为树、状态机或者条件功能函数的某一部分,但是如果没有对对应概念的确切理解,就不能形成自己的词汇库,也就不能和别人产生心有灵犀的共鸣。这就是为什么要给词汇下定义,就是方便沟通,并且缩短沟通过程。就像我们和其他人讲述太阳的时候,不再需要向别人描述那是一个圆圆亮亮的大火球,而是简单的“太阳”两个字就能表达。

行为树定义了AI主体的智慧能力,这种智慧能力体现在AI主体可以根据环境变化而改变自身行为。在一棵完整的行为树中,叶子节点是AI主体所能执行的行为,而从根节点到叶子节点的路径就是AI主体的决策过程。

状态机描述了状态和状态转移条件。状态被动接受条件变化,通过判断确定状态的变化。

条件功能函数是指,在固定的触发点,通过判断预先定义的条件,如果条件满足,则执行对应的功能。这里定义的需要执行的功能,也可以是带有条件的功能组。条件功能函数也可以抽象为树形结构,判定与执行的过程就是遍历整棵树的过程。