推荐书籍

仅供个人学习使用,勿用于任何商业用途。
作者:Clayman

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

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

接下来,选择一门图形API,比如DirectX或者OpenGL。如果考虑到跨平台,那么OpenGL,OpenGL ES(移动平台)是首选. 如果只在ms的平台,则DX是首选。我对OGL并不是很了解,所以下面大部门资料都是和DX相关的。当然,作为准备工作之一,你首先要到DirectX Develop Center下载最新版的DirectX SDK。
更新(2013.3.19) 注意,DirectX库现在已经整合到了windows sdk中,部分工具也整合到了vs2012中,不再有单独的DirectX SDK。但很多例子仍然只在以前的DX SDK中,最后的版本事2010年6月发布的。

入门书籍非常重要,推荐<<Introduction to 3D Game Programming with DirectX 9.0>>(好像去年出了中文版)也就是传说中的龙书,这可以说是最好的DX入门教材,Frank Luna从浅入深,讨论了DX的方方面面。另外再配上<<DirectX 9 Graphics  the Definitive Guide to Direct3D>>,书名虽然是definitive ,但实际属于入门基本的书。看完这两本书,你基本上已经对DirectX比较熟悉了。

更新(2010.11.6): <<Introduction to 3D Game Programming with DirectX 9.0>>的第二版,《xxx, A Shader Approach》也可以找到了。
更新(2013.3.19): 《Introduction to 3D Game Programming with DirectX xx》 此书的DX10和DX11版目前也很容易找到了
更新(2011.10.23):学习DX11的进阶书 <<Practical Rendering & Computation with Direct3D 11>> ,最好的DX11参考书。

不要一开始就看图形学的书,这个时候你对图形编程还没有一个基本的感性认识,因此八成看的云里雾里。不要以网上的教程和论坛提问作为主要学习途径,找一本好书,系统学习,把各种例子都亲手实现一遍,效率才最高。不要马上看SDK里的例子,很多图形学的基本原理仅仅通过读代码是不会明白的。某些年代太过久远的书最好*不要*看了,比如<<windows游戏编程大师技巧>>  <<3D游戏编程大师技巧>> 。有人说基本的思想总是不变的,可惜对于现代GPU来说,很多早期的技术和优化技巧早就过时了。这两本书中只有软件光栅器部分比较有价值,而对初学来说,快速用现代API实现一些例子,更能快速建立起对图形渲染的技术的了解。

好了,入门之后,是你巩固和拓展视野的阶段。现在看计算机图形学就比较合适了。吐血推荐<<Real-Time-Rendering>>,这本书算得上是所有图形程序员的必读书籍和参考手册了,一定要看第三版。最近刚出了第三版(更新:已经有电子版了)。国内其他所有以图形学命名的书都有一个共同点:枯燥,过时。只需看看其中二维三维变换和曲线曲面表示的部分即可。如果这个时候发现你当年数学没有学好,那么以下几本数学书是为游戏程序员量身定制的,基本上覆盖了所有常见数学和几何问题:
<<3D Math Primer for Graphics and Game Development>>  
<<Mathematics for 3D Game Programming and Computer Graphics 3rd>>
<<Essential Mathematics Guide 2nd Edition>>
<<Geometric Tools for Computer Graphics>>

更新(2010.11.6)  看完上述入门书籍之后,就应该花点时间好好的完整阅读DirectX文档以及部分sample了,加深对DX整个系统,函数的了解。你会发现普通论坛里60%的问题都是文档里讲过的。

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

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>>

更新(2010.4.30):ShaderX已经出版了第7册,后续的版本由于版权原因,改名为GPU Pro: Advanced Rendering Techniques,仍然每年出版一本。更新(2010.11.6): 天朝人民的智慧是无限的,很多图形学的新书都能在taobao买单翻印的纸版了,包括ShaderX, GPU Pro系统等等.....

