用行为树和状态机去实现AI

一、大致思路是,通把AI思考过程拆解成树状结构的分层任务网络根据环境条件动态选择行为,来‌模拟人类决策过程。

二、对象状态和定时器循环(或事件驱动)

1. 做AI思考的对象,主要有两个状态:空闲状态和 行为状态。

2. 对象会持续以定时器的方式,每隔一段时间做一次思考或者执行。

(1) 对象处于空闲状态的话,会进行思考,选择一套策略行为,然后进入行为状态

(2) 对象处于行为状态的话,会执行操作,当执行完毕或被其他因素中断,就会重新回到空闲状态。

3. 事件驱动也能触发对象的思考或者执行,比如巡逻状态下被玩家攻击。

三、AI思考和执行的过程:

1. 从根节点开始,作为行为树的入口。

    根据对象所处的状态,选择进入下面哪一个子节点。比如攻击,还是巡逻。

2. 下一节点是策略选择。(选择器节点)

    对象可以选择什么策略,根据配置文件来决定。策略配置和条件配置是绑定一起的,根据条件来选择策略。

    条件可以是多个,多个条件以 与或非 的方式来做逻辑判定。

(1) 如果找到一个匹配的策略的话就直接选择

(2) 如果有多个策略都匹配的话就根据优先级和权重随机选择一个。

(3) 如果一个匹配上的策略都没有的话,就选兜底默认策略。

    选择好策略之后,进入下一个节点。

3. 下一节点是执行行为。(序列节点)

    对象可以执行什么行为,根据配置文件来决定。策略配置和行为配置是绑定一起的。选择好行为之后,对象就进入行为状态

(1) 行为可以是多个,对象以序列的方式去依次执行。

(2) 每执行完一个行为,就会记录一个子状态。这个子状态可以支持执行行为的重入逻辑。

(3) 执行行为可以不是一次性的,可以再后面的定时器循环里,多次重入,持续执行行为。

(4) 进入行为状态后的定时器循环间隔时间,可以动态改小,增强表现效果。

(5) 全部行为执行完毕之后,对象从 行为状态 切换回 空闲状态,等待下一次思考和选择策略。

四、性能消耗关键环节

   多个对象都以定时器的方式,定时执行策略选择或者执行行为,会消耗大量的CPU性能。选择合适的间隔时间是关键。也可以以分布式的方式,把AI思考的负载分到其他服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值