C++游戏开发需要阅读的书籍
发现⼤家都在留⾔中说要推荐⼀下游戏开发相关的书籍,我这⾥就把各个阶段(从零基础开始)的推荐教程列出来吧,平时我写这个系列的笔记就参考了下⾯的很多书籍,⼤家感兴趣的话,可以深⼊去学习(推荐去买实体书,这样就不⽤整天盯着电脑屏幕看伤害眼睛,健康是⾦钱买不来的):
第⼀阶段,⾸先是C++的精通。推荐《C++ Primer》,之后《Effect C++》。
第⼆阶段,熟悉windows下的编程。推荐看《Windows程序设计》。
第三阶段,Visual C++的学习。推荐的书⽬有孙鑫⽼师的《VC++深⼊详解》和孙鑫⽼师的vc视频教程。以及侯俊杰⽼师的《MFC深⼊详解》,与时俱进的有《Visual C++2010⼊门经典》。
(第⼆阶段和第三阶段可以结合着来学习,有很多知识是相辅相成的,并没有什么⼤的界限。)
第四阶段,开始学习专门介绍游戏开发的教程(有DirectX和OpenGL两条路可选,这⾥我们选择DirectX,DirectX在国内为主流。具体⽐较请移步最近刚写的这篇⽂章),推荐书籍为《DirectX 9.0 3D游戏开发编程基础》(封⾯为⼀个红龙的),《Windows游戏编程⼤师技巧》,《Direct3D游戏开发技术详解》等等,当然这类教程就⽐较多了,新出的有很多,DirectX相关的层出不穷,也可以选择刚发⾏不久的新书,毕竟上⾯讲的知识⽐较前沿与更具成熟性。(依然感谢的指出,为什么我没有推荐专门讲解3D
编程数学基础的教程。我没有专门指出来,是因为⼏乎每⼀本Direct3D教材⾥⾯都有⼀章到⼏章有关必备数学基础知识的讲解。我觉得单独来学数学基础没必要,费时且费⼒,我们只要在Direct3D或者OpenGL教材⾥掌握相关的数学知识,那就⾜够了。)
还有什么经典的书籍,欢迎⼤家交流补充~~
(有⼀位兄弟提到,《游戏编程精粹》系列的书也⽐较经典,都是从事游戏开发多年的全球顶尖游戏⼯程师的肺腑之⾔,虽然经常会有个别错误- -,⽬前出了8本了,⼤家可以去看看)
//
经常有些朋友问我,想学习游戏开发,应该做些什么?
⾸先,游戏编程也是编程,⼀些编程的基础书籍是必须的,
这类书籍没有太多推荐,主要看你想学习的语⾔。
基础书籍不⽤看太多,也不⽤看很深,重要的是看的时候要动⼿。
当你还不熟悉的时候,开发时最好时刻准备⼀本基础书在⾝边,开发遇到什么问题可以随时翻阅:
关于基础:
0 C#
1《C++primer中⽂版》
本书是久负盛名的C++经典教程,其内容是C++⼤师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责⼈Josée Lajoie对
C++标准深⼊理解的完美结合,已经帮助全球⽆数程序员学会了C++。 对C++基本概念和技术全⾯⽽且权威的阐述,对现代C++编程风格的强调,使本书成为C++初学者的最佳指南;对于中⾼级程序员,本书也是不可或缺的参考书。
购买链接:
关于设计模式:
2《Python编程实战:运⽤设计模式、并发和程序库创建⾼质量程序》
此书由Python开发者社区知名技术专家Mark Summerfield亲笔撰写,全球资深Python专家Doug Hellm
ann作序⿍⼒推荐,是Python领域最有影响⼒的著作之⼀。书中通过⼤量实⽤的范例代码和三个完整的案例研究,全⾯⽽系统地讲解了如何运⽤设计模式来规划代码结构,如何通过并发与Cython等技术提升代码执⾏速度,以及如何利⽤各种Python程序库来快速开发具体的应⽤程序和游戏。
购买链接:
关于编写良好C++代码风格:
《Effective C++:改善程序与设计的55个具体做法(第3版)》
本书⼀共组织55个准则,每⼀条准则描述⼀个编写出更好的c++的⽅式、每⼀个条款的背后都有具体范例⽀撑。第三版有⼀半以上的篇幅是崭新内容,包括讨沦资源管理和模块(templates)运⽤的两个新章。为反映出现代设计考虑,对第⼆版论题做了⼴泛的修订,包括异常(exceptions)、没汁模式(design patterns)和多线程(multithreading)。
⾼效的classes、functions、templates和inheritance hierarchies(继承体系)⽅⾯的专家级指导。
购买链接:
关于编写多线程程序:
3《Linux 多线程》
本书主要讲述采⽤现代C++ 在x86-64 Linux 上编写多线程TCP ⽹络服务程序的
主流常规技术,重点讲解⼀种适应性较强的多线程服务器的编程模型,即one loop
per thread。这是在Linux 下以native 语⾔编写⽤户态⾼性能⽹络程序最成熟的模
式,掌握之后可顺利地开发各类常见的服务端⽹络应⽤程序。本书以muduo ⽹络库
为例,讲解这种编程模型的使⽤⽅法及注意事项。
购买链接:
关于windows下客户端开发:
4《MFC深⼊浅出》
购买链接:
关于windows的核⼼内容:
《Windows核⼼编程》
购买链接:
关于图形API:
⼀般就是DirectX或者OpenGL之间选⼀个。如果考虑到跨平台,那么OpenGL是⾸选. 如果只在windows的平台,则DirectX是⾸选。
5《OpenGL编程指南》
购买链接:
6《DirectX 10 3D》
购买链接:
好了,⼊门之后,是你巩固和拓展视野的阶段。现在看计算机图形学就⽐较合适了。
但是请注意,以上的书籍都是基础,必须消化,要不然下⾯的书籍就会异常难懂。
关于计算机图形学:
7吐⾎推荐《Real-Time Rendering, Third Edition》(RTR)。相对于制作CG(动画电影、电影特效)的离线渲染,实时渲染是游戏的核⼼部分,这本书被誉为游戏引擎开发者的天书。这本书的内容⾮常多,涉及实时渲染的⽅⽅⾯⾯,写作⼿法亦⾮常简明易读。但由于许多细节内容实在放不进这本超过1000页的著作,但作者们⾮常仔细地包含了⼤量的参考⽂献,可以作为这个领域的指南。但第3版已经是2008年出版,期待第4版。
这本书算得上是所有图形程序员的必读书籍和参考⼿册了。最近刚出了第三版(更新:已经有电⼦版了)。可惜国内只有第⼆版,稍微有点⽼,如果实在不到第三版,还是值得⼀读。
关于Shader:
《Cg_tutorial》和《The Complete Effect and HLSL Guide》都是不错的⼊门材料,当然还有SDK⽂档。关于光照:《Advanced Lighting And Materials With Shaders》详细介绍了各种光照模型和技术。《GPU Gems》 1~3册肯定是必读的,虽然有1,2有中⽂版,但某些翻译并不是很理想,强烈建议直接看英⽂版。
关于地形:
《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》是碰撞检测⽅⾯最好的书,可惜⽬前还没有电⼦版。
关于关卡:
《Level of Detail for 3D Graphics》
关于游戏引擎架构:
《Game Engine Architecture》游戏开发工程师需要学什么
关于AI:
《Programming Game AI by Example》⾮常不错,当然《AI Programming Wisdom》系列也是必读作品,不过⽬前⽹络上只有1~2册。
关于⽹络:
《C++⽹络编程》
⾄于那些“All in one”或者n天较你写出个FPS游戏的书就不要读了,这类书的通病是什么都说了,结果什么也没说清楚。
对游戏开发者来说英⽂阅读能⼒是最重要也是最基本的⼯具之⼀,因为你遇到的⼤部分资源都将是英⽂的,不要总等着别⼈为你翻译。慢慢尝试着阅读英⽂资料,你会发现其实也并没有那么难:)(当然,也是居家必备,但不够系统)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论