游戏开发论坛

 找回密码
 立即注册
搜索
查看: 9488|回复: 0

基于行为树的新手引导设计

[复制链接]

4万

主题

4万

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
83125
发表于 2018-3-27 14:04:26 | 显示全部楼层 |阅读模式
文/ArtStealer

新手引导:在游戏中的作用是指引教学,降低玩家的学习成本。在当今游戏节奏加快的时代背景下,让新手玩家更快的了解游戏的玩法,更快的上手,进而提升用户的留存率。游戏引导起到了至关重要的作用。同时游戏在一些功能设计和UI布局上的小缺陷,也可用通过适度的游戏引导让玩家去了解和适应这些瑕疵,不至于难以理解和发现对应的功能而导致上手困难甚至直接放弃。

虽然是新手引导对国内游戏来说,基本已经是必备的系统功能(甚至有的到了泛滥的地步)。但是开发一个好的引导系统还是比较麻烦的,甚至会导致游戏的异常卡死,反而会导致用户的流失。尤其是对于一些复杂游戏,没有引导玩家很难上手,但是复杂游戏的引导设计不太简单,尤其是开放性引导,要考虑很多异常情况。

引导系统的设计有很多方案,下面来分享一下具体的实现方案。

这也是我这几年经历了3款网游的引导系统设计不断地完善总结出的实用解决方案,也是我们现在正在研发的游戏所采用的引导系统:基于行为树的引导系统。

正式介绍这个引导系统之前,先简单的说一下前两个游戏的引导系统:

1、纸上谈兵

这块游戏是我头一次开始设计引导系统,每一步的引导单元都是一个switch中的case,完成一步后 id的修改。来实现引导的推进和跳转。

优点:可以在运行时根据当前运行情况去进行一些引导节点的跳转,引导显示的控制也比较随意。

缺点:编写要求严谨,稍有不慎就容易出现错误.可修改性低,后期的增删维护成本高。

1.jpg

2.jpg

3.jpg

2、风暴荣耀

第二次做引导系统,总结了之前引导的缺陷,以及基于引导基本是一系列操作序列的特点。因此设计成了一系列行为节点组成一个队列的方式。允许多队列并行,也可以在任意的运行时自由的加载编辑好的行为队列。

优点:行为节点已经独立了,有了一点行为树的雏形(组合只有序列一种方式),增删改动很方便了。

缺点:队列不能在运行时修改,执行顺序是固定的,异常处理能力弱。

4.jpg

5.jpg

6.jpg

通过对前面引导系统的总结和完善,我们正在研发的游戏采用了最新的引导系统框架。一套基于行为树的行为节点组合系统。

基本的参数定义:

  • BehaviorStatus:为节点的激活状态。
  • BehaviorResult:为节点的运行状态(运行返回值)。
  • BehaviorLogic:逻辑运算方式(目前只用在并行节点)。

7.jpg

主要的行为节点定义:

8.jpg

下面通过几个简单示例来介绍如何使用,也可以感受一下他的灵活性、流程可控性、可配置性。

(注:下面示例图中蓝色节点都为复合节点,绿色节点都为行为节点。)

1、设计一个引导对话框,需求是用户点屏幕任意位置后,对话框关闭。如下图所示:

(如果还要增加对话框过了一段时间后自动关闭的功能,则只需要增加下图中黄色WaitSecond节点就可以了。)

9.jpg

2、游戏中有个界面,在玩家完成了一系列操作后,需要关闭界面,最开始指定时间内是不出现引导提示,允许玩家自己去完成关闭操作。若玩家在指定时间后还没有去点击关闭按钮,则出现引导提示,指引玩家去点击关闭按钮。(若要屏蔽其他按钮的响应,则再开启下图中黄色WaitTouchWidget节点,若这样还不够,界面中有些触摸没有被WaitTouchWidget屏蔽掉,可以再开启橙色TouchSwallow节点,强制屏蔽触摸。)

10.jpg

3、引导过程中难免会出现一些异常,还有就是某些情况下需要进行一些引导步骤的回退或者跳转,参照下图示例:

11.jpg

总结:

以上三个简单的示例虽然只是游戏引导的很小的一部分,但是基本可以看出现在引导系统的编辑灵活性,运行中动态流程控制,异常处理能力都是很不错的。开发人员可以自由的定制扩展功能。当然任何系统都会存在他的局限性,另外还缺少一个方便好用的编辑器来进行这些引导行为树的编辑,这个就需要我们开发人员去不停的扩展维护,让程序不断的迭代更新,让功能越来越强大,让开发越来越便捷。

via:GAD

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-4-27 11:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表