游戏主程的5点责任

为啥突然写这篇文章哪?因为和一个巨人的朋友谈主程的职位问题,谈完后我发现好像不太对劲,引起我思考了好久,因为这两年太安逸了,感觉到比较可怕。那就把这些年见过的主程,我认为的主程,我对于主程的思考,和主程应该承担的责任写下来。

    有些人,工作了很多年了,但差不多每年换一次工作,因为很多游戏研发周期只有1年多,结束就走人。然后最后手里会积累大量的代码资源,这些资源有可能是别人的,也肯定有自己的一部分,但是这个时候如果没有融汇贯通,那么这些东西都不是自己的,他手里的资源也就像一个人家里买了很多书但是从来不看一样,暴殄天物,可是一般情况一个人也看不了这么多的东西,最简单的道理就是msdn了,这就有了第一点的要求,能够进行大量的信息索引。就是说一个主程必须要有足够多的见识,同时必须要能够快速针对当前项目碰到的问题定位,并且在自己的知识库里找出来。

   当然我们不可能储存足够的信息在以后的工作中来用。但是必须要有快速上手一个新的项目的能力,如果项目中有大量的超出自己知识范围的东西存在,那么我的建议是放弃在这个项目中间做主程,因为无法准确评估项目需要开发的时间,无法把握功能难点。

    当然有很多人对公司都是很忠诚的,反正由于某种原因,你进入到这个公司的时候,人家就是主程了,而且在公司里这个职位当了好多年,这种人的优点是对于项目的某种技术难点有一套成熟的解决方案,或者是他对于公司里长期用的引擎或者某个模块很熟悉,还有就是他进入公司的时候带来了某种革新(比如自己带着某种引擎,或者自己有半成品的游戏),反正就是有特长的人了。这就是主程的第二个要求,必须擅长一套自己的开发模式,就是有某个项目要做的时候,必须用自己的这个特长给出解决方案。

    主程的第三个要求就是架构师的能力,这点其实是在前面两点之上的东西。以mmorpg为例,在游戏的整个大框架内那些东西是重点,在每一个组件的循环中,那些组件与另外一个组件有交集,那些组件依赖于某个特定的项目很重要。客户端中,脚本服务,物体管理服务,UI服务,渲染服务,网络服务是最大的模块。而游戏性相关密切的东西都在物体管理模块中进行逻辑上的数据更新,而又必须在UI上进行更新,从而反作用于渲染模块,而大量的信息会从网络部分流过来,渲染模块如果有好的引擎并且对图形熟悉的人在开始的时候把风格定好那么就进入游戏逻辑的部分了。这个时候UI的层次又是考察一个主程能力的时候,很多人的逻辑就是这个时候开始乱的,从而导致了object的管理和UI内容最后混合在了一起,有些最终还和渲染扯到一起,这些东西必须在一开始的时候注意。完美的架构固然是不可能产生的,但是该注意的东西还是要的。

    现在越来越花哨的各种shader特效也成了主程的一个必修课,就是做主程必须要会写很炫丽shader,而且会改进这里面的算法,这个我总感觉有点舍本求末的感觉。上研究生的时候我最大的一个体会是对于一个图形算法再改进,都会有更好的算法出现,而且这个改进好像是无止境的,光照的算法每年都有人发论文,每年都大量的人靠写高级的光照毕业,可是很难在效率和效果上达到平衡,笔者认为作为一个商业游戏软件的团队,如果花那么多时间用在自我的类似全屏泛光算法改进上是件很费人力的事,最好的办法是游戏公司专门产生这样的部门,就叫做算法组,目标相当明确。然后就让游戏主程找这个部门的人协商,我有某个算法需要制作,帮开发下。然后主程把工作还是放到游戏上来,游戏还是由数据算法加上用户操作来组成。当然不可能都如你所愿的,这就成了主程的第四点要求,会算法,就是会图形算法,熟悉各种数据结构(好像变成了程序员的要求了)。呵呵,起码动态模糊,hdr啥的能写吧。

    还是再写下第5点要求吧,就是和团队相处的能力,挑选自己团队成员的能力。因为主程一般会给自己组里招程序员,于是识别人才,并且与之相处的能力就显的至关重要了。

你可能感兴趣的:(游戏主程的5点责任)