探索外包开发的极限:一个精品App诞生的全过程(10)
如上图,左边是“感悟”的阅读页,右边是“信念”的阅读页,它们阅读区域、删除、移动功能都是相近的,只不过是有一些细节的区别。 合并同类项 模块化的设计思维也好,面向对象的开发思维也好,其实都是合并同类项。 在用Visio做原型时,当我发现这两个页面有很多类似的地方,我就用鼠标把它们拖到一起,然后试着合并同类项。如上图,我把这两个页面的阅读模块摆到左右两边,把其中雷同的模块隐掉,放到中间的黑色容器来统一描述,就像一个夹心饼干。前端工程师拿到这页文档,只要开发中间黑色的馅儿就行了。 用一个流程图来表达两个功能 而至于“删除”功能就更简单了,画上一个流程图,它就是一个直接能翻译成代码的状态机。不管删除的是感悟还是信念,实际上只是一开始走的支路不同,而且这些支路仅限于前端展示,当状态机走到后端层面时,其实处理的逻辑都是完全一样的。 上面列举的这两件事,是把“信念”和“感悟”在原型层面能看到的一些相同之处归纳起来,让它们共享一些模块,但这种抽象能不能更高级一些?我发现一个现象:虽然“信念”在概念上是“感悟”的组,它们级别不同,但是在整个原型中它们很多的处理逻辑都相同,例如:移动、列表展示、打孔……这是因为在视觉设计上,它们只是不同类型的“纸”,必然会有很多雷同的地方,所以,何不直接把它们划分到一个“类”? 《黎明杀机》 一个很火的恐怖游戏《黎明杀机》最近出了个很大的BUG,各大平台主播都在玩这个BUG,玩出了很多搞笑的效果。首先说下这个游戏是怎么玩的,很简单,四个玩家扮演“逃生者”,一个玩家扮演“屠夫”。逃生者被屠夫抓住挂在树上就会死,要顺利逃出去你必须跟屠夫玩躲猫猫,偷偷修好5个发电机以便开启逃生门逃走。 屠夫一共有6种,他们的能力都是固定的,分别是能在草丛里偷偷放捕兽夹来阴人的“夹子屠夫”;手里拿着电锯,电锯拉开就能高速冲到你面前的“电锯屠夫”;敲一敲铃铛就能隐身的“小叮当”;喜欢在地上画个圈圈诅咒别人的“李奶奶”;《月光光心慌慌》的男主角“杀人鬼”和拥有瞬移能力的“护士”。 而作为逃生者,他们手上可以拿一些道具,例如可以用来晃瞎屠夫几秒钟的手电筒,或是可以用来包扎伤口的急救包。 于是奇怪的事情发生了,有一天,某个国外玩家发现了一个BUG:通过鬼畜地在“屠夫”和“逃生者”两个界面之间切换和点击,“逃生者”手上竟然可以拿到“电锯屠夫”的电锯,而如果这个人被一个“夹子屠夫”杀死了,夹子屠夫竟然可以捡起这把电锯,右键拉动电锯就能像电锯屠夫一样以60km/h的速度冲刺锯翻逃生者,还能拿到电锯屠夫专有的“电锯冲刺”奖励分数。 虽然这个BUG很重大,不应该出现,但是从这里可以看到《黎明杀机》通过对“类”的精妙划分而实现的高效开发(对于一个只有20人左右的小团队,能制作出占据Steam榜首的PC游戏,高效是必须的)。从玩家角度来看,不同的屠夫的能力都是固定的,但是从这个BUG可以看出,实际上这个“能力”都是由道具所赋予的。 电锯屠夫之所以拉电锯可以冲刺,并不是因为这个屠夫比其它屠夫多了一些专有代码,而是“电锯”这个道具本身就能赋予一个屠夫“高速冲刺”的能力;电锯冲刺的分数奖励,也并不是由其它模块来负责具体的计算,而是这个道具在使用时就会自动计算分数,然后把结算出来的分数“通知”给那个统一的计分模块;而逃生者手上可以拿电锯,屠夫可以像逃生者一样从地上捡起它则说明,所有的道具,不论是逃生者的急救包还是屠夫的电锯,它们都有很多共享的属性,例如:可以被捡起来、可以装备在手上、点右键可以发挥它的功能、屏幕左下角会用图标显示这个道具的状态…… 《黎明杀机》对“类”的划分 如上图,实际上,在《黎明杀机》中,所有的道具都有一个通用的模板,这个总的模板就是“父类”,在此基础上细分下去,形成各有特点的屠夫和幸存者道具的“子类”,直到最后,变成实实在在的,某个具体的可以拿在手上的“对象”,例如工具箱和电锯。 “类”:NOTE 回到「the App」原型设计,经过跟iOS开发者智超的讨论,我们决定把“感悟”和“信念”设计成同一个叫做Note的“类”(上图),有了这个类的划分,我就能进一步去整合Visio原型中除了上面提到的“阅读”和“删除”之外的模块了。 Visio原型制作完之后,我把它们转移到OneNote之中,专门建立了一个描述“Note”的分区,按照类的结构来建立不同层级的页面,然后把做好的Visio图形粘贴到各个页面里……其它的模块也都用模块化的思路整理到OneNote里,到了这一步,一个完整的App文档就差不多搞定了。 同步这个OneNote文档给程序员,给他们分配阅读权限,我们就能协同工作了。「the App」除了设计素材都是正版购买之外,所有软件也都是正版购买的,所以协同工作对我来讲只是点一下“保存到云”。正版是一种生活方式,每个月我大概花500月费来供养我整个电脑的所有软件和服务,这是爱的供养,这让我从来不需要到处去找破解版软件,我的电脑从不会中毒,我重装电脑之后所有软件的云端设置都会自动还原,我的所有资料也一直在付费云端增量更新,我从不担心它们会丢失,每天我一打开电脑就能安心工作。 (编辑:ASP站长网) |