因为前几年工作当中接触过一些计算机图形方面的基础内容,所以平时闲暇之余对于游戏开发也就有些好奇。年前听说Milo Yip翻译的新书《游戏引擎架构》要上市了,所以就有心想买来一读,满足一下好奇心。除此之外,出于敬仰译者在对待技术方面的严谨态度,除了拜读以外,也希望能够收藏此书。
上上周的周末,拿到了此书,接下来花了一个多星期的时间通读了一遍。因为自己并不是做游戏开发的,所以这里只是谈一谈自己的阅读感受,仅供大家参考。
从目录来看,本书分为五个部分。
第一部分为基础部分
第一章导论,属于全书的概览。1.5小节的一张运行时引擎架构图基本展示了整本书中二、三、四部分所要讲解的主要内容。本章接下来的小节,依照这张架构图从下往上依次先做了简短的介绍,以此作为全书的导论。读完本章之后,整体浏览一下本书的目录,会发现整本书的内容,基本上就是遵照这张图从下往上依次讲解的,编排思路非常清晰。
哦,从本章开始,全书有一个看似不起眼的部分对我帮助非常大,那就是整本书的译注。整本书中,译注非常的翔实。对我这个游戏开发的外行人来说,在我阅读整本书的过程中,译注除了辅助我解释一些专业词汇以外,还包括一些本书以外的扩展知识。比如一些技术的背景知识,对于原书作者一些不恰当观点的纠正,以及对于原书中一些过时的技术做一些更新提示。总之,译注真的是本书的一大亮点,阅读的过程中千万不能错过。
第一部分接下来的二、三、四章,主要就是介绍学习本书后面章节所需要的一些基础知识。
第二章开发工具的讲解以Windows平台的Visual Studio为主,以及在游戏开发中常使用的工具做了介绍。或许是因为自己平时用Mac的原因,所以对这部分不太感冒,只是做了简单的了解。:P
第三章对于C/C++的相关知识做了回顾。除了C++的基本语法以外,对于计算机当中数值的讲解以及C++的内存布局的讲解还是蛮重要的,因为这直接影响到理解本书第二部分第五章内存管理的内容。对于这部分,我自己觉得对于C++不太好的同学也不用太担心,因为这部分的讲解采用了图文并茂的方式,讲解思路非常的清晰,而且每个知识点都是从最简单的开始,门槛已经很低了,你需要做的就是集中注意力,勇敢的紧跟作者的思路就OK了。而且,整本书采用LaTeX排版,除了中文的文字看起来很爽以外,代码的排版看起来也非常的舒服。
第四章介绍游戏开发中涉及到的三维数学。这一章讲解了3D游戏开发过程中常见的数学运算,包括向量、矩阵等等。几乎都是简单的介绍基本的运算原理,绝对没有搞一堆看起来“高大上”的数学公式。这部分最重要的就是仿射矩阵,包括仿射矩阵的平移、旋转和缩放等,不管是后面的渲染引擎,还是碰撞物理引擎,或是引擎的局部优化,都会涉及到矩阵运算原理的知识。
从第二部分从低阶引擎系统开始,就算是正式开始讲解游戏引擎。
第五章讲解游戏支持系统,这部分算是游戏引擎的最底层了。所以会有很多C++简短的代码示例片段。对于内存管理,包括了堆栈分配器,双端堆栈分配器,池分配器,含对齐功能的分配器,单帧和双缓冲分配器等等,当然,还有如何处理内存碎片的问题。在容器这部分介绍了一些常见C++类库在游戏开发过程中的优劣。例如,STL、Boost、Loki等等。这部分感觉如果C++内存布局那部分能理解的话,理解这些基本原理应该不是问题,而且这部分的讲解很多也是图文并茂的,很直观。
第六章主要是讲资源管理。资源管理主要分为两大部分,一部分是离线资源管理,另一部分就是运行时资源管理。对于运行时资源管理,也涉及到了内存管理。具体的细节这里就不展开介绍了。
好像写的有点太过详细了……后面的介绍简短一些吧。
第七章讲游戏循环及实时模拟。主要在讲游戏的主循环渲染。介绍了几种常见的循环渲染的方式,对游戏当中的时间问题做了详细的讲解,以及不同游戏平台下,多处理器的游戏循环等。
第八章讲人体学接口设备。这一章主要就是讲解游戏外设,这一章印象比较深刻的一点是跨平台的HID(human interface device)系统。
第九章讲调试及开发工具。从这章的目录中就可以知道主要在讲哪些内容。对于我这个游戏开发的外行人来说,没有太多的感悟,:P
第三部分图形及动画
第十章讲渲染引擎。这章大概分为三个部分,第一部分在讲解3D渲染相关的基本概念。第二部分讲解渲染管道。第三部分主要是讲解光照。在第二部分讲解渲染管道的过程中,作者结合游戏开发,在流程上,把产生几何数据的工具,资产调节管道,应用程序这三个阶段加入了进来。这一点把游戏开发的整体流程考虑了进来,而非像普通图形学书籍那样,只讲解几何处理,光栅化部分。当然,对于渲染引擎来说,这几十页的内容是远远不够的,所以也可以看出,本章讲的其实是一些比较基础的知识。当然,为了让读者能够深入学习,本章最后特意留有一个小节,作为延伸阅读。译者也在章节过程中穿插推荐了一些不错的读物。
第十一章讲解动画系统。本章主要以骨骼蒙皮动画为主。具体如何,可以从译者的译序中也可以看出,本章和第十四章属于本书特别出彩的章节,想必应该不用多说了吧,:)
第十二章讲解碰撞及刚体力学。从题目也可以看出,本章分为三大部分,一部分为碰撞检测,第二部分为刚体动力学,最后一部分是整合到游戏引擎。在碰撞检测系统中,介绍了碰撞原型,碰撞检测及解析几何,这当中讲解了GJK算法。碰撞查询,碰撞过滤等。刚体动力学中主要包括运动学方面的知识。
第四部分游戏性
这部分就不分章说了。关于这部分,不管是云风的推荐序1,还是译者的译序,都特别推荐了这部分。
第五部分是总结
回头来看,本书适合当作学习3D游戏引擎的教材,既可以了解游戏引擎的全貌,又可以根据书中提供的阅读资料深入学习。不管是入门还是进阶,都可以参考此书。而且译者的翻译非常流畅,使用LaTeX排版的阅读体验还是非常爽的 :)
一本学习3D游戏引擎的好书
《游戏引擎架构》热门书评
-
走向进阶的共鸣 ---深入理解工业级的《游戏引擎架构》
26有用 0无用 秦春林 2014-06-19
这两年,我阅读了大量关于游戏开发相关的博客,文章及书籍,从理论到实践;也不断通过各种互联网工具查阅实际开发中的一些技术细节和思路;经常与同行进行不同程度的交流和探讨。我体会到,对于某个领域,最重要的是要理解该领域的系统性的知识和原理,要明白它用来解决什么问题,解决问题的思路是什么,这样你才能去高效地...
-
转载:davidgu 目前为止游戏引擎方面最值得重视的一本好书
20有用 0无用 Milo 2014-03-12
游戏引擎方面的书籍历来都埋没在大堆的书中,不为人重视。大家长期来重点关注的,都是渲染领域。近年来这些现象有所改善,Game Programming Gems作为综合的Gems类书籍,有不少篇幅涉及了这一领域,近年来更有Engine Gems系列的书涉及这一领域。然而Gems类的书籍,毕竟没有办法系统...
-
一本学习3D游戏引擎的好书
14有用 1无用 Snow 2014-02-27
因为前几年工作当中接触过一些计算机图形方面的基础内容,所以平时闲暇之余对于游戏开发也就有些好奇。年前听说Milo Yip翻译的新书《游戏引擎架构》要上市了,所以就有心想买来一读,满足一下好奇心。除此之外,出于敬仰译者在对待技术方面的严谨态度,除了拜读以外,也希望能够收藏此书。上上周的周末,拿到了此书...
-
这是我读过翻译水平最高的著作,没有之一。
8有用 0无用 Yosemite 2014-02-28
这是我读过翻译水平最高的著作,没有之一。说句实在话这书要是给某个高校老师拉几个研究生几个月就能翻完,但以译者如此深厚的功底,却译了足足三年半!可见他对待这件事有多么认真!但我常想,Milo Yip能有这么高的水平,也许正是因为他的严谨和认真吧。作为计算机和软件专业的学生,即使今后不做游戏方向,哪怕仅...
-
非常不错的一本书
4有用 1无用 Yuki 2010-01-18
这本书算是游戏引擎方面最好的一本书了.非常清楚和详细讲解了游戏引擎的架构,而且包含大量丰富的细节.仔细读的话很有收获.亮点:1.讲解现代游戏引擎架构,非常新的实例.包括作者自己公司的引擎和商业引擎例如Unreal的实例.2.清楚的讲解实现细节.代码少而思想多.往往一段话就可以让你了解某个部分的实现....
书名: 游戏引擎架构
作者: [美] Jason Gregory
出版社: 电子工业出版社
原作名: Game Engine Architecture
译者: 叶劲峰
出版年: 2014-1
页数: 800
定价: 128.00元
装帧: 平装
ISBN: 9787121222887