游戏引擎架构(第2版)
链接:https://pan.baidu.com/s/1pTNvYha0V3Sivyn1axLwKQ?pwd=29k4
提取码:29k4

编辑推荐
适读人群 :本书为大学程度的游戏编程课程而编写,但也适合软件工程师、游戏开发业余爱好者,以及游戏产业的从业人员阅读。通过阅读本书,资历较浅的游戏工程师可以巩固他们所学的游戏技术及引擎架构的知识,专注某一领域的程序员也能从本书更为全面的介绍中获益。
√ 引擎为游戏科技之大成,而通用游戏引擎经常无法通用,需要因项目而改造、整合、扩展及优化,因此必须理解其架构、机制和技术 ,才能分析及解决游戏制作中的问题(本书译者在腾讯游戏即担此重任)。
√ 站在*界级专家的肩上,广泛了解、宏观对比(艺电、顽皮狗)*界游戏名作优选方案与实际采用技术、工具,覆盖手游、端游通用的游戏性系统、场景管理、人工智能、物理模拟、前台技术等知识。
√ 涵盖游戏开发技术方方面面:足够细节以使初学者极易理解;巧妙平衡广度与深度以帮助经验丰富的游戏程序员。架构部分细致描述每个子系统的需求、相关技术及与其他子系统的关系。
√ 游戏音频技术内容首度在书中出现,填补领域空白——大篇幅整章讲述开发AAA游戏音频引擎的物理、数学及技术首度曝光;动画系统 、运行时游戏性基础系统部分依旧出彩。
《游戏引擎架构》广受欢迎,成为游戏引擎软件开发理论和实践的完整指南。第2版按当今游戏引擎架构发展趋势更新大量内容,进一步完善对典型游戏引擎各主要模块的讲解,重点新内容包括:
•更新了各个主题的信息,包括C++编程语言的*新版本C++11、第8代游戏机Xbox One 和PlayStation 4。
•新增了音频技术章节,包含AAA游戏音频引擎所涉及的物理、数学和技术等方面的知识。
•更新了多核编程、流水线CPU架构、优化、国际化、赝矢量、格拉斯曼代数、对偶四元数、SIMD矢量数学、内存对齐及抗锯齿等章节。
•深入介绍了顽皮狗*新热作《*后生还者》的制作过程。
本书讲解商业游戏引擎中各个子系统的理论基础,并论述了实现这些子系统通常所需的数据结构、算法及软件接口。本书聚焦在引擎本身,其中包括底层基础系统、渲染引擎、碰撞系统、物理模拟、角色动画及音频。而在“游戏性基础层”中深入探讨游戏对象模型、*界编辑器、事件系统与脚本系统。书中还涉及一些游戏编程方面的技术,如玩家机制、摄像头和人工智能。
《游戏引擎架构》(第2版)不仅可作为知识扫盲的工具,以及延伸学习的跳板,更能让读者扎实地理解游戏引擎中每个工程范畴中的理论与典型实践。本书将助你走过游戏引擎架构那迷人、全方位的难忘之旅。
内容简介
《游戏引擎架构》(第 2 版)涵盖游戏引擎软件开发的理论及实践知识,并在第 1 版的基础上对多个主题进行了更新。本书中讨论的概念及技巧被实际应用于现实中的游戏工作室(如艺电及顽皮狗)。虽然书中采用的例子通常依托于一些专门的技术,但是讨论范围远超某个引擎或API。另外,书中提供的参考文献及引用也非常有价值,可让读者继续深入游戏开发的任何特定方向。本书为大学程度的游戏编程课程而编写,但也适合软件工程师、游戏开发业余爱好者,以及游戏产业的从业人员阅读。通过阅读本书,资历较浅的游戏工程师可以巩固他们所学的游戏技术及引擎架构的知识,专注某一领域的程序员也能从本书全面的介绍中获益。《游戏引擎架构》(第2版)不仅可作为知识扫盲的工具,以及延伸学习的跳板,更能让读者扎实地理解游戏引擎中每个工程范畴中的理论与典型实践。本书将助你走过游戏引擎架构那迷人、全方位的难忘之旅。本书讲解商业游戏引擎中各个子系统的理论基础,并论述了实现这些子系统通常所需的数据结构、算法及软件接口。本书聚焦在引擎本身,其中包括底层基础系统、渲染引擎、碰撞系统、物理模拟、角色动画及音频。而在“游戏性基础层”中深入探讨游戏对象模型、世界编辑器、事件系统与脚本系统。书中还涉及一些游戏编程方面的技术,如玩家机制、摄像头和人工智能。《游戏引擎架构》广受欢迎,成为游戏引擎软件开发理论和实践的完整指南。第2版按当今游戏引擎架构发展趋势更新大量内容,进一步完善对典型游戏引擎各主要模块的讲解,重点新内容包括:・更新了各个主题的信息,包括C++编程语言的*新版本C++11、第8代游戏机Xbox One 和PlayStation 4。・新增了音频技术章节,包含AAA游戏音频引擎所涉及的物理、数学和技术等方面的知识。・更新了多核编程、流水线CPU架构、优化、国际化、赝矢量、格拉斯曼代数、对偶四元数、SIMD矢量数学、内存对齐及抗锯齿等章节。
作者简介
Jason Gregory,在1994年开始任职专业软件工程师,自1999年3月开始在游戏产业中任职软件工程师。在圣迭哥Midway Home Entertainment公司开始游戏编程的他,为《疯狂飞行员(Freaky Flyers)》及《Crank the Weasel》开发PlayStation 2/Xbox上的动画系统。在2003年,他转到洛杉矶艺电,为《荣誉勋章:血战太平洋(Medal of Honor: Pacific Assault)》开发游戏引擎及游戏性技术,并在《荣誉勋章:空降神兵(Medal of Honor: Airborne)》中担任首席工程师。他现时是顽皮狗公司的通才程序员,为《神秘海域:德雷克船长的宝藏(Uncharted: Drake's Fortune)》及《神秘海域:纵横四海(Uncharted: Among Thieves)》开发引擎及游戏性软件。他也在南加州大学教授游戏技术的课程。
译者简介
叶劲峰(Milo Yip),从小自习编程,并爱好计算机图形学。上中学时兼职开发策略RPG《王子传奇》,该游戏在1995年于台湾发行。其后他获取了香港大学认知科学学士、香港中文大学系统工程及工程管理哲学硕士。毕业后在香港理工大学设计学院从事游戏引擎及相关技术的研发,职至项目主任。除发表学术文章外,也曾合著《DirectX9游戏编程实务》。2008年往上海育碧担任引擎工程师开发《美食从天而降(Cloudy with a Chance of Meatballs)》Xbox360/PS3/Wii/PC,2009年起于麻辣马开发《爱丽丝:疯狂回归(Alice: Madness Returns)》Xbox360/PS3/PC,2011年加入腾讯互动娱乐引擎技术中心担任专家工程师,所研发的技术已用于《斗战神》、《天涯明月刀》、《众神争霸》等项目中。
目录
第 2 版序言 .........................................xxxiii
第 1 版序言 .........................................xxxv
第 2 版前言 .........................................xxxvii
第 1 版前言 .........................................xxxviii
致谢 .............................................xl
第 I 部分 基 础
第 1 章 导论 .......................................3
1.1 典型游戏团队的结构 ................................4
1.1.1 工程师 .....................................5
1.1.2 艺术家 .....................................5
1.1.3 游戏设计师 ...................................6
1.1.4 制作人 .....................................7
1.1.5 其他工作人员 ..................................7
1.1.6 发行商及工作室 .................................7
1.2 游戏是什么 .....................................8
1.2.1 电子游戏作为软实时模拟.............................8
1.3 游戏引擎是什么 ...................................10
1.4 不同游戏类型的引擎差异 ..............................11
1.4.1 第一人称射击游戏 ................................12
1.4.2 平台及其他第三人称游戏.............................13
1.4.3 格斗游戏 ....................................15
1.4.4 竞速游戏 ....................................17
1.4.5 实时策略游戏 ..................................18
1.4.6 大型多人在线游戏 ................................20
1.4.7 玩家创作内容 ? ..................................21
1.4.8 其他游戏类型 ..................................23
1.5 游戏引擎概览 ....................................24
1.5.1 雷神之锤引擎家族 ................................24
1.5.2 虚幻引擎 ....................................25
1.5.3 Source 引擎 ...................................26
1.5.4 DICE 的寒霜引擎 ? ...............................26
1.5.5 CryEngine ? ...................................26
1.5.6 索尼的 PhyreEngine ? ..............................27
1.5.7 微软的 XNA Game Studio............................27
1.5.8 Unity ? .....................................27
1.5.9 供非程序员使用的二维游戏引擎 ? .........................28
1.5.10 其他商业引擎 .................................29
1.5.11 专有内部引擎 .................................29
1.5.12 开源引擎....................................29
1.6 运行时引擎架构 ...................................30
1.6.1 目标硬件 ....................................32
1.6.2 设备驱动程序 ..................................32
1.6.3 操作系统 ....................................32
1.6.4 第三方软件开发包和中间件............................33
1.6.5 平台独立层 ...................................36
1.6.6 核心系统 ....................................36
1.6.7 资源管理器 ...................................37
1.6.8 渲染引擎 ....................................37
1.6.9 剖析和调试工具 .................................41
1.6.10 碰撞和物理...................................42
1.6.11 动画 ......................................43
1.6.12 人体学接口设备 ................................44
1.6.13 音频 ......................................45
1.6.14 在线多人/网络游戏 ...............................46
1.6.15 游戏性基础系统 ................................47
1.6.16 个别游戏专用子系统 ..............................50
1.7 工具及资产管道 ...................................50
1.7.1 数字内容创作工具 ................................50
1.7.2 资产调节管道 ..................................52
1.7.3 世界编辑器 ...................................54
1.7.4 资源数据库 ? ...................................55
1.7.5 一些构建工具的方法 ...............................55
第 2 章 专业工具 ....................................58
2.1 版本控制 .......................................58
2.1.1 为何使用版本控制 ................................58
2.1.2 常见的版本控制系统 ...............................59
2.1.3 Subversion 和 TortoiseSVN 概览 .........................60
2.1.4 在 Google 上设置代码版本库...........................61
2.1.5 安装 TortoiseSVN ................................61
2.1.6 文件版本、更新和提交 ..............................63
2.1.7 多人签出、分支及合并 ..............................64
2.1.8 删除 ......................................66
2.2 微软 Visual Studio..................................66
2.2.1 源文件、头文件及翻译单元 ............................67
2.2.2 程序库、可执行文件及动态链接库.........................67
2.2.3 项目及解决方案 .................................68
2.2.4 生成配置 ....................................69
2.2.5 调试代码 ....................................75
2.3 剖析工具 .......................................81
2.3.1 剖析器列表 ...................................83
2.4 内存泄漏和损坏检测 ................................83
2.5 其他工具
查看全部↓
精彩书摘
序言
游戏及计算机是紧紧相连的。从第一款数字电脑游戏的出现——1962年的Spacewar,到今天最先进的游戏系统,通过计算机的逻辑及数学本质,使得游戏中的各个程序方面得以完美结合。数字游戏向我们展示出一个未来世界,系统思想、互动及编程基础将带来人类发明、发现及想象的新纪元。这个未来是复杂的——所有人都需要好的指南。
开门见山: 本人认为,本书是同类书籍中最好的,你找到它是一种幸运。本书以简明、清楚的方式覆盖游戏引擎架构这个庞大领域,并巧妙地平衡了此领域的广度与深度,它提供了足够的细节,即使初学者也能很容易地理解其中的各种概念。而作者Jason Gregory不单是该领域的世界级专家,他还是一位在职程序员,富有成品品质的知识,并参与过许多已发行的游戏项目。他与顽皮狗的游戏工程师一起工作,顽皮狗是世界一流的游戏制作工作室之一。制作了多款被广泛认为是史上最佳的游戏。除此以外,他还是有着丰富经验的教育家,曾在北美排名靠前的大学教授游戏开发课程。
为什么你应该相信我,因为你正在看的是一颗罕有的“宝石”,这本书将会成为你的游戏开发参考藏书的重要成员。以下我将尽力加强你对我这一主张的信心。
成年以后,我一直以专业游戏设计师为业。其中大部分时间,我在顽皮狗以首席游戏设计师身份工作,而顽皮狗是索尼旗下的工作室——对,就是那个创造了Crash Bandicoot及Jak and Daxter系统游戏的那个工作室。首次认识Jason Gregory 在顽皮狗,现在我认识他已很长时间了,在顽皮狗,他与我荣幸地参与了全部三集叫好又叫座的《神秘海域》(Uncharted)系列游戏。Jason还继续参与了顽皮狗的下一个极其成功的讲故事动作游戏《最后生还者》(The Last of Us)。
我的游戏设计师生涯始于英国的MicroProse公司,在加入顽皮狗之前,我在Crystal Dynamics工作,参与制作了Gex和Legacy of Kain: Soul Reaver等游戏系列。在顽皮狗工作的8个奇妙年头中,我学到了非常多的东西,现在成了南加州大学戏剧艺术学院互动媒体及游戏部门的老师。我教授南加州大学的游戏课程,并在该校的游戏创新实验室设计游戏。南加州大学与顽皮狗工作室有着紧密的联系,Jason也在南加州大学的Viterbi工程学院教授游戏课程中的编程课。
当我初识Jason时,他刚从我们附近的艺电转到顽皮狗来,他任职于艺电时有许多非常优秀的工作成果,包括高技术水平及艺术驱动的游戏动画方面的工作成果。我们两人几乎能即时合拍工作。他承担了许多复杂的任务,其中之一是协助开发脚本语言及其专门的编辑环境,这让我的游戏设计师前辈与我能把各种美术资源、动画、音频、视觉特效及代码连接在一起,成为可以震撼《神秘海域》玩家的章节。所以我有第一手经验,知道Jason如何把复杂的概念变得清晰。他有一套参与开发的工具,是我平生用过的最好的工具;而且,通过与他一起工作,我知道他把同样强大的技术与清晰的沟通能力带进了专业生涯中的每一款游戏系统里,以及本著作。
当代的视频游戏开发是一门大学科。从设计到开发,从AAA1到独立游戏,从渲染、碰撞到工具编程,要做一个游戏,需要很多交叉的系统及技巧。说起我们现有的游戏制作工具,其功能与复杂度是不匹配的,本书中的许多详细代码示例及实现示例能帮助读者读取并理解这些碎片是如何拼凑成一个好游戏的。通过这种方式帮助读者,Jason的书也许能令你超越史上最好的游戏设计师及实现开发者做过的最大胆的梦。
本书提供了一个概览,但它不仅停留在知识表面,还挖掘至足够深度,令我们有机会理每个所提及的题目。我的好友Ian Dallas (Giant Sparrow的创意总监、The Unfinished Swan的创作者)曾手按本书,以他带有丰富感情色彩的语言发誓:这本书给了我们一个机会去“吃大象的一块”——用这包含巨大学问的“大局观”作为开始,不然我们难以踏出第一步去理解这么广阔的题目。
现在也是接触游戏软件工程的好时机。全世界都有学校提供高质量的课程,由经验丰富的游戏创作者教授各种技术及艺术方面的技能。游戏也正在进入难以想象的复兴时期,受独立游戏及艺术游戏的一些影响,它为我们的世界带来了新声音及新角度,这些都同时加强了主流计算机、游戏机及移动端游戏非常健康及创新的发展。
让我们迎着众多扣人心弦、未知的数字游戏未来而行,此领域对娱乐、艺术及商业来说,只会变得越来越有趣,对文化越来越有影响力,也越来越具创新性。没有比这本书更好的跳板,或是比Jason Gregory更好、更明智的向导,让它和他引领我们开始这个迷人的游戏开发世界终身学习之旅吧!
Richard Lemarchand
2013 年11 月14 日
查看全部↓
前言/序言
推荐序 1
最初拿到 Game Engine Architecture 一书的英文版 , 是电子工业出版社博文视点公司的编辑侠少邮寄给我的打印版。他建议我接下翻译此书的重任。当时我正在杭州带领一个团队开发 3D 游戏引擎 , 我和我的同事都对这本书的内容颇有兴趣 , 两大本打印的英文书稿立刻在同事间传开。可惜那段时间个人精力实在有限 , 精读近千页的英文读物后再将其翻译成中文对个人的业余时间来说是一个极大的挑战 , 不能担此翻译任务颇为遗憾。
不久以后听说 Milo Yip ( 叶劲峰 ) 已开始着手翻译 , 甚为欣喜。翻译此巨著 , 他一定是比我更合适的人选。我和 Milo 虽未曾谋面 , 但神交已久 , 在网络上读过一些他的成长经历 , 和我颇为相似 , 心有戚戚。他对游戏 3D 实时渲染技术研究精深为我所不及 , 我们曾通过 Google Talk 讨论过许多技术问题 , 他都有独到的见解。 Milo 是香港人 , 英文技术术语在香港的中文译法和内地有许多不同 , 但此书由内地出版社出版 , 考虑到面对的读者主要是内地程序员 , Milo 希望能更符合内地程序员的用词习惯 , 所以在翻译开始时就通过 Google Docs 创建了协作页面 , 邀请大家共同探讨书中技术术语的中文译法。从中我们可以一窥他作为译者的慎重。
三年之后 , 有幸在出版之前就拿到了完整的译本。这是一本用 LATEX 精心排版的 1000 多页的电子书 , 我只花了一周时间 , 几乎是一口气读完。流畅的阅读享受 , 绝对不仅仅是因为原著精彩的内容 , 精美的版面和翔实的译注也加分不少。