游戏新手引导的演进版本
标签(空格分隔): as3
新手引导要解决的问题
- 提示玩家新功能开启
对于逐渐开放功能模块的游戏,非常有必要在功能开放时提示玩家,一般的新手引导进而还会有连续的功能操作引导。 - 引导玩家进行操作,形成操作习惯
陌生的功能总会给玩家(用户)带来困惑,而采用新手引导既解决了这个问题还避免了脱离游戏的说教感。 - 特殊剧情的需要
个别游戏会有特殊剧情,譬如玩家穿戴上获得的某件装备后才会触发剧情。这种情况文字或者图形的引导是非常必要的。
新手引导期望的表现方式
对游戏引导要求熟悉的可以跳过。
- 强制引导
限制玩家只能做游戏引导步骤的操作。
- 非强制引导
只是提示玩家操作,玩家可以不理会引导。
- 强制引导和非强制引导共存
对于页游,通常以强制引导(玩家只能按照引导步骤操作)为主,辅助以非强制引导。现在也有很多游戏反其道而行之,不采用生硬的强制引导了。一般而言,这两种方式需要共存。
- 引导步骤记录
游戏需要记录玩家那些引导做了,甚至有些会记录引导步骤。
- 多样的触发条件
一般而言,新功能开启会紧随对新功能操作步骤的引导。其他条件可以触发新手引导,比如:获得特定装备、背包满、到达地图指定区域等等。
- 多样的引导形式
引导形式至少有:箭头指示(可能会配合高亮闪光效果)、文字提示、引导动画。
- 重复多次的引导
要让玩家形成操作系统,仅仅一次的引导可能还不够,需要多次的相同步骤的引导。
新手引导的技术目标
- 显示和功能分离
引导的表现内容和引导模块的逻辑分离,相互不要耦合,由统一的中枢控制。 - 引导数据统一定义
引导数据包括引导步骤序列和每一步用户操作后的执行内容。为了方便维护,需要集中记录。 - 尽可能少侵入正常游戏逻辑
尽可能少影响相关游戏模块的逻辑。 - 客户端记录引导步骤
客户端记录引导步骤更好一些,因为这些内容和游戏的逻辑无关。 - 需要应对意外情况
新手引导模块需要应对可能出现的意外,比如在引导过程中游戏程序退出,如果正在进行引导时,又触发了引导条件。
具体的实现
规则定义
- 引导步骤只要执行了一步,就视同该引导都做完了,本地记录引导也只记录当前。
- 引导可操作UI元素是从其原始面板剪切到了引导模块,这样做是因为有些虚拟机底层对镂空效果的支撑不足。
- 完整的一个引导步骤依次包括:前置回调函数执行、显示引导内容等待玩家操作、玩家操作引导元素、后置回调函数执行。
定义引导的显示内容
- 引导主显示UI
这一是一个位于所有UI层上方的层,其中可以放置遮罩层、玩家可供操作UI元素、提示UI。根据是引导步骤是否是强制,可以控制遮罩层是否显示。遇到特殊情况,可以清空全部向导部分显示内容。 - 若干种提示UI
可以根据需要定义若干种提示UI,比如:闪烁的箭头、文字提示框、全屏的效果等等。
数据部分
- 数据项
包括:引导步骤顺序号、引导的类型(区分引导步骤的表现)、前置(后置)回调方法、后续步骤ID数组(第一步时)、其他必要信息。 - 引导序列——数据项的数组
逻辑部分
如下图所示
关键点
- 可操作元素放置到引导层来,玩家操作完成后再放置回去。
- 引导层的遮罩决定了是否是强制引导。