您的位置:首页 > 职场人生

如何成为一名自豪的游戏程序员

2011-08-26 11:57 316 查看
什么工作最苦,程序员的工作最苦,我们号称软件民工。

什么程序员工作最苦,游戏程序员工作最苦,我们天天加班,拿着微薄的工资,号称为了理想而奋斗。

软件民工,其实有点高抬自己了。其实我们除了衣服领子看着比农民工干净点外,我们内心的压力比农民工高多了,我们必须天天学习新语言新算法新架构,这种痛苦也只有程序员才能够理解。

但是既然是为了理想而奋斗,就要有很多的人为此而前仆后继的付出。本人用切身的体会希望有志于做游戏程序员的人少走弯路,或者给新人一个进入游戏行业的方向。

也许你正在为成为一个游戏程序员而找不到方向,因为你喜欢游戏,希望也能制作自己的游戏,但是你无从下手,更无人给你指点迷津,那就希望我写的东西对你有点帮助,有帮助了就顶一下。

要成为一个游戏程序员,首先你必须成为一个程序员,否则那是空谈。只有你成为了一个“程序员”,你才有可能成为一个“游戏程序员”,游戏程序员要比其他行业的程序员付出更多艰辛的努力,要学习更多的知识,面临的挑战和困难也是你无法想象的。你不进入这个行业,可能你是无法体会的。

如果你连成为一个程序员的勇气都没有, 那肯定无法成为一个游戏程序员了。一个合格的游戏程序员一定是一个合格的程序员,需要具备程序员的基础知识。而一个程序员,必须有扎实的数据结构,操作系统,软件工程知识。语言你还必须掌握C/C++,否则一切将成为空中楼阁。

如果你目前只是一个普通的程序员,或者你还只是一个新人,但是你希望进入游戏行业,那么你不要着急学游戏相关的东西,还是先准备成为一个合格的程序员,在考虑进入游戏行业磨练吧。

首先你必须熟练掌握C/C++语言,至于要如何成为C/C++程序员,我博客里面有相关的文章,你可以看看。当你熟练掌握了C/C++语言,数据结构,操作系统的基础知识后,下来最好也是最快的办法就是应聘一个游戏公司,进入到这个行业里面去向高手学习,向同行业的人学习,去做一个完整的游戏,让别人带着你一步步走下去,这样你才知道你下来该从哪里入手,从哪里深入进去。

游戏开发涉及到的东西太多太杂,是一个包罗万象的复杂的系统工程,一个简单的网络对战棋牌游戏的代码量都在20万行以上。

下面我从框架上讲讲游戏开发的底层引擎吧。

游戏开发引擎有哪些?

1.图形引擎(这是最核心的最复杂的,代码量也是最大的。本人推荐研究OGRE或IRRLICHT。国内用得最多的开源图形引擎就是OGRE了,OGRE有良好的架构,代码质量和可读性都非常不错,值得研究。下来对初学者而言irrlicht这个3D引擎不错,代码可读性很好,关键是代码量少,简单,容易看懂。)

2.声音引擎(声音引擎相对简单得多了,推荐大家使用FMOD这个免费的引擎,很多世界一流的牛逼的游戏都是用得这个声音引擎,使用简单方便,效果也不错,支持的功能也很多。)

3.物理引擎(物理引擎在国内的游戏里面用的不多,一些物理效果基本都是3DMAX直接建模做的动画,而不是程序去计算的,如果你的游戏需要物理引擎的支持,推荐使用ODE这个物理引擎。)

4.游戏引擎(游戏引擎一般是一个游戏框架,里面封装了对图像,对声音,对网络,对脚本等的一整套封装解决方案,另外还附带各种工具等,比如地图编辑器,粒子编辑器,关卡编辑器,声音编辑器,脚本编辑器等,游戏引擎可能还包括服务器端对数据库,对寻路算法等的封装。总之是一个非常复杂的系统工程。)

5.网络引擎(网络引擎需要根据不同的游戏类型做不同的封装,可能需要支持P2P功能,并且要对大规模大并发提供稳定的支持。开源的网络引擎推荐libevent, ACE,libev等。ACE比较庞大,学习曲线陡峭,但是一旦掌握了会非常好使,libevent比较轻量级,效率也非常高效。)

6、UI引擎(顾名思义,就是游戏里面供玩家点击的各种按钮,比如背包,血条,聊天框等,游戏行业中用的比较多的是CEGUI这个开源库,不过CEGUI并不能完全满足游戏的需求,需要对其进行二次开发和封装,工作量也比较大。)

7、脚本引擎(在游戏行业里面用得最多的脚本就是lua了,另外python用的也比较多。脚本引擎可以对封装了让策划直接使用,通过可视化的界面设置NPC的逻辑,属性值等。)

看到上面这么多的引擎,大家不要迷糊,每个人的发展方向不一样,一个人不可能把所有这些东西全部掌握,在游戏公司里面,可能你只需要掌握其中的一种,钻研到精通的程度即可。在游戏公司里面有专门负责3D引擎图像渲染的人,有专门负责游戏逻辑的人, 有专门负责UI逻辑的人,还有专门负责数据库的人,如果你只懂C/C++语言, 那你可以应聘游戏逻辑程序员,或者应聘UI程序员。进入到这个行业,你再学习具体的图形引擎渲染知识。另外游戏行业常用的算法你可以直接从网上找资料,用得最多的可能要算寻路算法了,无论是2D游戏还是3D游戏,都牵扯到寻路,寻路算法大家可以上网找资料,3D游戏中三维空间的寻路算法就更复杂了。总之作为一个程序员,要多动手写代码,调试代码,没有什么捷径可走。

推荐几本个人感觉不错的游戏书籍

Windows游戏编程大师技巧

3D游戏编程大师技巧

这两本书从底层的原理入手讲解了游戏开发的基础知识,对游戏入门者非常实用。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: