张左峰的歪理邪说之对于瀑布式开发和敏捷开发在网游开发中的应用

本周小孩送回姥爷姥姥家,终于有时间更新一下自己的微博了,三年没更新了,我真TMD懒惰!我错了。。。。这次努力更新一些东西

创新互联专注于洛龙企业网站建设,响应式网站设计,成都做商城网站。洛龙网站建设公司,为洛龙等地区提供建站服务。全流程按需定制制作,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

 

有些人问我,为啥不去一些大点的微博站写这些内容。我觉得没有必要啊,反正早晚都会被搜索引擎爬到,哪里都一样。

 

本文纯理论,是一个思想指导,你完全照搬,你就输了。。。。尽可能写的雅俗共赏一些,一起研究学习进步!

 

正文开始。。。。。(哪那么多废话。。。果然人老了)

 

首先,我们要明确两个概念

 

瀑布式开发:瀑布式,顾名思义,自上而下,连绵不绝,稳步推进。瀑布式开发,是一个我们最常规的开发方式,他应用于各行各业。在做之前,我们先安排一个缜密的工作计划,环环相扣,有前置条件,有最那天开始的工作。然后稳步推进,最终见到结果。

 

敏捷式开发:这是一个前5年开始流行的一个开发模式,流派很多,这里说的敏捷是Scrum。敏捷开发有点像一个没有地图的人周游世界,你一直在前进,一直在变化自己的路线,当然这个比喻也想有点不恰当。

 

还是不明白的,请参考各种维基

 

好,那我们说回来,网络游戏项目,也是一种负责的IT项目工程。虽然他的参与职能超级多,周期也不短,那自然要套用一些开发的指导思想

 

首先,我们要假设几个前提(为啥?具体问题具体分析)

 

1.我们这个项目,全新的,没有任何基础(可以是新平台,也可以是游戏类型全新创造,反正就是没有积累,或者有积累,但只能瞻仰)

 

2.我们项目,要调优,要做换皮、要做升级、要做资料片、要移植平台(反正不管怎么说,不是全新创造,继承已有事实,做同类型产品)

 

3.我要拿我们RPG的3D引擎,做×××游戏,或者其他啥的跟RPG没关系的(借用现有资源或第三方资源,做一个你没有积累的事情)

 

这是两个在项目初期遇到的比较明显的问题,好,具体来分析一下

 

1.首先如果你是一个全新项目,面临一穷二白的尴尬境地,你敏捷啥?敏捷不是强调持续的交付,持续的拥抱变化么,而且敏捷的最大的问题在于,并么有长远目标规划,不适合这种动辄1-2年的持久开发期。

 

在一穷二白阶段,瀑布式开发,是你最好的选择,你要努力的搭建出你的产品概念原形,或者,稳步的构建你的基础引擎(服务器+客户端)

在瀑布式模型中,你有一个非常明确的目标,并且划分出明确的阶段性、里程碑。这些基础内容,一般不会出现什么方向性错误(当然,如果你的策划很扯淡,上来要做的事就定错了,那就SB了,啥开发模型都解决不了这个问题。当然,有一个东西可以帮到你,请参考我后续博客中,关于 标准网游开发模型 立项篇)

 

那么我们只要按照我们的开发模型,来进行项目的前期规划,就可以得到一个可执行性很高的工作计划,他的目标非常明确清晰,里面有大量的实验,还有要实现很复杂的架构设计,反正总的来说,做了好多,就是在做基础,游戏根本还没影子呢。

 

好,经过我们半年的努力,我们的基础平台终于搭建完毕(服务器与客户端的引擎,非业务逻辑部分,也非业务支撑引擎),马上就要开始我们的产品原型制作。我们要用我们这些半成品的工具来进行原型开发,努力按照代码驱动,把我们的花架子,搭建出来。结果搭建出来,老板也很满意,那么就会进入到实际的开发阶段

 

实际的开发阶段不用于前面这个阶段,他是真刀***的,代码驱动,面向过程的做法,不可以了,要不然后面你会死!现在需要转向数据驱动,整个从新打一个真架子,走完这个阶段,我认为,该考虑转变开发方式了!

 

为什么呢?因为一旦游戏真正的开发原型搭建完毕,完成核心系统开发,就要面临一个严肃的问题,你的游戏,好玩吗?(不好玩?那赶紧砍掉项目,开饭馆去吧,不是说失败的IT人,最终命运都是开饭馆去吗?)好玩吗,这个问题,超级严肃。这关系到你的游戏设计,最终能否经得起用户和市场的考验。这个阶段,我相信你的项目管理压力,会上一个档次,所以合理的开发方式,将会缓解这些问题发生时的压力。

 

