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

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

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

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

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

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

1、纸上谈兵

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

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

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

 


2、风暴荣耀

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

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

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


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

基本的参数定义:
 

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


主要的行为节点定义:
 


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

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

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

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


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


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


总结:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于Unity的新手引导组件的构建方法: 1. 创建一个新的场景,将需要引导的UI元素放置在场景中。 2. 创建一个新的脚本,用于控制引导流程。 3. 在脚本中定义引导步骤,包括需要高亮显示的UI元素、提示文本等。 4. 创建一个新的Canvas,用于显示引导提示。 5. 在Canvas中创建一个新的Panel,用于显示引导提示文本。 6. 在Panel中添加一个Text组件,用于显示引导提示文本。 7. 在脚本中控制Canvas和Panel的显示和隐藏,以及提示文本的更新。 引导方法与流程: 1. 在游戏开始时,显示第一个引导步骤。 2. 当玩家完成当前引导步骤后,隐藏当前引导提示,显示下一个引导步骤。 3. 如果玩家在某个引导步骤中卡住了,可以提供一个跳过引导的选项。 4. 当玩家完成所有引导步骤后,显示一个完成引导的提示,并进入正常游戏流程。 5. 在游戏中,如果玩家需要重新学习某个引导步骤,可以提供一个重新学习的选项。 6. 在引导过程中,需要注意引导提示的时机和频率,避免过于频繁或过于繁琐。 ### 回答2: 基于Unity的新手引导组件的构建方法及引导方法与流程可以分为以下几个步骤。 构建方法: 1. 创建新手引导组件:在Unity中创建一个新的游戏对象,并给它添加一个新的脚本组件。 2. 编写脚本:在新手引导脚本中,可以定义需要引导的步骤和流程,包括引导提示文字、图片或视频等资源。 3. 关联引导对象:根据游戏的具体需求,在脚本中关联需要进行引导的对象,如按钮、角色等。 4. 设计引导界面:在脚本中设计引导界面,包括引导提示文字、图片或视频等元素的布局和样式。 引导方法与流程: 1. 引导触发条件:在游戏的特定场景或阶段,通过判断条件来触发新手引导的开始。条件可以是游戏进度、角色等的特定状态或事件。 2. 引导提示:在新手引导开始后,显示引导界面,并给玩家提供引导提示文字、图片或视频等。提示内容可以包括游戏操作、功能介绍等。 3. 操作指引:根据引导提示,在脚本中设置操作指引,如点击按钮、滑动屏幕等。通过捕捉玩家的操作行为,判断是否完成了操作指引。 4. 完成引导:在玩家完成所有的操作指引后,显示引导结束界面,并根据需要给予奖励或进行下一步的引导。 总结: 基于Unity的新手引导组件的构建方法主要包括创建引导组件、编写脚本、关联引导对象和设计引导界面等步骤。引导方法和流程则包括触发条件、引导提示、操作指引和完成引导等步骤。通过设置合适的条件和提示,引导玩家逐步熟悉和了解游戏的操作和功能,提高游戏的可玩性和用户体验。 ### 回答3: 基于Unity的新手引导组件的构建方法及引导方法与流程主要可以通过以下步骤实现: 1. 创建新手引导组件: * 在Unity中创建一个空对象来代表新手引导组件,可以命名为"GuideComponent"。 * 添加一个UI面板作为引导框,用于给玩家显示引导提示信息。 * 添加其他必要的组件,如文本、图片、按钮等,用于显示引导的内容和操作提示。 2. 构建引导流程: * 设计一个步骤流程来引导玩家完成特定的任务或操作。可以考虑使用状态机来管理引导流程,将每个步骤作为一个状态。 * 将引导流程分解为多个步骤,每个步骤由一个或多个触发条件和相应的操作指令组成。 * 在引导组件中使用列表或数组来存储所有的引导步骤,并用一个整数变量来记录当前步骤的索引。 3. 实现引导方法: * 在引导组件的脚本中编写逻辑代码,实现指定步骤的触发条件和操作指令。 * 设置触发条件,例如玩家达到指定的游戏进度、点击特定的按钮或触发某个事件等。当满足触发条件时,执行相应的操作指令。 * 操作指令可以包括弹出提示框、高亮显示特定的UI元素、播放动画、播放音效等,用来引导玩家进行操作。 * 在每个步骤的操作指令执行完毕后,触发条件检查下一步骤是否可以执行,如果可以则进入下一步骤,否则等待玩家完成当前步骤的操作。 4. 结束引导: * 在引导的最后一个步骤或完成所有引导流程后,根据需要进行适当的处理。可以选择隐藏引导框、删除引导组件或显示其他的相关信息。 使用基于Unity的新手引导组件可以实现针对玩家的引导和教学,帮助新手更好地了解和掌握游戏的操作方式和规则。但需要注意引导的内容和方式应该简洁明了,不过多干扰游戏本身的体验。同时,在引导过程中应该给予玩家足够的自由度,让他们有机会进行独立的探索和尝试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值