更新(2010.11.6): 关于ShaderX和GPU Gems常常有人问我较老的几册值不值得看,还有看不懂怎么办。这里是我个人的看法,仅供参考:ShaderX和GPU Gems收录的都是比较前沿的技术,虽然每本之间没有连续性,但很多技术都建立在之前的方法上。有时间的话,建议从第一本看起。两本书都属于论文集,章节之间并没有太多连续性,所以不必从第一页看到最后一页,选择你感兴趣的部分即可。比如对阴影感兴趣,就只看阴影相关的章节,你可以看到整个阴影技术近10年的发展,变化,很有价值。另外,书里很多前沿,实验性的技术,由于硬件限制,通常要2,3年后才有可能普及,现在看以前的几册也不会太"过时"。 最后,这样的书内容涉及了图形学的方法面面,2d,3d,图像处理,ai,游戏构架,gpgpu等等,范围太过广泛,特别是GPU Gems相比ShaderX更偏重学术研究,很多技术最终不一定能实际应用到产品中,有些章节看不懂也属于正常现象。

地形:

<<Real Time 3D Terrain Engines Using C++ And DX9>>非常全面的讨论了关于地形渲染的各种技术,至少应该把第5~9章都浏览一遍。之后便可以 到virtual terrain查阅近期的地形渲染技术。
更新(2010.11.6): 经常尝试用PIX分析你电脑上的游戏,地形渲染通常是最容易分析的部分,而且可以让你马上了解目前流行的地形渲染方法。

模型导入和动画:

<<Advanced Animation with DirectX>>,仅此一本足以。
更新(2010.5.5):<<Character Animation With Direct3D>>已经可以很容易的找到了, 此书介绍了目前最新的游戏动画技术,作者是xbox360大作Alan Wake的开发人员,完全可以替代上面提到的那本。

物理:
<<Game Physics>>和<<Game Physics Engine Development>>都不错。<<Real-time Collision Detection>>是碰撞检测方面最好的书。:<<3D Game Engine Design, 2nd>>的8,9章也值得一看,除此之外,就是各种开源碰撞引擎,比如Bullet

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

Ray tracing:
<< Physical-Based Rendering - From Theory to Implementation>> 
更新(2010.4.30): 一本免费的入门教程Another Introduction to Ray Tracing
更新(2011.10.23): 此书已有第二版,并且有电子版。

引擎设计:
说实话,这方面还没有特别好的书,大概越是核心的内容,越少有人愿意写吧。<<3D Game Engine Architecture Engineering Real-Time Applications with Wild Magic>>只有第三章值得一读。<<3D Game Engine Programming>>可以选部分感兴趣的章节看看,不过总的来说,讲的比较浅。
更新:<<3D Game Engine Design, Second Edition>>出了影印版本,此书是<<3D Game Engine Architecture Engineering>>更新版,强烈推荐。
最近发现<<Pro OGRE 3D Programming>>也很不错,200多页短小精干,但是可以让读者快速了解一个既有引擎的设计和构架。
更新(2010.7.15): 新出的《Game Engine Architecture》非常不错,注意是Jason Gregory的版本。如果只推荐一本引擎方面的书,绝对是这本,强烈推荐!!
更新(2010.6.28): <<Game Engine Gems>>是关于引擎设计的新系列丛书,与ShaderX类似,也是每年一本,目前已经出版了第一册,已有电子版

AI & Game Programming
<<Programming Game AI by Example>>非常不错,好像还有中文版,备选<<Artificial Intelligence for Games>>(已有第二版)。当然<<AI Programming Wisdom>>系列也是必读作品,不过目前网络上只有1~2册。
更新(2010.5.28):<<AI Game Engine Programming>>已比较好找了,虽然说这是一本名不副实的书,并没有完全介绍一个"one for all"类型的引擎,也没有具体算法讨论,但针对各种不同类型游戏的AI设计做了详细介绍,可作为一本指参考导性书选择阅读。