中途插一句,瀑布式开发网游的最大问题的实例,就是,有些人,总说,我们游戏还不完整,还没有体现出我们真正的设计,反正核心思想是,做到最后,他就成神了!就一定能成功。我觉得这纯属扯淡,扯各种蛋。当你中途已经偏离最终方向(高品质,好体验的游戏产品)的时候,后面那些事,做越多,错越多,当然游戏项目类型不同,有些的确需要核心玩法完整性才能真正体现游戏乐趣,如休闲竞技类游戏。

 

好,当你产品原型具备,核心玩法开发完毕,这个时候,我建议转向敏捷的开发方式。具体讨论,请看一下个问题分解。

 

2.针对第二个问题,就是针对已有的产品基础,进行完善、升级、再包装。我推荐,这种项目一开始,即采用敏捷开发方式。

 

敏捷开发的优势在于,不断修正前路,以便到达无限远的终点(虽然谁都不知道终点在哪里)

 

简单回顾一下该怎么做,假定接着问题1继续展开

 

首先,我们要形成一个可以进行敏捷开发的组织结构,具体的可以维基

接下来,我们要开始形成我们的,工作任务备选单(Backlogs)既然是备选单,一定特别特别多

再接下来,这么多任务,不可能一口气干掉,那我们来评估一下关键路径,划分一下优先级和工作量人时

那么,一个很棒的Backlogs形成了,我们还要,根据自身项目的时间安排,来安排阶段开发计划(sprint)注意工时的分解颗粒度与饱满度

好,一切就绪,开始干活,每个人都领到了自己的任务,那么大家狂加班。。。。。

加了4天后,到了周五,我们做整合工作,整合完毕,交付测试,交付验收(也可以根据项目进展,考虑是否采用持续集成)

好,经过这么1个月的折腾,我们做了4个版本,并且最终合并为X月测试版,交付内外部客户评测

 

对比瀑布式开发,交付的周期被大大缩短,瀑布式开发中,很多时候要看里程碑,但是两个里程碑之间间隔,有时候超过3个月甚至更多,这对项目对市场或者运营的快速反应,影响巨大

 

所以,敏捷开发,在游戏项目中,比较适合后期,完成核心玩法功能开发后,进行铺量和调优。又或者 扒皮、平台移植、资料片等

 

3.第三个问题,挺有意思的,我相信使用第三方引擎的人,会有面临这个问题,你说你有积累吧。。。的确有,但是跟你要做的事不搭嘎,这的确挺悲催的。那好,也来分析一下,我认为对的方式方法

 

对于这种情况,一定是敏捷和瀑布杂糅一起使用,怎么弄?

 

首先,引擎成型,很多基础工作你省了,恭喜。

然后,你需要有个敏捷阶段,确定如何改造引擎来适合新产品(肯定得改改吧,或者根据需求,确定你新的制作方案)

再来,你还是需要做一个瀑布式开发,做你的产品原型,有了工具,只是简化了你做工具的时间,并没简化这块

再来,当产品原型通过后,你还是需要进行开发,这块瀑布也是可以的

当你的开发结束后,你又要走敏捷的路线,调整产品

 

好,看完了这些,有人会问,有没有一种新型的开发模式,统一起他们俩?这个当然有的,可以参考一下FDD 需求驱动开发 ,但是我认为,有点难,难在,他需要有个非常有效的开发模型作为指导方向(这解决了,敏捷开发没有中长期精准目标的问题),但是开发模型这个玩意,也就是大公司有时间总结归纳,一般小公司小团队,都是经验致胜。

 

游戏的用户体验是唯心的,项目管理可以约束过程,但搞不定结果,所以当你体验不行时,再好的项目管理也白搭。相反,当你体验很棒,但是时间成本质量的平衡把握不住,哪也许就会毁灭一个伟大的项目。

 

请记住仔细阅读下面句话

 

这3种问题的类型,我描述的条件太少,实际工作中,遇到的问题太多,还是那句,具体问题具体分析。不管黑猫白猫,做了赚钱产品的就是好猫,不要纠结与开发模式上,其实只要项目管理者习惯,并且能管好,那种都行。


分享文章:张左峰的歪理邪说之对于瀑布式开发和敏捷开发在网游开发中的应用
文章起源:http://ybzwz.com/article/jhhedd.html