一 角色与分工
人类绝大多数的工程都包括这样几个角色:设计者,实现者,检查者。实际对应就是的就是一般工程的三个阶段:设计--->实现--->验收。
在游戏软件工程中对应的是:策划,程序,美工,QA,程序和美工同属于实现者。
二 职责
策划:分析玩家对于游戏各种各样的需求,针对这些需求制定出游戏的规则,设计出游戏的各个系统。目的在于让更多的玩家更久地沉浸在游戏中(时间收费游戏),或者让越多的玩家花越多的RMB购买游戏中的道具(道具收费游戏)。
美术:提供游戏中需要的各种美术素材:界面,地图,光效,人物模型,动作资源等。
程序:把策划制定的规则翻译成机器语言,美工提供的各种素材粘合到游戏中。
QA:根据策划案验证程序功能,除了功能性测试之外,还可以进行程序的稳定性测试,压力测试,平衡性测试等。
三 管理
由于本人是一名程序,所以先谈谈程序团队的管理。游戏软件基本可分为:底层引擎,上层逻辑以及游戏工具,所以团队成员也分别由引擎程序员,逻辑程序员和游戏工具程序员组成。效率是衡量管理方式的一个最重要的标准,那么怎样才能提高程序生产的效率呢?那就是专业,让最专业的人才做他最懂的事情,不但保证效率而且保证准确。例如引擎程序员可以分为专门负责渲染,网络,物理,AI等的人员,让专门的人员负责自己最擅长的一块。逻辑程序员可以按照游戏系统来分,比如专门负责技能的,负责帮派,好友系统的,负责交易的,任务的等等。
作为程序最痛苦的事情莫过于看着别人没有一行注释的代码,然后不知所云,最后只能把作者叫过来。然后作者看了看,说这是我很久以前写的代码了,我也要看看,等会再和你说。于是,时间就这样浪费了,不是一个人的时间而是两个人的时间。更可怕的是,很多人不问原作者,或者原作者已不知去向,然后自己硬着头皮看,于是一个疏漏bug就产生了。按照游戏系统来分工,还有另外一个好处,可以让客户端和服务端进行结对编程,这样可以节省客户端和服务端程序员之间的沟通成本。
四 程序管理中的风险控制
在游戏行业中,跳槽非常频繁,怎样建立一个机制可以把由于员工流失带来的随时减少到最少呢?特别是在上面提到的专业分工,由于每个人都是各司其职,可能某个员工的离职就能导致整个项目的停滞。为了把损失减到最少,就需要在最短的时间内有人能够接手。我认为有两个解决方法,一个是结对编程法。就是每个模块一个人主负责,另外一个人监督。实际的编码过程进行模块代码的交叉检查,这样每个人不但要写自己模块的代码,还要分出一部分时间去看别人的代码,虽然降低了效率,但是换来的是代码的安全性。并且很好地解决了由于离职带来的风险。另外一个方法是每个小组,例如引擎组都有一个技术负责人,任务是设计各个模块,并检查各小组人员的代码,当某个组员离职或者休假时能够接手或者指导别人接手。比起第一个方法,可能这个方法可操作性高一些,实际上现在很多的游戏公司也是采用这样的方法。