网络:mai%25##&%...(本人网络白痴 +_+........)

综合:
<<Game Programming Gems>>系列,不过由于内容涉及的过于广泛,文章质量参差不齐,选择性阅读就可以了。历年GDC, Gamefest,Siggraph等大型会议的paper也是应该关注的。至于那些“All in one”或者n天较你写出个FPS游戏的书就不要读了,这类书的通病是什么都说了,结果什么也没说清楚。

除了书以外,再推荐一些不错的网络资源:
http://www.gamedev.net/ 除了大量教程以外,论坛里多年累计下来的内容保罗万象。好好利用论坛搜索,你会发不管你多厉害,那里总有一些比你强大的人在很久以前就遇到了和你同样的问题,并且给出了解决方案。
Nvidia和ATI的开发者中心
http://www.gamasutra.com/ 与GameDev类似
http://www.beyond3d.com/ 这里的除了讨论软件以外,还能看到对硬件构架的分析

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

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

时间: 2024-10-25 20:13:03

推荐书籍的相关文章

推荐书籍 -《移动App测试的22条军规》

在今天的博文中,博主希望给大家分享一本博主同事黄勇的最新利作:<移动App测试的22条军规>.黄勇是ThoughtWorks资深敏捷QA和咨询师.对于我来说,和黄勇在一起的工作的这个项目,是我至今所一直怀念的那种少有的项目.黄勇在团队中以资深QA的团队协调能力和专业技能,不仅保障了项目的交付质量,同时也能很好的协调从客户到开发中的各个环节. 移动互联网的兴起 在当今世界,移动互联网已经兴起了,它距离我们大家,已经不再那么遥远了,已经开始慢慢的融入了我们的生活之中.特别在最近两年,BAT这等巨头

数字化企业永续:IBM新22条军规+人机超融合

在Gartner的<2018 CIO Agenda>调查中,通过对全球3000多名CIO的调查结合分析,Gartner认为CIO的工作已经发生了改变,从原来的"交付型"高管变成了现在"IT和业务相结合"的高管.所谓交付型高管,就是CIO根据业务部门需求而交付相应的IT解决方案,而"IT和业务相结合"的高管则意味着在数字化时代,因为有很多工作都是在尝试中,业务部门难以提出需求,这就需要IT的高管与业务部门一起完成数字化工作. 四年前,I

设计优秀系统的22条军规

优秀系统的定义:高可扩展性.高性能.高吞吐量.高可维护性.高可靠性.高可用性.高.... 一家之言,轻喷...下面正题开始(没有华丽的分割线): 1.按20倍正常访问量设计.按3倍正常访问量实现.按部署1.5倍正常访问量部署 2.简化系统范围(按80/20原则).简化设计(成本/扩展性折中).简化实现(更多靠经验) 3.分布方式:拷贝分布(每个机器部署同样的服务或同样的数据).垂直分布(按业务,每个系统提供不同功能).水平分布(sharding) 4.设计系统时假设你手头只有少量低端服务器或常见

一个老站长的22条军规

1.每天看互联网行业新闻 干一行,爱一行,你得随时关注互联网行业的最新动态,所谓的行业趋势,未来发展方 向,通过这些新闻动态,尽收眼底.你可以不经常泡论坛,但作为一名站长,你得关注百度 互联网新闻了解大事件;精读草根网 IT 资讯;上站长网看实战技巧;订阅艾瑞网专家专栏. 养 成 RSS 订阅好习惯,每天花半小时,一切了然于胸. 2.做自己想做的站 兴趣是最好的老师, 不怕你不会, 就怕你不爱, 选择一个你喜欢的领域, 发挥你的特长, 结合你的资源,做下去.如果你喜欢朗咸平,你可以做个朗咸平粉丝

西点军校的22条军规

