文/千峰
笔者从传统行业转行到网页游戏行业多年,发现目前社会上各个团队或公司在网页游戏开发和运营方面存在很大的差别,总的来说是“一将成名万古枯”,失败的远多于成功的。
究其原因,是开发阶段的项目管理问题和运营阶段的问题。
本文就笔者在几年来工作中遇到的问题和所思做个总结,就网页游戏开发方面所涉及的项目管理问题谈些自己的看法。
这里所讲的网页游戏是基于浏览器运行,而非独立客户端游戏。其开发工具往往是FLASH,JAVA等富媒体语言,以及PHP,ASP等动态网页语言。
一、网页游戏开发经常会遇到的问题。
做过网页游戏开发的人,尤其是带过团队开发的人,在开发网页游戏过程中,经常会遇到的问题有:
1- 时间点控制不好,老是拖延
2- 遇到关键性问题,无法绕过,导致停顿而没有办法
3- 策划和程序的矛盾
4- 前台程序和后台程序的矛盾
5- 美术和程序的矛盾
6- 程序组内部就工作衔接问题造成的矛盾
7- 老板对开发工作的盲目干预
8- 人员的流动所导致的各种问题
9- 程序主体完成,但是测试通不过,无法商用化
以上问题和矛盾不用进一步深入,相信做过这项工作的人都有切身体会。
笔者认为,这些问题的根源是:把网页游戏当成了网络游戏开发。
网页游戏和网络游戏表面上看没有很大的差别,甚至对于绝大多数外行和用户来讲,是一样的。但是,从开发者角度来讲他们之间有本质的差别:
首先,程序员的出生不同。
网络游戏程序员大多数是计算机信息工程科班出身,以C++/JAVA等专门的语言为开发工具。尽管掌握的语言工具不多,但是非常精通。特别是他们对于面向对象有很深刻的认识和实践经验。对于团队合作有经验,也非常认同团队合作的重要性。面向对象的概念是随着软件工程由简单向复杂,由个体开发向团队开发转变过程中产生的,只有参与过团队开发的程序员才能体会到面向对象方式的重要性和实用性。
而网页游戏程序员大多没有接触过专门软件开发语言,他们接触更多的是脚本语言,如AS,JS,HTML,这些脚本语言并不是非常严格的面向对象语言。另外,很多做网页游戏的程序员原先是做美术或者其他工作或者有独立开发过小游戏的经验,但是没有受过专业的计算机软件工程教育,更没有参与过比较大的团队协作。这些原因,导致了很多网页游戏程序员专业性不强的同时,还自我感觉良好,认为懂的挺多,但是却没一样精。
更为重要的是,网页游戏有后台一块,特别是一些对性能和功能要求比较高的网页游戏,后台是无法用脚本语言来实现的。目前,很多后台通过JAVA,C++来实现。这样,前后台的矛盾将会显得非常突出。因为很多功能前后台都可以实现,但是尽管都可以实现,不同方法却对整个系统的安全性,可靠性,效率有天壤之别。很多项目,由于在前后台工作上的盲目妥协,导致项目的失败,或者小范围可以测试使用,却无法承受大规模并发用户的压力。我经常听到很多项目经理说他们的后台不行,但是,不知他们有没有想过,在前后台程序的分工上是否合理?有没有让前台程序做了后台应该实现的功能?或者反其道而行呢?
因为程序员的问题,导致了以上问题:策划和程序的矛盾,前后台程序的矛盾,程序组员之间的矛盾,程序看似完成但无法通过测试等等问题。最终导致项目开无轨电车,拖延。
因此,作为项目负责人,要解决好这个问题,关键在于:
1- 培训。
培训的主要目的让团队成员,尤其是程序员认识到团队合作的必要性和重要性。
再有一个就是要让面向对象概念深入人心。面向对象的培训不光针对于程序员,团队的每个岗位都需要认识到,这是一种思考问题的思路,工作的方式。需要让每个人都认识到自己是团队这台“钟表”中的一个零件,每个零件都有自己的属性,职责和工作方式,只有各个零件之间精密配合,钟表才能走时准确。
2- 合理的工作分配。
包括前后台工作分配,程序组员之间的工作分配。在分配工作时,一定要注意根据各程序员的特长,能力,工作习惯合理分配。比如,有些程序员喜欢先思考,在写代码,那就不要在他思考阶段因为看不到他打代码,而去干扰,质问他;有些程序员喜欢晚上写程序,效率高,就可以在工作时间上寄予一定的合理安排;有些程序员喜欢写核心算法,有些程序员喜欢写表现层;有些程序员喜欢一个人思考,有些程序员喜欢大家一起讨论。等等情况,对于项目经理,必须心知肚明,才能把人用在刀刃上。
其次,并非所有网络游戏能实现的功能都能在网页游戏上实现。
现在很多网页游戏项目是从网络游戏移植过来的。很多项目在立项的时候没有充分意识到两者所实现的平台之间巨大差别,而盲目上马,导致失败。
客户端网络游戏平台是windows系统,他直接调用计算机系统资源,而且很多时候基本上独占系统资源。而网页游戏平台是网页浏览器,是间接使用计算机资源,很多时候是共享系统资源。
打个不恰当的比方:客户端网络游戏好比直接从厂家进货,拿到的是一手价格;网页游戏好比从批发市场进货,拿到的是二手设置三手价格。
两者的舞台不同,导致所能实现的功能也不同。因此,在立项时,一定要注意到这点。
成功的网页游戏创意是,网络游戏能够实现,但不削于去实现的项目。如:开心偷菜,完全可以做成一个客户端,但是,他在网页游戏平台上实现效果不差,而且方便,隋开随用。当然网页游戏为其首选。
相反,为什么网络游戏中非常重要的一种类型:即时战斗类,至今尚无成熟的网页游戏?原因在于网络游戏可以把大多数游戏中需要的素材保存在各自的电脑客户端中,网络之间的传输都是字节占用数极少的数据。因此,游戏中表现层的东西都在本机直接调用,速度快,稳定,不会出现滞后。而网页游戏考虑到客户端每次都要下载,一般都不会大于3M,否则用户就没有耐心了。在3M的文件中无法包含所有素材,因此,游戏中肯定会传输字节数比较大的数据,比如图片等。这样,即时战斗类网页游戏使用中就会受到网速,数据包大小,客户电脑配置等影响而产生无法预期的问题。所以,这种类型的游戏通过网页游戏方式实现是有很大问题的。在做立项时就需要有所考虑。
再次,团队带头人的出生不同。
很多老板并没有从事过相关行业的经验,也许只是因为有钱,兴趣才做这行。因此,现在有很多游戏开发结束后没有成为大众的游戏,而成了老板个人的定制游戏。作为项目经理,尤其是有经验,有能力的项目经理,必须要把握好项目的开发节奏。而不能被老板所左右。笔者在这点上有切身体会,笔者从传统行业转到游戏行业一开始,投资过一个项目。刚开始时,我到项目组看的时候经常看到程序员没在敲代码,就质问项目经理什么原因,这个项目经理比较弱势,也没解释,在我的压力下,立即开会,把原来的先定框架,后打代码的方案否了。改为按照我的要求,一周需要看到什么效果,两周需要看到什么内容。于是公司里立即热闹了,键盘噼啪响,一个月后我的确看到了我想看到的东西,可是下面进行不下去了,要继续,必须把这一个月的工作大部分推翻重来。这件事情发生后,我学习了一些资料,深刻理解到,做程序项目,好比造房子,地基有多深,决定了能建多高的楼。而打地基往往是看不到进展的,但是耗时很大,投入很多。所以,作为外行的老板,必须要有耐心等待地基夯实,打牢的良好心态。而作为项目经理,首先必须要心里有数,如何打地基,打多深地基,打多久地基,其次,需要有说服老板的能力。这点,在项目开始阶段尤其重要。
二、网页游戏开发的几大误区。
笔者原先从事传统行业,带过团队,做过业务。当初决定转向网页游戏行业时,从各种渠道了解过这个行业。就像小时候听过的小马过河故事,只有真正做了,才了解到其中的真实情况。现将网页游戏开发中的几个认识误区谈一下自己的体会:
误区一:网页游戏投入到底是高还是低
如果把网页游戏项目交给一个有开发经验的团队做,一般最多需要30万元和4个月时间。一般的网页游戏开发工作只需要6个人的小团队开发。团队中包括:一个策划,一个后台程序,两个前台程序,两个美术。四个月的开发时间也是比较宽裕的,包括立项,策划,架构,数据规划,写代码,调试,测试。其中立项,策划,架构和数据规划需要一个月时间,写代码最多需要两个月时间,可以边写边测。最后留一个月时间做系统调试和测试。因此,笔者认为所有超过以上时间和资金投入的项目遇到了或多或少的问题。主要有以下几点原因:
1- 策划上发生改变。这种改变的缘由基本上逃不过以下三种原因:
a) 老板想法改变;
b) 策划想到的程序无法实现,只能换策划案;
c) 策划中的一些细节等实现后,发现数值上,效果上和策划当初的想法有出入或者没有到位。
2- 程序架构不完善。比如:
a) 很多全局性的问题没有考虑清楚,就着手做具体某个模块,模块和模块之间的接口也没有想好,导致写到一半,无法继续下去,只得重头再来。
b) 没有以面向对象思路来写,导致代码重用性降低,产生很多冗余代码。而且很多功能无法通过过程化语句实现。
c) 程序分工不明确,代码不规范,使得合理的人员的流动带来非常多的麻烦,甚至于整个项目重头来。