用AS3 实现 Slow Behavior Tree 慢速可监控的行为树

来源:互联网 发布:游戏客户端编程 编辑:程序博客网 时间:2024/05/29 16:53

Slow Behavior Tree,

能看到节点缓慢运作的过程,当前运作的节点会被点亮并闪烁,所见即所得,先发一下源码和截图:

https://github.com/moketao/SlowBehaviorTree

(上面的源码,是第一版。第二版的源码。。。因为涉及到商用,等项目完结了,我会放出来共享)


临时写的行为树,还未经过整理,目前只实现了And和Or两种节点,以后慢慢添加其它节点,目前计划添加的有:判断节点、行动节点、取反、随机、加权随机、时间和次数限制

--------更新2014年9月6日17:01:31----------分割线----------------

以下是第二版的编辑器(可连接游戏实时编辑),截图:



基本的实现思路如下:

1、建立一个Update机制,每一帧只运算一个节点,做一些简单的 if 判断(用adobe scout 测试过,10多个怪物运行起来,性能消耗几乎为0,在手机应用里足够了)。

2、至少实现 And 、 Or 两个节点,这两个节点属于枝干节点,其它节点不是必须的。

3、如果想要实用,至少还需要一个叶子节点,用来实现游戏中的具体功能,比如这些叶子节点:移动、施法、距离判断等等。

4、编写编辑器,对节点进行增删改,还有对节点进行布局,节点的 x坐标决定了同级节点的执行顺序,最后将整棵树转换成 xml 或者 json 格式,存储到硬盘。

5、在游戏中读取json格式的 ai 字符串文件,并挂接到怪物的 AI 逻辑中。

6、怪物受击时,停止AI 几百毫秒,然后再次启用AI,当然,boss不需要这么做。

7、利用简易Socket类,将游戏客户端 和 AI编辑器联系起来,游戏中运行到哪个节点,都会发送消息给编辑器,编辑内部的响应节点,会高亮、闪烁或者跳动。

8、降低游戏帧频,或者降低 AI Update的频率,可以在编辑中观察到 AI 树内部节点 闪烁的具体路径。


0 0
原创粉丝点击