zoukankan      html  css  js  c++  java
  • Behaviac 腾讯开源行为树 简介(给策划)

    1.为什么使用BT
    FSM模型的优势之一是简单。但是FSMs需要用转换(Transition)连接状态(State),因此,状态(State)失去了模块性(Modularity)。
    BT的主要优势之一就是其更好的封装性和模块性,让游戏逻辑更直观,开发者不会被那些复杂的连线绕晕。

    FSM

    BT

    行为树的基本概念:

    • 执行每个节点都会有一个结果(成功,失败或运行)
    • 子节点的执行结果由其父节点控制和管理
    • 返回运行结果的节点被视作处于运行状态,处于运行状态的节点将被持续执行一直到其返回结束(成功或失败)。在其结束前,其父节点不会把控制转移到后续节点。

    大致分为四类:行为(action), 条件(conditional), 装饰(decorator), 组合(composite)
    其中 [行为],[条件] 为子节点; [装饰], [组合]为父节点

    行为节点:子节点,执行具体动作,必定返回成功,比如:赋值,输出日志
    条件节点:子节点,执行具体动作,返回具体执行结果,比较复杂的行为:寻找敌人,检查buff等等

    装饰节点:父节点,更具子节点的返回值,决定自身的返回值,装饰子节点的返回值,比如:逆变(Inverter),重复(Repeater)等
    组合节点:父节点,组合控制节点,根据子节点的返回值决定自身的返回值,以及子节点调用顺序,常用的控制节点有以下三种:
        选择(Selector):    选择其子节点的某一个执行(顺序,无序,权重),第一个子节点返回成功后结束,返回成功,一个子节点都没有成功,返回失败
        序列(Sequence): 将其所有子节点依次执行,也就是说当前一个返回“完成”状态后,再运行先一个子节点,全部子节点成功执行返回成功,某一子节点失败后立即退出,返回失败
        并行(Parallel):     将其所有子节点都运行一遍,返回和中断可配置


















    附件列表

    • 相关阅读:
      减少mysql存储列的方法
      Installation of Munin node/master ¶
      they're hiring
      减少mysql存储列的方法
      linux munin 服务器监控 安装配置«海底苍鹰(tank)博客
      用C写apache模块编译教程(经验证)
      SDUT——Kbased Numbers
      【人在运维囧途_06】 借助 sniffer 诊断 Linux 网络故障
      iOS 企业证书发布app 流程
      警告: 隐式声明与内建函数‘exit’不兼容
    • 原文地址:https://www.cnblogs.com/Hichy/p/7906535.html
    Copyright © 2011-2022 走看看