游戏引擎架构(第2版)(博文视点出品)pdf下载pdf下载

游戏引擎架构(第2版)(博文视点出品)百度网盘pdf下载

作者:
简介:本篇主要提供游戏引擎架构(第2版)(博文视点出品)pdf下载
出版社:
出版时间:2019-10
pdf下载价格:9.00¥


预览


内容介绍

产品特色

编辑推荐

适读人群 :本书为大学程度的游戏编程课程而编写,但也适合软件工程师、游戏开发业余爱好者,以及游戏产业的从业人员阅读。通过阅读本书,资历较浅的游戏工程师可以巩固他们所学的游戏技术及引擎架构的知识,专注某一领域的程序员也能从本书更为全面的介绍中获益。

√ 引擎为游戏科技之大成,而通用游戏引擎经常无法通用,需要因项目而改造、整合、扩展及优化,因此必须理解其架构、机制和技术 ,才能分析及解决游戏制作中的问题(本书译者在腾讯游戏即担此重任)。

√ 站在*界级专家的肩上,广泛了解、宏观对比(艺电、顽皮狗)*界游戏名作优选方案与实际采用技术、工具,覆盖手游、端游通用的游戏性系统、场景管理、人工智能、物理模拟、前台技术等知识。

√ 涵盖游戏开发技术方方面面:足够细节以使初学者极易理解;巧妙平衡广度与深度以帮助经验丰富的游戏程序员。架构部分细致描述每个子系统的需求、相关技术及与其他子系统的关系。

√ 游戏音频技术内容首度在书中出现,填补领域空白——大篇幅整章讲述开发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 多页的电子书 , 我只花了一周时间 , 几乎是一口气读完。流畅的阅读享受 , 绝对不仅仅是因为原著精彩的内容 , 精美的版面和翔实的译注也加分不少。

在阅读本书的过程中 , 我不止一次地与作者产生共鸣。例如在第 5 章的内存管理系统的介绍中 , 作者介绍的几种游戏特有的内存管理方法我都曾在项目中用过 , 而这是第一次有书籍专门将这些方法详尽地记录下来 ; 又如第 11 章动画系统的介绍 , 我同样也有在 3D 引擎开发过程中改进原有动画片段混合方法的经历。虽然书中介绍的每个技术点都可能在某篇论文、某本书的某个章节、某篇网络博客上见过 , 但之前却无一本书可以把这些内容放在一起相互参

照。对于从事游戏引擎开发的程序员来说 , 了解各种引擎在处理每个具体问题时的方案是相当重要的。而每种方案又各有利弊 , 即使不做引擎开发工作而是在某一特定游戏引擎上做游戏开发 , 也可以从中理解引擎的局限性以及可能的改进方法。尤其是第 14 章介绍的对游戏性相关系统的设计 , 每个开发人员几乎都是凭经验设计 , 很少有书籍对这些知识点进行总结。对于基于渲染引擎做开发的游戏程序员 , 这是必须面对的工作 , 这一章有很大的借鉴意义。

本书作者是业内资深的游戏引擎开发者 , 他所参与研发的《神秘海域》和《最后生还者》游戏都是我个人的最爱。在玩游戏的过程中 , 出于游戏程序员的天性 , 自然会不断地猜想各个技术点是如何实现的 , 背后需要怎样的工具支持。这些能在书中一一得到印证是一件让人特别开心的事情。另外 , 作者反复强调代码实践的重要性 , 在书中遍布着 C++ 代码。我不认为这些代码有直接取来使用的价值 , 但它们极大地帮助了读者理解书中的技术点。书中列出的顽皮狗工作室用 lisp 方言编写游戏配置脚本的范例也给了我很大的启发 , 有了这些具体的代码示例以及作者本身一线工程师的背景 , 让我确信书中那些与主机游戏开发相关等我所没有接触过的内容都绝非泛泛之谈。

国内游戏开发社区的壮大 , 主要随最近十年的 MMO 风潮而生。而就在大型网络游戏于国内有些偏离电子游戏的游戏性趋势时 , 我们有幸迎来了为移动设备开发游戏的大潮。游戏开发的重心重新回到游戏性本身。我们更需要借鉴单机游戏是如何为玩家带来更纯粹的游戏体验的 , 我相信书中记录的各种技术点会变得对广大读者更有帮助。

云风 (@ 简悦云风 )


推荐序 2

在我认识的许多游戏业开发同仁中 , 只有少数香港同胞 , Milo Yip ( 叶劲峰 ) 却正是这样一位让我印象非常深刻的、优秀的香港游戏开发者。我俩认识是在 Milo 加入腾讯互动娱乐研发部引擎技术中心后 , 至今也只是两年多的时间。其间 , 他谦逊务实的为人 , 对待技术问题的严谨求真态度 , 对算法设计和性能优化的娴熟技术 , 都为人所称道。 Milo 一丝不苟的工作风格 , 甚至表现在对待技术文档排版这类事情上 (Milo 常执着地用 LATEX 将技术文档排版到完美 ), 我想这一定是他在香港读大学、硕士及在香港理工大学的多媒体创新中心从事研究员 , 一贯沿袭至今的好作风。

