游戏程序员的基本要求
100%的中国C程序员都是自学的。因为国内几乎没有像样的C培训机构。大家都知道社会培训的主要目的是赚钱。能成为那里的人才是莫大的幸运。与JAVA不同,它是由SUN公司实现的。中国大学教育没有C教。关于C/C基础课程的知识,仅供学生入门。但是对于C软件工程的实际应用来说,大学课本知识的练习意义不大。最重要的是,大学里没有合格的老师C。编程是一门技术,也可以称为一门手艺。大学是搞科研的,大部分是科学家。他们靠自己的专业头衔谋生。不是技术员。没有65438万行以上的代码经验和成功的软件项目经验,很难教好中高级C程序员。
游戏制作行业对C程序员的要求更高。远高于一般行业软件。因为任何MMO都是中大型软件项目。日活数十万,在线数十万的大型网络多人互动软件,集成了十几种专业编程技术,想大都不敢想。
另外,高级C程序员一般都很有能力。因为都是自学的,所以需要智商高,自学能力强,解决问题能力强,有克服困难的毅力。然而游戏行业这样的人才并不多。抛开少有的具备整体大型软件架构能力的高级人才不谈。也很难找到能承担独立模块开发,有独立解决问题的能力,在空间、性能、可维护性上满足要求的C程序员。而具备这些能力的人,还要具备一些专业技能(图形引擎、网络引擎等。),更是少之又少。
所以即使是大的游戏公司也永远满足不了C游戏程序员的需求。而一直在公司工作的C程序员,不经过短则3个月,长则1年的培训,是无法真正胜任C游戏程序开发的。
2、MMO游戏开发对C游戏程序员的要求
如前所述,所有MMO游戏都是大中型软件。MMO游戏软件在软件占用空间、稳定性、性能、可维护性等衡量软件质量的指标上要求非常严格。比普通行业软件大很多。这个规模和银行体系差不多。客户端和软件的逻辑比一般商业软件复杂很多倍。这就要求软件编写者有很高的编程素质。
在游戏软件中,求解软件工程部分只是项目的1/3。另外两个部分是策划和美术/音频。从经验来看,需求变化对MMO游戏软件来说不是偶然事件,而是MMO游戏软件发展的基本属性。游戏软件投资大,周期长,风险高。MMO市场也发生了巨大的变化,交互式电子游戏发展迅速。游戏软件必须面对外部的变化。由于开发周期长,软件需求的变化已经成为软件开发的一个基本属性。正如复杂性是软件工程的一个基本属性。
这就导致游戏软件的开发充满了不确定性。互动娱乐不同于商业应用。娱乐属于理性和感性之间的领域。而C开发面对的是0和1的二进制世界逻辑。这两个领域存在不可调和的矛盾。这种情况对C游戏程序员提出了更高的要求。
首先,基本的C语言知识和C/C应用技能必须极其扎实。并不是游戏软件开发用了什么书本上很难得到的知识点或者技能点。游戏C开发的知识体系和技能体系,利用现有的C书就可以满足。比如C语言,C入门,效果C,更多效果C等等。但是在开始游戏编程之前,很难遇到把这些书读透,练得很熟练的人。当然,真正能做到这一点的人,已经是资深C程序员了。我曾经遇到过一个毕业不久就去GOOGLE的。
其次,深刻理解面向对象。非常重要。C/C语法和编程技巧的熟练程度只满足C游戏程序员的部分要求。对面向对象概念的深刻理解,将给大型C项目的开发带来翻天覆地的变化。有时候,在一个超过10人并行开发的C游戏项目中,面向对象的方法会成为救命稻草。与设计模式和设计模式分析相关的书籍也是必修课。
最后,一个好的技术人员的本质是傲慢。这很正常。但是如果这个习惯影响了自我提升和团队合作。以及影响其成为技术经理和项目的技术核心,那么这类技术人员的价值就会大打折扣。如果我们尽快跨越自命不凡的藩篱,开阔视野,不断提高自己的综合素质。只有提高技术管理能力和架构能力,其自身的价值才会不断增长。落实下来,就是待遇和身家的增长。
因为游戏开发的本质是团队开发。任何时候,只有对一个团队有价值的技术人员,才能有自己的价值体现。
3、成长与技术发展路线
一般技师的发展有几个阶段。
1,具备独立开发本地功能的能力。
例如,为一个UI编写一个逻辑接口函数。为登录对话框等写一个自绘控件。
2.有能力独立开发和解决一个功能模块。
比如在游戏中加入一个小的逻辑功能模块。
3、有独立设计开发系统的能力。
例如,设计和开发自动补丁系统。
4、有解决技术问题和设计架构的能力。
比如开发网络同步模拟系统,开发中大型游戏制作工具。
5、具有整体结构,管理、协调与他人开发一个大系统。
客户端主机、服务器主机、引擎主机等。
6、技术负责人
制定技术发展方向、技术团队组建、技术管理等
在走向每一个阶段的过程中,都伴随着巨大的工作量和工程压力。有时候是跨越1年的失败等等。当公司的项目不成功时,换个单位,重新开始,或者留在公司做核心团队,继续有新的机会开始,都是不错的办法。但关键是要吸取经验教训,尽可能多的练习。并结合自身优势去发展。当然,游戏制作人最好是依靠一个核心团队。成为核心团队的一员。
能达到三档的节目,已经是公司不可或缺的人才了。但是往往程序员自己对自己的理解和公司对他的理解有时候是不一样的。我遇到过一些脑子好,写字快的人。各种技术都有涉及。但是让他独立开发设计一个系统,我总觉得不放心。哪怕是相对独立的工具。也会很乱。让后面的人继续擦屁股。但还是觉得自己水平很高。这种人浮躁,眼高手低,不愿意认真全面的去做一件完整的事情。所以你可以看到他跳来跳去,但是他在新公司的地位并没有太大的提升。公司很重视给一个程序员一个东西,看他能不能完整全面的完成。哪怕时间长一点,也做不完。这会给项目带来致命的后果。