一.无条件执行军人的第一件事情就是学会服从. 1.将服从训练成习惯:西点军校采用"斯巴达式"的各种训练,使学员身体疲惫不堪,没有提出反抗的余力. 2.一切从零开始:不管新学员的社会经历,新学员都将被视为如同白纸一样的婴儿,新学员受训刚开始是没有名字,没有一切个人的特殊物品(包括最基本的财物),日程安排的满满的,让学员只有时间去执行命令而没时间去思考. 二.工作无借口1.绝对的制度,纪律就是纪律:西点纪律的严厉是出名的,开始大家可能只是为了形式,时间一长习惯成自然,学员逐渐地把军校的目标

移动App测试实战:顶级互联网企业软件测试和质量提升最佳实践

这篇是计算机类的优质预售推荐>>>><移动App测试实战:顶级互联网企业软件测试和质量提升最佳实践> 国内顶级互联网公司测试实战经验总结,阿里.腾讯.京东.携程.百度等公司多位测试专家联袂推荐 编辑推荐 从移动互联网产品测试的准备工作到产品发布后的质量管理方法,涉及移动产品的整个研发流程,呈移动App开发与测试人员的必备参考 内容简介 本书由三位国内顶级互联网企业软件测试工程师联手打造,根据移动产品的特点,深入讲解了移动App测试的最佳实践,从移动互联网产品测试的准备工

星瀚资本杨歌:我七次创业失败的内心感悟(比较真实,可以看看创业的36条军规)

猎云网注:杨歌,星瀚资本创始合伙人.作为一名连续创业者,参与创办了东信康达红外数字医疗及凯业网等,曾担任北国投投资总监.大江投资副总裁.毕马威咨询师.投资的案例包括口碑街.言几又.人人财务.V.Fine等.拥有清华大学工学硕士与学士学位.他分享了创业失败的感悟.本文来自投资人说(ID:touzirenshuo),转载请注明来源. 1.年轻人要大胆地去犯错 谢谢大家今天能来到投资人说听我分享,我是星瀚资本的创始合伙人杨歌. 提到硅谷大家都感觉很高大上,的确,硅谷的外表看上去很光鲜,但其实在硅谷的大

推荐——Monkey《大话 app 测试——Android、iOS 应用测试指南》

<大话移动——Android与iOS应用测试指南> 京东可以预购啦!http://item.jd.com/11495028.html 当当网:http://product.dangdang.com/23510301.html#catalog 大家速度预购哈--- 这本书离不开大家的支持.其中感谢给我写书评的几位大牛.@熊力_LiXiong @阿里窥基 @徐毅-Kaveri @左耳朵耗子 .明天京东的链接也出来啦-- 推荐--Monkey<大话 app 测试--Android.iOS 应用

摘抄——读《大话移动APP测试 Android与IOS》

用了两天读完了<大话移动APP测试 Android与IOS>,由于刚开始接触移动测试,技术型的篇章只能先放过了o(╯□╰)o,有以下内容觉得很有必要时不时的看看,来反思自己的工作,自勉!! 测试的意义: 执行测试用例的意义在于学习别人写用例的思路.学习设计方法.不在重复劳动: 编写测试用例的意义在于更好的分析需求,写出有意义.有限的用例,不在为了任务写出千万条用例: 找缺陷的意义在于学习研究各种方法.各种技术找到质量高的缺陷,分析总结,不在为了缺陷数量: 测试管理的意义在于学习管理,引导测试人

《大话移动APP测试:Android与iOS应用测试指南》

<大话移动app测试:android与ios应用测试指南> 基本信息 作者: 陈晔 出版社:清华大学出版社 ISBN:9787302368793 上架时间:2014-7-7 出版日期:2014 年8月 开本:16开 页码:292 版次:1-1 所属分类:计算机 > 软件与程序设计 > 移动开发 > Android 计算机 > 软件与程序设计 > 移动开发 > 其他移动开发技术 更多关于>>> <大话移动app测试:android与io