游戏程序员养成计划 - Clayman的专栏 - CSDN博客

来源:百度文库 编辑:神马文学网 时间:2024/04/28 15:16:38
游戏程序员养成计划收藏
09.3.27更新
与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手。下面总结了一些入门方法和比较容易入手的资料。
首先你要精通一门高级语言,比如C++或者C#,其次,要有良好的英文阅读能力。对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一,因为你遇到的大部分资源都将是英文的,不要总等着别人为你翻译。慢慢尝试着阅读英文资料,你会发现其实也并没有那么难:)
刚开始,你要做的就是选择一门图形API,一般就是DirectX或者OpenGL之间选一个。如果考虑到跨平台,那么OGL是首选. 如果只在ms的平台,则DX是首选。我对OGL并不是很了解,所以下面大部门资料都是和DX相关的。
当然,作为准备工作之一,你首先要到DirectX Develop Center下载最新版的DirectX SDK。
入门书籍非常重要,推荐<>(好像去年出了中文版)也就是传说中的龙书,这可以说是最好的DX入门教材,Frank Luna从浅入深,讨论了DX的方方面面。另外再配上<< Advanced 3D Game Programming With DirectX 9.0>>,书名虽然是advanced,但实际上没有多少advanced级别的内容。看完这两本书,你基本上已经对DirectX比较熟悉了。如果你希望学习XNA,也是一样的,毕竟XNA是以DX为基础。
不要一开始就看图形学的书,这个时候你对图形编程还没有一个基本的感性认识,因此八成看的云里雾里。不要以网上的教程和论坛提问作为主要学习途径,找一本好书,系统学习,效率才最高。不要马上看SDK里的例子,很多图形学的基本原理仅仅通过读代码是不会明白的。某些年代太过久远的书就不要看了,比如《windows游戏编程大师技巧》(总看到有人在找这本书)。有人说基本的思想总是不变的,可惜对于现代GPU来说,很多早期的技术和优化技巧早就过时了。图形编程是发展的非常快的技术,看看GPU的发展速度,1~2年就是一代产品的革新。
好了,入门之后,是你巩固和拓展视野的阶段。现在看计算机图形学就比较合适了。吐血推荐<>,这本书算得上是所有图形程序员的必读书籍和参考手册了。最近刚出了第三版(更新:已经有电子版了)。可惜国内只有第二版,稍微有点老,如果实在找不到第三版,还是值得一读。国内其他所有以图形学命名的书都有一个共同点:枯燥,过时。只需看看其中二维三维变换和曲线曲面表示的部分即可。如果这个时候发现你当年数学没有学好,那么有三本数学书是为游戏程序员量身定制的:<<3D Math Primer for Graphics and Game Development>>, <>和<>,第一本书有中文版,最后一本则是08年才出的新书。
其实入门之后,就没有固定的学习路线了,最好根据你感兴趣的方向来学习。
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>>可以选部分感兴趣的章节看看,不过总的来说,讲的比较浅。更新:<<3D Game Engine Design, Second Edition>>出了影印版本,强烈推荐。最近发现<>也很不错,200多页短小精干,但是可以让读者快速了解一个既有引擎的设计和构架。
AI:<>非常不错,好像还有中文版,备选<>。当然<>系列也是必读作品,不过目前网络上只有1~2册。
网络:%##@%...(本人是网络白痴 +_+........)
综合:<>系列,不过由于内容涉及的过于广泛,文章质量参差不齐,选择性阅读就可以了。历年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:)
最后,仅仅靠看书是不够的,多写多练才是王道。
ps:以上书籍,除了特别注明的以外,都是可以通过网络或者书店入手的。
pps:不要找我要电子书,我能找到的,相信你也能找到,你找不到的,我肯定也没有 :)
发表于 @ 2009年01月08日 04:25:00|评论(9)|举报|收藏
新一篇: The Design of Model (part 1) | 旧一篇: 杂谈2008—关于游戏和游戏的那些事ray58750034@gmail.com 发表于2009年1月8日 9:23:59  IP:举报
真是宝贵的经验分享! 非常感谢!Leio 发表于2009年1月8日 9:58:37  IP:举报
博主辛苦了~~~~~~~~~~~~~~~yiweibin 发表于2009年1月8日 15:58:39  IP:举报
呵呵,赞一个先。总算是有一个学习DX的思路了
laiyanlin2003 发表于2009年1月12日 22:42:07  IP:举报
转载到我blog里了,作为以后一段时间的学习纲领sydii1225 发表于2009年2月17日 23:49:40  IP:举报
3ks
另外想问下博主
如上这些书如果要都看一遍
大致需要多少时间,平均每天要看几个小时?
除了研究书上带的代码以外,在哪些阶段需要写一些实际的demo去实践?这些demo的难度应该控制在什么的程度?soilwork 发表于2009年2月18日 15:45:22  IP:举报
Re sydii1225: -_-#这个我还真没统计过,看书的时间因人而异吧。不一定要把这些书都看一遍,入门以后,往你感兴趣的方向研究就可以了,相关领域的东西了解一点就可以。demo肯定是从一开始就要写,就像学编程从hello world开始一样,尽量把你学到的都用到demo里,既可以加深对已经学到的知识理解,也会让你不断遇到各种问题,解决问题也是很重要的学习过程:)fishsy1985 发表于2009年3月11日 16:56:39  IP:10.42.32.*举报
收益匪浅啊!walkskyskyfish 发表于2009年4月27日 23:21:01  IP:举报
哈哈,刚看完龙书,正迷茫看什么书提高下Shader水平呢,就看到博主这篇文章,帮助很大,谢谢~!国内这样的文章实在是太少了,相信大部分喜欢游戏想写游戏的人都在迷雾中苦苦摸索呢……bbwolfcool 发表于2009年6月12日 5:37:48  IP:举报
看了你的这篇文章感触颇深,有些疑问,想请教 一般来说初学者,是不会怎么考虑3D游戏的,通常是2-3年语言基础,以及面对对象基础。 我本科毕业24,干了2-3年 27-28,然后啃完你这些书,我看2年至少了,这样仅仅看完书,会搞还没什么经验就30出头了,然后搞2-3年代码就老了,这怎么办bbwolfcool 发表于2009年6月12日 5:42:48  IP:举报
希望能和你交流一下心得,都学完,30多,XNA还不见得一定有市场,这是我的担心,至少目前没有看到多少成功的案例。 期望回复,bb_wolf_cool@hotmail.com 如果方便,留个QQ给我soilwork 发表于2009年6月13日 16:43:39  IP:举报
Re bbwolfcool: 邮件已回,请注意查收
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/soilwork/archive/2009/01/08/3731645.aspx