使用AI行为树开发任务系统
·本篇日志是 http://gad.qq.com/article/detail/39709 的后续扩展日志,感谢 AI分享站 的启发。 任务系统在游戏开发过程中伴随着DEMO版本一直修改到RELEASE版本,无时无刻都在修改,时刻反复经受着策划和运营的折磨。无数的惨痛教训使我痛定思痛,放弃传统的硬编码方式转而寻求一种动态的实现方式,一种设计优秀的任务系统在这个过程中能让程序员独善其身,任凭风浪起,稳坐钓鱼船。这就是我想说的行为树任务设计思想。 下面我们来简单描述一下任务系统,任务系统一般可以分成这3个部分 ·可执行任务的条件,例如:角色等级,职业限制等等。这部分在detect中判定 ·任务执行过程中的细节,此处能拆分出若干项行为 ·任务的完成条件,有些任务是服务器判断完成条件的(杀怪等), 有些是客户端判断完成条件的(和NPC完成一次对话等) 任务可以拆分出的各种细节,每一个可以抽象成行为树的行为节点,这样根据任务的具体细节设计出一棵行为树。各个行为节点中的内嵌脚本可以交于策划填写具体的逻辑。程序部分的工作主要是实现角色的基本逻辑单元以及一些黑板功能,逻辑单元之间的组合交织就通过脚本实现。原本繁杂易修改的逻辑脱离出硬编码方式,这样的好处显而易见了。 我们看一下这个简单的例子: 有一个简单的任务:寻找NPC,然后和NPC对话至完成对话,并完成该任务 这个任务的具体细节有3步,第一步