编辑推荐
《游戏引擎架构》由游戏界传奇人物云风及“天天爱消除”团队倾情作序推荐,既是游戏工作者必读Bible,对其他IT从业者也不无裨益。
《游戏引擎架构》內容包括:
游戏开发中的大规模C++软件架构
游戏编程所需的数学
供调试、源代码控制及性能剖析的游戏开发工具
引擎基础系统、渲染、碰撞、物理、角色动画、游戏世界对象模型等引擎子系统
多平台游戏引擎
多处理器环境下的游戏编程
工作管道及游戏资产数据库
海报:
内容简介
《游戏引擎架构》同时涵盖游戏引擎软件开发的理论及实践,并对多方面的题目进行探讨。《游戏引擎架构》讨论到的概念及技巧实际应用于现实中的游戏工作室,如艺电及顽皮狗。虽然书中采用的例子通常依据一些专门的技术,但是讨论范围远超于某个引擎或API。文中的参考及引用也非常有用,可让读者继续深入游戏开发过程的任何特定方向。
《游戏引擎架构》为一个大学程度的游戏编程课程而编写,但也适合软件工程师、业余爱好者、自学游戏程序员,以及游戏产业的从业人员。通过阅读《游戏引擎架构》,资历较浅的游戏工程师可以巩固他们所学的游戏技术及引擎架构的知识,专注某一领域的资深程序员也能从《游戏引擎架构》一书更为全面的介绍中获益。
作者简介
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年加入腾讯互动娱乐引擎技术中心担任专家工程师,所研发的技术已用于《斗战神》、《天涯明月刀》、《众神争霸》等项目中。
精彩书评
★本书针对每一个现代游戏开发相关的重要系统和话题,给出一个完美、综合的概览,无论是计算机科学、软件工程,或是游戏主程,以及业余爱好者、游戏玩家,本书均不可或缺。
——获评CHOICE杰出学术作品 ★这里有专业的领域知识与概念讲解……有了它,你将具备对如何构建游戏引擎的深入理解……本书让人印象尤其深刻,因为该领域再也找不到另一本如此详尽的图书。
——EricHaines
★作者将数年经验及专业积累集中在这本完整、全面的著作中,内容跨越游戏引擎开发理论与实践。书中提供的游戏开发过程各方面的精彩实例,保罗万象且对读者大有补益。不仅游戏引擎开发人员看后会大受鼓舞,甚至也可作为有经验的该领域技术专家的实用参考。本书可谓无价,除内容“用户友好”外,其附录也值得强烈推荐,无论是个人开发者、专家还是计算机科学学术人员,都可将其作为资源集合与参考资料,当然游戏设计架构人员更是不可不读。
——TheMidwestBookReview ★本书涵盖有关如何开发游戏引擎要旨的巨量数据。
——Gamasutra.comNovember2009 ★本书曾位列“theGameDeveloper”杂志前沿大奖候选图书。
——PRNewswire 目录
推荐序1
推荐序2
译序
序言
前言
致谢
第一部分基础
第1章导论
1.1典型游戏团队的结构
1.2游戏是什么
1.3游戏引擎是什么
1.4不同游戏类型中的引擎差异
1.5游戏引擎概观
1.6运行时引擎架构
1.7工具及资产管道
第2章专业工具
2.1版本控制
2.2微软VisualStudio
2.3剖析工具
2.4内存泄漏和损坏检测
2.5其他工具
第3章游戏软件工程基础
3.1重温C++及最佳实践
3.2C/C++的数据、代码及内存
3.3捕捉及处理错误
第4章游戏所需的三维数学
4.1在二维中解决三维问题
4.2点和矢量
4.3矩阵
4.4四元数
4.5比较各种旋转表达方式
4.6其他数学对象
4.7硬件加速的SIMD运算
4.8产生随机数
第二部分低阶引擎系统
第5章游戏支持系统
5.1子系统的启动和终止
5.2内存管理
5.3容器
5.4字符串
5.5引擎配置
第6章资源及文件系统
6.1文件系统
6.2资源管理器
第7章游戏循环及实时模拟
7.1渲染循环
7.2游戏循环
7.3游戏循环的架构风格
7.4抽象时间线
7.5测量及处理时间
7.6多处理器的游戏循环
7.7网络多人游戏循环
第8章人体学接口设备(HID)
8.1各种人体学接口设备
8.2人体学接口设备的接口技术
8.3输入类型
8.4输出类型
8.5游戏引擎的人体学接口设备系统
8.6人体学接口设备使用实践
第9章调试及开发工具
9.1日志及跟踪
9.2调试用的绘图功能
9.3游戏内置菜单
9.4游戏内置主控台
9.5调试用摄像机和游戏暂停
9.6作弊
9.7屏幕截图及录像
9.8游戏内置性能剖析
9.9游戏内置的内存统计和泄漏检测
第三部分图形及动画
第10章渲染引擎
10.1采用深度缓冲的三角形光栅化基础
10.2渲染管道
10.3高级光照及全局光照
10.4视觉效果和覆盖层
10.5延伸阅读
第11章动画系统
11.1角色动画的类型
11.2骨骼
11.3姿势
11.4动画片段
11.5蒙皮及生成矩阵调色板
11.6动画混合
11.7后期处理
11.8压缩技术
11.9动画系统架构
11.10动画管道
11.11动作状态机
11.12动画控制器
第12章碰撞及刚体动力学
12.1你想在游戏中加入物理吗
12.2碰撞/物理中间件
12.3碰撞检测系统
12.4刚体动力学
12.5整合物理引擎至游戏
12.6展望:高级物理功能
第四部分游戏性
第13章游戏性系统简介
13.1剖析游戏世界
13.2实现动态元素:游戏对象
13.3数据驱动游戏引擎
13.4游戏世界编辑器
第14章运行时游戏性基础系统
14.1游戏性基础系统的组件
14.2各种运行时对象模型架构
14.3世界组块的数据格式
14.4游戏世界的加载和串流
14.5对象引用与世界查询
14.6实时更新游戏对象
14.7事件与消息泵
14.8脚本
14.9高层次的游戏流程
第五部分总结
第15章还有更多内容吗
15.1一些未谈及的引擎系统
15.2游戏性系统
参考文献
中文索引
英文索引
前言/序言
欢迎来到《游戏引擎架构》世界。本书旨在全面探讨典型商业游戏引擎的主要组件。游戏编程是一个庞大的主题,有许多内容需要讨论。不过相信你会发现,我们讨论的深度将足以使你充分理解本书所涵盖的工程理论及常用实践的方方面面。话虽如此,令人着迷的漫长游戏编程之旅其实才刚刚启程。与此相关的每项技术都包含丰富内容,本书将为你打下基础,并引领你进入更广阔的学习空间。
本书焦点在于游戏引擎的技术及架构。我们会探讨商业游戏引擎中,各个子系统的相关理论,以及实现这些理论所需要的典型数据结构、算法和软件接口。游戏引擎与游戏的界限颇为模糊。我们将把注意力集中在引擎本身,包括多个低阶基础系统(low-levelfoundationsystem)、渲染引擎(renderingengine)、碰撞系统(collisionsystem)、物理模拟(physicssimulation)、人物动画(characteranimation),及一个我称为游戏性基础层(gameplayfoundationlayer)的深入讨论。此层包括游戏对象模型(gameobjectmodel)、世界编辑器(worldeditor)、事件系统(eventsystem)及脚本系统(scriptingsystem)。我们也将会接触游戏性编程(gameplayprogramming)的多个方面,包括玩家机制(playermechanics)、摄像机(camera)及人工智能(artificialintelligence,AI)。然而,这类讨论会被限制在游戏性系统和引擎接口范围。
本书可以作为大学中等级游戏程序设计中两到三门课程的教材。当然,本书也适合软件工程师、业余爱好者、自学的游戏程序员,以及游戏行业从业人员。通过阅读本书,资历较浅的游戏程序员可以巩固他们所学的游戏数学、引擎架构及游戏科技方面的知识。专注某一领域的资深程序员也能从本书更为全面的介绍中获益。
为了更好地学习本书内容,你需要掌握基本的面向对象编程概念并至少拥有一些C++编程经验。尽管游戏行业已经开始尝试使用一些新的、令人兴奋的编程语言,然而工业级的3D游戏引擎仍然是用C或C++编写的,任何认真的游戏程序员都应该掌握C++。我们将在第3章重温一些面向对象编程的基本原则,毫无疑问,你还会从本书学到一些C++的小技巧,不过C++的基础最好还是通过阅读[39]、[31]及[32]来获得。如果你对C++已经有点生疏,建议你在阅读本书的同时,最好能重温这几本或者类似书籍。如果你完全没有C++经验,在看本书之前,可以考虑先阅读[39]的前几章,或者尝试学习一些C++的在线教程。
学习编程技能最好的方法就是写代码。在阅读本书时,强烈建议你选择一些特别感兴趣的主题付诸实践。举例来说,如果你觉得人物动画很有趣,那么可以首先安装OGRE,并测试一下它的蒙皮动画示范。接着还可以尝试用OGRE实现本书谈及的一些动画混合技巧。下一步你可能会打算用游戏手柄控制人物在平面上行走。等你能玩转一些简单的东西了,就应该以此为基础,继续前进!之后可以转移到另一个游戏技术范畴,周而复始。这些项目是什么并不重要,重要的是你在实践游戏编程的艺术,而不是纸上谈兵。
游戏科技是一个活生生、会呼吸的家伙,永远不可能将之束缚于书本之上。因此,附加的资源、勘误、更新、示例代码、项目构思等已经发到本书的网站。
推荐序1 最初拿到《GameEngineArchitecture》一书的英文版,是编辑侠少邮寄给我的打印版。他建议我接下翻译此书的合同。当时我正在杭州带领一个团队开发3D游戏引擎,我和我的同事都对这本书的内容颇有兴趣,两大本打印的英文书立刻在同事间传开。可惜那段时间个人精力顾及不来,把近千页的英文读物精读而后翻译成中文对个人的业余时间是个极大的挑战,不能担此翻译任务颇为遗憾。 不久以后听说MiloYip(叶劲峰)已开始着手翻译,甚为欣喜。翻译此巨著,他一定是比我更合适的人选。我和Milo虽未曾蒙面,但神交已久。在网络上读过一些他的成长经历,和我颇为相似,心有戚戚。他对游戏3D实时渲染技术研究精深为我所不及,我们曾通过GoogleTalk讨论过许多技术问题,他都有独到的见解。翻译工作开始后,Milo是香港人,英文技术术语在香港的中文译法和大陆的有许多不同。但此书由大陆出版社出版,考虑到面对的读者主要是大陆程序员,Milo希望能更符合大陆程序员的用词习惯,所以在翻译一开始就通过GoogleDocs创建了协作页面,邀请大家共同探讨书中技术名词的中译名。从中我们可以一窥他作为译者的慎重。 三年之后,有幸在出版之前就拿到了完整的译本。这是一本用LaTeX精心排版的800页的电子书,我只花了一周时间,几乎是一口气读完。流畅的阅读享受,绝对不仅仅是因为原著精彩的内容,精美的版面和翔实的译注也加了不少分。 在阅读本书的过程中,我不只一次地获得共鸣。例如在第5章的内存管理系统的介绍中,作者介绍的几种游戏特有的内存管理方法我都曾在项目中用过,而这是第一次有书籍专门将这些方法详尽记录;又如第11章动画系统的介绍,我们也同样在3D引擎开发过程中改进原有动画片段混合方法的经历。虽然书中介绍的每个技术点,都可能可以在某篇论文,某本其他的书的章节,某篇网络blog上见过,但之前却无一本书可以把这些东西放在一起相互参照。对于从事游戏引擎开发的程序员来说,了解各种引擎在处理每个具体问题时的方案是相当重要的。而每种方案又各有利弊,即使不做引擎开发工作而是在某一特定游戏引擎上做游戏开发,从中也可以理解引擎的局限性以及可能的改进方法。尤其是第14章介绍的对游戏性相关系统的设计,各个开发人员几乎都是凭经验设计,很少见有书籍对这些做总结。对于基于渲染引擎做开发的游戏程序员,这是必须面对的工作,这一章会有很大的借鉴意义。 本书作者是业内资深的游戏引擎开发人,他所参于的《神秘海域》和《最后生还者》都是我的个人最爱。在玩游戏的过程中,作为游戏程序员的天性,自然会不断地猜想各个技术点是如何实现的,背后需要怎样的工具支持。能在书中一一得到印证是件特别开心的事情。作者反复强调代码实践的重要性,在书中遍布着C++代码。我不认为这些代码有直接取来使用的价值,但它们极大地帮助了读者理解书中的技术点。书中列出的顽皮狗工作室用lisp方言作为游戏配置脚本的范例也给我很大的启发,有了这些具体的代码示例以及作者本身的一线工程师背景,也让我确信书中那些关于主机游戏开发相关等,我所没有接触过的内容都也绝非泛泛而谈。 国内的游戏开发社区的壮大,主要是随最近十年的MMO风潮而生。而就在大型网络游戏在中国有些畸形发展,让这类游戏偏离电子游戏游戏性的趋势时,我们有幸迎来了为移动设备开发游戏的大潮。游戏开发的重心重新回到游戏性本身。我们更需要去借鉴单机游戏是如何为玩家带来更纯粹的游戏体验,我相信书中记录的各种技术点会变的更有帮助。 云风@简悦云风 推荐序2 在我认识的许多游戏业开发同仁中,只有少数香港同胞,MiloYip(叶劲峰)却正是这样一位给我印象非常深刻的优秀香港游戏开发者。我俩认识,是在Milo加入腾讯互动娱乐研发部引擎技术中心后,说来到现在也只是两年多时间。其间,他为人的谦逊务实,对待技术问题的严谨求真态度,对算法设计和性能优化的娴熟技术,都为人所称道。Milo一丝不苟的工作风格,甚至表现在对待技术文档排版这类事情上(Milo常执著地用LaTeX将技术文档排到完美),我想这一定是他在香港读大学、硕士及在香港理工大学的多媒体创新中心从事研究员,一贯沿袭至今的好作风。 我很高兴腾讯游戏有实力吸引到这样优秀的技术专家;即使在其已从上海迁回香港家中,依然选择到深圳腾讯互动娱乐总部工作。叶兄从此工作日每天早晚过关,来往香港和深圳两地,虽有舟车劳顿,但是兼顾了对家庭的照顾和在游戏引擎方面的专业研究,希望这样的状况是令他满意的。 认识叶兄当时,我便知道他在进行JasonGregory所著《游戏引擎架构》一书的中译工作。因为自己从前也有业余翻译游戏开发有关书籍的经历,所以我能理解其中的辛苦和责任重大,对叶兄也更多一分钦佩。我以为,本书以及本书的中文读者最大的幸运便是,遇到叶兄这位对游戏有着如同对家对国般强烈责任感,犹如“游戏科学工作者”般的专业译者! 现在(2013年年末)无疑是游戏史上对独立游戏制作者最友好的年代。开发设备方便获得(相对过往仅由主机厂商授权才能获得专利开发设备,现在有一台智能手机和一台个人电脑就可以开发)、技术工具友好、调试过程简单方便,且互联网上有丰富的例程和开源代码参考,也有网上社区便于交流。很多爱好者能够很快地制作出可运行的游戏原型,其中一些也能发布到应用商店。 但是不全面掌握各方面知识,尤其是游戏引擎架构知识,往往只能停留在勉强修改、凑合重用别人提供的资源的应用程度上,难以做极限的性能改进,更妄谈革命式的架构创新。这样的程度是很难在成千上万的游戏中脱颖而出的。我们所认可的真正的游戏大作,必定是在某方面大幅超越用户期待的产品。为了打造这样的产品,游戏内容创作者(策划、美术等)需要“戴着镣铐跳舞”(在当前的机能下争取更多的创作自由度),而引擎架构合理的游戏可以经得起也值得进行反复优化,最终可以提供更多的自由度,这是大作出现的技术前提。 书的作者、译者、出版社的编者,加上读者,大家是因书而结缘的有缘人。因叶兄这本《游戏引擎架构》译著而在线上线下相识的读者们,你们是不是因“了解游戏引擎架构,从而制作/优化好游戏”这样的理想而结了缘呢? 亲爱的读者,愿你的游戏有一天因谜题巧妙绝伦、趣味超凡、虚拟世界气势磅礴、视觉效果逼真精美等专业因素取得业界褒奖,并得到玩家真诚的赞美。希望届时曾读叶兄这本《游戏引擎架构》译作的你,也可以回馈社会,回馈游戏开发的学习社区,帮助新人。希望你也可以建立微信公众号、博客等,或翻译游戏开发书籍,造福外语不好的读者,所以如果你的外语(英语、日语、韩语之于游戏行业比较重要)水平仍需精进,现在也可以同步加油了! 沙鹰@也是沙鹰 译序 数千年以来,艺术家们通过文学、绘画、雕塑、建筑、音乐、舞蹈、戏剧等传统艺术形式充实人类的精神层面。自20世纪中叶,计算机的普及派生出另一种艺术形式电子游戏。游戏结合了上述传统艺术以及近代科技派生的其他艺术(如摄影、电影、动画),并且完全脱离了艺术欣赏这种单向传递的方式游戏必然是互动的,“玩家”并不是“读者”、“观众”或“听众”,而是进入游戏世界、感知并对世界做出反应的参与者。 基于游戏的互动本质,游戏的制作通常比其他大众艺术复杂。商业游戏的制作通常需要各种人才的参与,而他们则需要依赖各种工具及科技。游戏引擎便是专门为游戏而设计的工具及科技集成。之所以称为引擎,如同交通工具中的引擎,提供了最核心的技术部分。因为复杂,研发成本高,人们不希望制作每款游戏(或车款)时都重新设计引擎,重用性是游戏引擎的一个重要设计目标。 然而,各游戏本身的性质以及平台的差异,使研发完全通用的游戏引擎变得极困难,甚至不可能。市面上出售的游戏引擎,有一些虽然已经达到很高的技术水平,但在商业应用中,很多时候还是需要因应个别游戏项目对引擎改造、整合、扩展及优化。因此,即使能使用市面上最好的商用引擎或自研引擎,我们仍需要理解当中的架构、各种机制和技术,并且分析及解决在制作中遇到的问题
游戏引擎架构 下载 mobi epub pdf txt 电子书 格式
评分
☆☆☆☆☆
包装没有塑封,就是一本裸书(本来没包装?),边边角角有些碰出痕迹了,有点心疼。希望以后京东可以二次塑封吧~印刷还是不错的,纸墨香很浓。内容也很不错,就算是一般玩家也能看懂~作为暴雪粉看到不少星际2的内容,激动~
评分
☆☆☆☆☆
买书好好学习天天向上吧哈哈哈哈哈哈
评分
☆☆☆☆☆
好书,价廉物美,好好学习中。
评分
☆☆☆☆☆
第一次网上购书,没让我失望,书的质量很不错,都已拆封,充电模式开启!
评分
☆☆☆☆☆
正如书名描述的那样,这是本讲如何设计游戏的书,适合有一定游戏开发设计经验,想设计游戏的读者阅读。 具体内容不是这篇评论的重点,几乎每章都充满了启发性的见解,去看肯定会有收获的。本评论主要介绍下几本游戏设计书籍的使用方法。
评分
☆☆☆☆☆
质量好评,讲的内容也不错,学起来无压力
评分
☆☆☆☆☆
送货快,包装好,质量过硬,价格优惠
评分
☆☆☆☆☆
应该是正版,比当当的还便宜
评分
☆☆☆☆☆
很厚一本,讲的基础引擎的知识