一、开发方法简述
首先需要提到的是产品的开发模式(当然开发方式不仅限于后台),从前传统行业的项目或产品按顺序贯穿需求分析、业务建模;概要设计、详细设计,编码测试、集成测试、上线等等过程,系统分析设计的时间占项目总周期的60%可能更多,基本上到详细设计已经差不多是伪代码了,而且正式上线后功能会保持稳定,后续的版本变化的周期也相比漫长。这种方式也就是传统的瀑布模型,基本的过程可以简化如图:
传统的瀑布模型其实有几个问题:
1.需要准确的理解业务需求,导致分析周期过长;
2.因为前后依赖,很难精确的评估开发时间;
3.总体进度不好控制,容易造成延迟风险;
而我们熟悉的游戏开发,普遍应用迭代模型,因为在没有先玩到游戏前,无法对产品进行评估。而迭代的优点很明显:能立即从结果对设计进行反思。
如下图:
在迭代开发的过程中需要花大量的时间玩游戏,所以需要对游戏做prototype,其实这个prototype也可以是非数字化的,比如某些类型的游戏可以使用纸模或者卡片进行还原。
迭代开发模型也被称之为“敏捷开发”,是游戏行业的标准开发模型,有段时间最流行的敏捷开发方法是SCRUM。SCRUM方法中最主要的是Sprint概念,简单的说就是指定一个短期的时间(比如我们是每周)周期交付一个功能可测试的版本。这个版本中需要实现的功能特性,叫做Sprint Backlog(最终发布功能中的一部分功能子集)。每次冲刺后需要对功能需求再做重新评估。本文不对具体的SCRUM方法进行深入探讨,有兴趣各位google之。
SCRUM方法
可见相对几种开发模型就可以看出游戏开发的需求变动和版本发布周期必定更加剧烈,如果需要在产品经历中积累后台经验,需要不断的思考、重构再提炼,不仅要上升技术抽象层面,还需要从业务层面进行抽象,去积累和强化自己的游戏开发思维。
基于这一点,我们对比传统企业软件从游戏产品角度的角度出发,从技术和业务两个方面做出如下回顾总结。
二、游戏后台架构
游戏后台与其它产品相比有什么特殊的呢,没做游戏之前,我也非常好奇。回顾一下,传统软件形成了非常多的架构应用模式,简单的比如Client/Server,Browser/Server,3Tier,MVC模式等。传统的软件架构在演化的过程中,从早期的二层架构进化为三层架构,如下图: