.. There is nothing new under the sun.
如何制作游戏的新手引导
Intro
在制作新手引导之前,首先需要明确一点,新手引导的内容只会使用一次。基于这个前提,我们就不应该将新手引导的内容放入到任何主要的业务代码中。
原因如下:
- 新手引导的只使用一次,但主要的逻辑在后续的无数次使用中都需要调用,哪怕只进行一次 if 判断,都是额外的损耗(实际上不可能只有一个 if ,而是会渗透到代码的方方面面)。
- 新手引导和其他的业务代码在系统上应该互相隔离,将新手引导的代码放入主要业务代码会导致模块和模块之间产生不必要的耦合,增加后续的维护成本。
一个比较常用的思路是为新手引导专门做一套和正常游戏中一模一样的 UI,依照玩家的输入事件,让新手引导 UI 按照流程依次进行弹出。
有一些特殊的新手引导场景是有一个深色的颜色背景,只高亮显示需要点击的按钮。这种 UI 界面没有必要专门去做 UI 的镂空,一个比较实用的方案是直接在新手引导的画布下放置一个和原 UI 位置相同的按钮。
有些引导界面需要点击弹出的 UI 菜单,这些 UI 菜单也可以单独制作一套引导用的 UI,这样可以避免玩家误操作导致引导出现问题。