游戏程序员养成计划

原文:http://blog.csdn.net/yacper/article/details/4727373程序员

与玩游戏相比,写游戏要复杂上千万倍,除了须要掌握通用的编程技巧之外,还要有至关的图形学,物理,数学基础,特别是在国内,因为相关资料的缺少,更是让初学者无从下手。下面总结了一些入门方法和比较容易入手的资料。
编程

         首先你要精通一门高级语言,好比C++或者C#,其次,要有良好的英文阅读能力。对游戏开发者来讲英文阅读能力是最重要也是最基本的工具之一,由于你遇到 的大部分资源都将是英文的,不要总等着别人为你翻译。慢慢尝试着阅读英文资料,你会发现其实也并无那么难:)
windows

         刚开始,你要作的就是选择一门图形API,通常就是DirectX或者OpenGL之间选一个。若是考虑到跨平台,那么OGL是首选. 若是只在ms的平台,则DX是首选。我对OGL并非很了解,因此下面大部门资料都是和DX相关的。 网络

         固然,做为准备工做之一,你首先要到DirectX Develop Center下载最新版的DirectX SDK。
dom

         入门书籍很是重要,推荐<<Introduction to 3D Game Programming with DirectX 9.0>>(好像去年出了中文版)也就是传说中的龙书,这能够说是最好的DX入门教材,Frank Luna从浅入深,讨论了DX的方方面面。另外再配上<< Advanced 3D Game Programming With DirectX 9.0>>,书名虽然是advanced,但实际上没有多少advanced级别的内容。看完这两本书,你基本上已经对DirectX比较熟 悉了。若是你但愿学习XNA,也是同样的,毕竟XNA是以DX为基础。
ide

         不要一开始就看图形学的书,这个时候你对图形编程尚未一个基本的感性认识,所以八成看的云里雾里。不要以网上的教程和论坛提问做为主要学习途径,找一本 好书,系统学习,效率才最高。不要立刻看SDK里的例子,不少图形学的基本原理仅仅经过读代码是不会明白的。某些年代太太久远的书就不要看了,好比 《windows游戏编程大师技巧》(总看到有人在找这本书)。有人说基本的思想老是不变的,惋惜对于现代GPU来讲,不少早期的技术和优化技巧早就过期 了。图形编程是发展的很是快的技术,看看GPU的发展速度,1~2年就是一代产品的革新。
工具

          好了,入门以后,是你巩固和拓展视野的阶段。如今看计算机图形学就比较合适了。吐血推荐<<Real-Time- Rendering>>,这本书算得上是全部图形程序员的必读书籍和参考手册了。最近刚出了第三版(更新:已经有电子版了)。惋惜国内只有第 二版,稍微有点老,若是实在找不到第三版,仍是值得一读。国内其余全部以图形学命名的书都有一个共同点:枯燥,过期。只需看看其中二维三维变换和曲线曲面 表示的部分便可。若是这个时候发现你当年数学没有学好,那么有三本数学书是为游戏程序员量身定制的:<<3D Math Primer for Graphics and Game Development>>, <<Mathematics for 3D Game Programming and Computer Graphics>>和<<Essential Mathematics Guide 2nd Edition>>,第一本书有中文版,最后一本则是08年才出的新书。
学习

         其实入门以后,就没有固定的学习路线了,最好根据你感兴趣的方向来学习。
优化

Shader方面:《Cg_tutorial》和《The Complete Effect and HLSL Guide》都是不错的入门材料,固然还有SDK文档。<<Shaders for Game Programmers and Artists>>有大量入门的例子。<<Advanced Lighting And Materials With Shaders>>详细介绍了各类光照模型和技术。<<GPU Gems>> 1~3册确定是必读的,虽然有1,2有中文版,但某些翻译并非很理想,强烈建议直接看英文版。ShaderX系列也是很经典的系列,每一年出版一本,包含 了最新的实时渲染技术,现在已经出了第6册了。不过网络上只能找到1~3册。1,2册大部分shader都是用asm写的,不过看懂原理,转换为HLSL 也并不难。另外Nvidia SDK和ATI SDK也是学习shader的重要资源。最后还有刚出的<< Programming Vertex, Geometry, and Pixel Shaders>>

动画

地形:<<Real Time 3D Terrain Engines Using C++ And DX9>>很是全面的讨论了关于地形渲染的各类技术,至少应该把第5~9章都浏览一遍。以后即可以 到virtual terrain查阅近期的地形渲染技术。

模型导入和动画:<<Advanced Animation with DirectX>>,仅此一本足以。

物理:<<Game Physics>>和<<Game Physics Engine Development>>都不错。<<Real-time Collision Detection>>是碰撞检测方面最好的书,惋惜目前尚未电子版。

LOD:<<Level of Detail for 3D Graphics>>

Ray tracing:<< Physical-Based Rendering - From Theory to Implementation>>

引擎设计:说实话,这方面尚未特别好的书,大概越是核心的内容, 越少有人愿意写吧。<<3D Game Engine Architecture Engineering Real-Time Applications with Wild Magic>>只有第三章值得一读。<<3D Game Engine Programming>>能够选部分感兴趣的章节看看,不过总的来讲,讲的比较浅。更新:<<3D Game Engine Design, Second Edition>>出了影印版本,强烈推荐。最近发现<<Pro OGRE 3D Programming>>也很不错,200多页短小精干,可是可让读者快速了解一个既有引擎的设计和构架。

AI:<<Programming Game AI by Example>>很是不错,好像还有中文版,备选<<Artificial Intelligence for Games>>。固然<<AI Programming Wisdom>>系列也是必读做品,不过目前网络上只有1~2册。

网络:%##@% ...(本人是网络白痴 +_+........)

综合:<<Game Programming Gems>>系列,不过因为内容涉及的过于普遍,文章质量良莠不齐,选择性阅读就能够了。历年GDC, Gamefest t,Siggraph等大型会议的paper也是应该关注的。

         至于那些“All in one”或者n天较你写出个FPS游戏的书就不要读了,这类书的通病是什么都说了,结果什么也没说清楚。

         除了书之外,再推荐一些不错的网络资源:

www.GameDev.net 除了大量教程之外,论坛里多年累计下来的内容保罗万象。好好利用论坛搜索,你会发无论你多厉害,那里总有一些比你强大的人在好久之前就遇到了和你一样的问题,而且给出了解决方案。
Nvidia和ATI的开发者中心
creators.xna.com XNA官方网站
www.gamasutra.com 与GameDev相似
www.beyond3d.com 这里的除了讨论软件之外,还能看到对硬件构架的分析
www.ziggyware.com 最好的XNA教程网站
www.gameres.com 国内惟一比较专业的游戏编程网站,惋惜和GameDev相比就显得太寒碜了-_-#

         固然,不要忘了收集各大论坛里牛人们的blog:)

         最后,仅仅靠看书是不够的,多写多练才是王道。

相关文章
相关标签/搜索