我很高兴腾讯游戏有实力吸引到这样优秀的技术专家 , 即使 Milo 已从上海迁回香港家中 ,依然选择到深圳腾讯互动娱乐总部工作。从此 , Milo 工作日每天早晚过关 , 来往香港和深圳两地 , 虽有舟车劳顿 , 但是兼顾了对家庭的照顾和在游戏引擎方面的专业研究 , 希望这样的状况是令他满意的。

认识 Milo 时 , 我便知道他在进行 Jason Gregory 所著的 Game Engine Architecture 一书的翻译工作。因为自己从前也有业余翻译游戏开发相关书籍的经历 , 所以我能理解其中的辛苦和责任重大 , 对 Milo 也更多了一分钦佩。我以为 , 本书以及本书的中文读者最大的幸运便是 , 遇到 Milo 这位对游戏有着如同对家对国般强烈责任感 , 犹如“游戏科学工作者”般的专业译者 !

现在 (2013 年年末 ) 无疑是游戏史上对独立游戏制作者最友好的年代 , 开发设备方便获得 ( 相对过去仅由主机厂商授权才能获得专利开发设备 , 现在有一台智能手机和一台个人电脑就可以开发游戏 ) 、技术工具友好、调试过程简单方便 , 且互联网上有丰富的教程和开源代码可供参考 , 还有网上社区便于交流。很多游戏爱好者能够很快地制作出可运行的游戏原型 , 其中一些还能发布到应用商店。

但是不全面掌握各方面知识 , 尤其是游戏引擎架构知识 , 往往只能停留在勉强修改、凑合重用别人提供的资源的应用程度上 , 难以做到极限的性能改进 , 更妄谈革命式的架构创新。这样的程度是很难从成千上万的游戏中脱颖而出的。我们所认可的真正的游戏大作必定是在某方面大幅超越用户期待的产品。为了打造这样的产品 , 游戏内容创作者 ( 策划、美工等 ) 需要“戴着镣铐跳舞” ( 在当前的条件下争取更多的创作自由度 ), 而引擎架构合理的游戏可以经得

起 —— 也值得进行 —— 反复优化 , 最终可以提供更多的自由度 , 这是大作出现的技术前提。

书的作者、译者、出版社的编辑 , 加上读者 , 大家是因书而结缘的有缘人。因 Milo 这本《游戏引擎架构》译著而在线上线下相识的读者们 , 你们是不是因“了解游戏引擎架构 , 从而制作 / 优化好游戏”这样的理想而结了缘呢 ?

亲爱的读者 , 愿你的游戏作品有一天因谜题巧妙绝伦、趣味超凡、虚拟世界气势磅礴、视觉效果逼真精美等专业因素取得业界褒奖 , 并得到玩家真诚的赞美。希望届时曾读过 Milo 这本《游戏引擎架构》译著的你 , 也可以回馈社会 , 回馈游戏开发的学习社区 , 帮助新人。希望你也可以建立微信公众号、博客等 , 或翻译游戏开发书籍 , 造福外语不好的读者 , 所以如果你的外语 ( 英语、日语、韩语对于游戏行业来说比较重要 ) 水平仍须精进 , 现在也可以同步加油了 !

沙鹰 (yingsha@qq.com)


第 1 版前言

欢迎来到《游戏引擎架构》的世界。本书旨在全面探讨典型商业游戏引擎的主要组件。游戏编程是一个庞大的主题 , 有许多内容需要讨论。不过相信你会发现 , 我们讨论的深度将足以使你充分理解本书所涵盖的工程理论及常用实践的方方面面。话虽如此 , 令人着迷的漫长游戏编程之旅其实才刚刚启程。与此相关的每项技术都包含丰富内容 , 本书将为你打下基础 , 并引领你进入更广阔的学习空间。

本书的焦点在于游戏引擎的技术及架构。我们会探讨商业游戏引擎中各个子系统的相关理论 , 以及实现这些理论所需要的典型数据结构、算法和软件接口。游戏引擎与游戏的界限颇为模糊。我们将把注意力集中在引擎本身 , 包括多个低阶基础系统 (low-level foundation sys-tem) 、渲染引擎 (rendering engine) 、碰撞系统 (collision system) 、物理模拟 (physics simulation) 、人物动画 (character animation), 以及一个我称之为游戏性基础层 (gameplay foundation layer)的深入讨论。此层包括游戏对象模型 (game object model) 、世界编辑器 (world editor) 、事件系统 (event system) 及脚本系统 (scripting system) 。我们也将会接触游戏性编程 (gameplay programming) 的多个方面 , 包括玩家机制 (player mechanics) 、摄像机 (camera) 及人工智能 (artificial intelligence, AI) 。然而 , 这类讨论会被限制在游戏性系统和引擎接口范围内。

本书可以作为大学中级游戏程序设计中两到三门课程的教材。当然 , 本书也适合软件工程师、业余爱好者 , 以及游戏行业的从业人员阅读。通过阅读本书 , 资历较浅的游戏程序员可以巩固他们所学的游戏数学、引擎架构及游戏科技方面的知识 , 专注某一领域的资深程序员也能从本书更为全面的介绍中获益。

为了更好地学习本书的内容 , 你需要掌握基本的面向对象编程概念并至少拥有一些 C++编程经验。尽管游戏行业已经开始尝试使用一些新的、令人兴奋的编程语言 , 然而工业级的 3D 游戏引擎