游戏程序员的养成计划

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

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

         刚开始,你要做的就是选择一门图形API,一般就是DirectX或者OpenGL之间选一个。如果考虑到跨平台,那么OpenGL是首选. 如果只在PC平台,则DX是首选。我对OpenGL并不是很了解,所以下面大部门资料都是和DX相关的。

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

         DirectX:《Windows DirectX Graphics Documentation》官方提供的文档,安装SDK后自带的文档,详细介绍了HLSL的语法,如何使用,如何在Visual中调试,如何编译shader,都在文档中介绍的很清楚。然后,推荐<>也就是传说中的龙书,这可以说是最好的DX入门教材,Frank Luna从浅入深,讨论了DX的方方面面。另外再配上<< Advanced 3D Game Programming With DirectX 9.0>>,书名虽然是advanced,但实际上没有多少advanced级别的内容。看完这两本书,你基本上已经对DirectX比较熟悉了。如果你希望学习XNA,也是一样的,毕竟XNA是以DX为基础。

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

          好了,入门之后,是你巩固和拓展视野的阶段。现在看计算机图形学就比较合适了。吐血推荐<>,这本书算得上是所有图形程序员的必读书籍和参考手册了。

          如果这个时候发现你当年数学没有学好,首先推荐冯乐乐写的《Unity Shader入门精要》中的数学知识讲解,用多少学多少,通俗易懂。而且数学部分在github已经公开,不用买也可以下载,还是推荐看看,写的很好很详细。传送门:https://github.com/candycat1992/Unity_Shaders_Book

         还有三本数学书是为游戏程序员量身定制的:<<3D Math Primer for Graphics and Game Development>>, <>和<>。

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

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

地形:<>非常全面的讨论了关于地形渲染的各种技术,至少应该把第5~9章都浏览一遍。之后便可以 到virtual terrain查阅近期的地形渲染技术。

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

物理:<>和<>都不错。<>是碰撞检测方面最好的书,可惜目前还没有电子版。

LOD:<>

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

引擎设计:说实话,这方面还没有特别好的书,大概越是核心的内容,越少有人愿意写 吧。<<3D Game Engine Architecture Engineering Real-Time Applications with Wild Magic>>只有第三章值得一读。<<3D Game Engine Programming>>可以选部分感兴趣的章节看看,不过总的来说,讲的比较浅。

AI:<>非常不错,好像还有中文版,备选<>。当然<>系列也是必读作品,不过目前网络上只有1~2册。

 

你可能感兴趣的:(游戏程序员的养成计划)