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

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

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

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

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

1、纸上谈兵

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

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

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

2、风暴荣耀

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

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

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

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

基本的参数定义:

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

主要的行为节点定义:

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

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

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

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

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

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

总结:

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

基于行为树的新手引导设计相关推荐

  1. 【人工智能】基于蒙特卡洛树搜索和策略价值网络的AI五子棋算法设计

    基于蒙特卡洛树搜索和策略价值网络的AI五子棋算法设计 摘要 蒙特卡洛树搜索算法 五子棋博弈的状态价值函数 附1:详细论文说明下载: 附2:实现代码下载(2022.10更新后代码): 摘要 随着人工智能 ...

  2. Chem. Sci. | 3D深度生成模型进行基于结构的从头药物设计

    本文介绍来自北京大学来鲁华教授课题组发表在Chemical Science上的文章"Structure-based de novo drug design using 3D deep gen ...

  3. 游戏 新手引导 设计_我认为每个新手设计师都应该知道什么

    游戏 新手引导 设计 重点 (Top highlight) I should probably have titled this article "What I wish I knew as ...

  4. 基于B树的图书管理系统(C语言)(含完整代码)

    目录: 一.实现的设计要求 1.基本要求 2.额外选做要求 二.项目文件管理 三.完整代码 1.实现的接口 2.头文件 BTreeBook.h 全部代码 3.源文件 BTreeBook.cpp 全部代 ...

  5. 基于Altium Designer10的PCB设计入门过程

    基于Altium Designer10的PCB设计入门过程 原理图绘制 原理图绘制 ①新建Project(工程) 打开AD10,左上角依次点击File->New->Project-> ...

  6. 基于SDSoC的软硬件协同设计

    文章目录 基于SDSoC的软硬件协同设计 一 基于SDSoC的软硬件协同设计流程简介 二 SDSoC使用 三 SDS指令简介 SDS指令简介 SDS Pragma组合 四 搭建SDSoC Platfo ...

  7. java web毕业答辩_基于JAVA的WEB页面设计毕业答辩.ppt

    基于JAVA的WEB页面设计 网站管理模块设计 网站页面设计 网站导航设计 网站交互设计 网站学习资源设计与后台设计 研究内容 管理模块 登录模块 权限管理模块 账户管理模块 系统登录模块设计 系统权 ...

  8. 基于Vue的管理后台设计(布局篇)

    文章系列: 基于Vue的管理后台设计(布局篇) 基于Vue的管理后台设计(登录鉴权篇) 基于Vue的管理后台设计(打包部署篇) 前言 我打算把接下来要写的几篇文章写成一个系列,用来记录一下如何基于Vu ...

  9. python网络爬虫课程设计题目_山东建筑大学计算机网络课程设计《基于Python的网络爬虫设计》...

    山东建筑大学计算机网络课程设计<基于Python的网络爬虫设计> 山东建筑大学 课 程 设 计 成 果 报 告 题 目: 基于Python的网络爬虫设计 课 程: 计算机网络A 院 (部) ...

最新文章

  1. 超1500人报名参加的公开课,了解一下
  2. mysql 5.7开启并行复制
  3. wordpress安装
  4. 关于VS项目平台的x86,x64,Any CPU以及Debug和Release
  5. 双脑协同RSVP目标检测
  6. Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS
  7. 【C++】异常 Exception
  8. 【转载】企业即时通讯为什么兴不起也衰不了
  9. 导致网站服务器负担过重,利用httpd.ini实现图片和文件的防盗链
  10. Mysql也可以联合多表更新和删除
  11. CJSON parse.c
  12. Ubuntu16.4配置caffe详细流程
  13. RPM、SRPM和YUM,linux包rpm包管理工具
  14. 【指纹识别】基于matlab GUI指纹预处理+特征点提取【含Matlab源码 1693期】
  15. 启动Oracle的图像化管理工具OEM报错
  16. 软件需求最佳实践笔记(一)
  17. 局域网管理工具_分享一款苹果手机文件管理工具
  18. 情人节程序员用HTML网页表白【制作浪漫气球520告白相册】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  19. 数学专业参考书整理推荐
  20. 极域电子教室与360冲突解决方法

热门文章

  1. joomla 标准激活的php mail 功能,php 通过joomla jmail 类使用 gmail smtp 账号发送邮件的简单示例...
  2. mysql 12安装教程下载_MySQL 8.0.12.0安装教程
  3. python数据库操作sqlite_Python操作mysql和sqlite
  4. 万用表怎么测量电池容量_如何使用万用表,使用万用表测量常用的六个方面
  5. zookeeper清空hbase_Ambari 管理hadoop、hbase、zookeeper节点
  6. mysql ---- 官网的测试数据库
  7. 洛谷P2680 运输计划(倍增LCA + 树上差分 + 二分答案)
  8. [Swift]最强UIButton解析 | #selector()绑定点击事件
  9. 云计算的6个未来趋势
  10. RealARM210 V3.2硬件版本 nand flash地址分配明细