转自: http://blog.csdn.net/akara/article/details/6165421
[原创]使用行为树(Behavior Tree)实现网游奖励掉落系统
by AKara 2011-01-24 @ http://blog.csdn.net/akara @ akarachen(at)gmail.com @weibo.com/akaras
奖励/掉落系统,涵盖物品,经验,金钱等网游中可直接给予玩家的元素。
一个简单,直观,可扩展的掉落系统对网游中的产出控制起非常重要的作用。
奖励/掉落系统 的设计归结起来有如下要点:
* 概率控制
* 物品控制
* 数量控制
* 嵌套控制
只要这几点的控制抽象和组织得好,掉落系统自然好用。
实现的方案很多,或简洁高效,或复杂强大...但每次几乎都要按照新游戏
特色需求重新定制策划案和程序基础模块;是否存在一种可以作为其底层
逻辑描述的结构供策划和程序人员长期使用,而兼具简洁,直观,可扩展?
又一次试试 行为树(Behavior Tree) 吧。
---------------------------------------------------------------------
又先贴本文相关的图
词意解释:
Root:根节点
WRSel:加权随机选择节点
Seq:序列节点
Cond:条件节点
Act:行为节点
R:概率权值公式
N:数量公式
e:游戏实时环境参数集
而具体的行为树(Behavior Tree)概念,可参考我之前写的文章:
<<使用行为树(Behavior Tree)实现游戏AI>> by AKara
http://blog.csdn.net/akara/archive/2010/12/19/6084786.aspx
上图中描述了一次具体的奖励掉落规则,而且也可以看到里面很简单地加入
规则的嵌套的支持(参考"R(e)Root"子树)。
---------------------------------------------------------------------
使用行为树(Behavior Tree)来实现奖励掉落系统有如下优点:
> 基于游戏实时环境参数集作概率控制
> 基于游戏实时环境参数集作数量控制
> 支持简单的子规则树调用
> 直观的树结构
> 既定环境下的节点概率演算测试
> 易扩展的节点可见性控制
> 功能节点规则成熟
> ...
---------------------------------------------------------------------
行为树(Behavior Tree)不只用于 AI条目的管理 或 奖励掉落系统的组织,
稍加留意或可发现还能应用于很多方面。
更重要的是:行为树(Behavior Tree)使设计者和实现者用同种规范来达成目标。