游戲引擎架構(第2版) 版權信息
- ISBN:9787121375293
- 條形碼:9787121375293 ; 978-7-121-37529-3
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
游戲引擎架構(第2版) 本書特色
√ 引擎為游戲科技之大成,而通用游戲引擎經常無法通用,需要因項目而改造、整合、擴展及優化,因此必須理解其架構、機制和技術 ,才能分析及解決游戲制作中的問題(本書譯者在騰訊游戲即擔此重任)。
√ 站在*界級專家的肩上,廣泛了解、宏觀對比(藝電、頑皮狗)*界游戲名作優選方案與實際采用技術、工具,覆蓋手游、端游通用的游戲性系統、場景管理、人工智能、物理模擬、前臺技術等知識。
√ 涵蓋游戲開發技術方方面面:足夠細節以使初學者極易理解;巧妙平衡廣度與深度以幫助經驗豐富的游戲程序員。架構部分細致描述每個子系統的需求、相關技術及與其他子系統的關系。
√ 游戲音頻技術內容首度在書中出現,填補領域空白——大篇幅整章講述開發AAA游戲音頻引擎的物理、數學及技術首度曝光;動畫系統 、運行時游戲性基礎系統部分依舊出彩。
《游戲引擎架構》廣受歡迎,成為游戲引擎軟件開發理論和實踐的完整指南。第2版按當今游戲引擎架構發展趨勢更新大量內容,進一步完善對典型游戲引擎各主要模塊的講解,重點新內容包括:
更新了各個主題的信息,包括C++編程語言的*新版本C++11、第8代游戲機Xbox One 和PlayStation 4。
新增了音頻技術章節,包含AAA游戲音頻引擎所涉及的物理、數學和技術等方面的知識。
更新了多核編程、流水線CPU架構、優化、國際化、贗矢量、格拉斯曼代數、對偶四元數、SIMD矢量數學、內存對齊及抗鋸齒等章節。
深入介紹了頑皮狗*新熱作《*后生還者》的制作過程。
本書講解商業游戲引擎中各個子系統的理論基礎,并論述了實現這些子系統通常所需的數據結構、算法及軟件接口。本書聚焦在引擎本身,其中包括底層基礎系統、渲染引擎、碰撞系統、物理模擬、角色動畫及音頻。而在“游戲性基礎層”中深入探討游戲對象模型、*界編輯器、事件系統與腳本系統。書中還涉及一些游戲編程方面的技術,如玩家機制、攝像頭和人工智能。
《游戲引擎架構》(第2版)不僅可作為知識掃盲的工具,以及延伸學習的跳板,更能讓讀者扎實地理解游戲引擎中每個工程范疇中的理論與典型實踐。本書將助你走過游戲引擎架構那迷人、全方位的難忘之旅。
游戲引擎架構(第2版) 內容簡介
《游戲引擎架構》(第 2 版)涵蓋游戲引擎軟件開發的理論及實踐知識,并在第 1 版的基礎上對多個主題進行了更新。本書中討論的概念及技巧被實際應用于現實中的游戲工作室(如藝電及頑皮狗)。雖然書中采用的例子通常依托于一些專門的技術,但是討論范圍遠超某個引擎或API。另外,書中提供的參考文獻及引用也很好有價值,可讓讀者繼續深入游戲開發的任何特定方向。本書為大學程度的游戲編程課程而編寫,但也適合軟件工程師、游戲開發業余愛好者,以及游戲產業的從業人員閱讀。通過閱讀本書,資歷較淺的游戲工程師可以鞏固他們所學的游戲技術及引擎架構的知識,專注某一領域的程序員也能從本書全面的介紹中獲益。《游戲引擎架構》(第2版)不僅可作為知識掃盲的工具,以及延伸學習的跳板,更能讓讀者扎實地理解游戲引擎中每個工程范疇中的理論與典型實踐。本書將助你走過游戲引擎架構那迷人、多方面的難忘之旅。本書講解商業游戲引擎中各個子系統的理論基礎,并論述了實現這些子系統通常所需的數據結構、算法及軟件接口。本書聚焦在引擎本身,其中包括底層基礎系統、渲染引擎、碰撞系統、物理模擬、角色動畫及音頻。而在“游戲性基礎層”中深入探討游戲對象模型、世界編輯器、事件系統與腳本系統。書中還涉及一些游戲編程方面的技術,如玩家機制、攝像頭和人工智能。《游戲引擎架構》廣受歡迎,成為游戲引擎軟件開發理論和實踐的完整指南。第2版按當今游戲引擎架構發展趨勢更新大量內容,進一步完善對典型游戲引擎各主要模塊的講解,重點新內容包括:·更新了各個主題的信息,包括C++編程語言的近期新版本C++11、第8代游戲機Xbox One 和PlayStation 4。·新增了音頻技術章節,包含AAA游戲音頻引擎所涉及的物理、數學和技術等方面的知識。·更新了多核編程、流水線CPU架構、優化、靠前化、贗矢量、格拉斯曼代數、對偶四元數、SIMD矢量數學、內存對齊及抗鋸齒等章節。
游戲引擎架構(第2版) 目錄
第 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 其他工具 .......................................84
第 3 章 游戲軟件工程基礎 ..............................85
3.1 重溫 C++ 及*佳實踐 ...............................85
3.1.1 扼要重溫面向對象編程..............................85
3.1.2 編碼標準: 為什么及需要多少 ...........................91
3.1.3 C++11 ? ....................................92
3.2 C/C++ 的數據、代碼及內存 ............................99
3.2.1 數值表達形式 ..................................99
3.2.2 聲明、定義及鏈接規范 ..............................109
3.2.3 C/C++ 內存布局 ................................115
3.2.4 成員變量 ....................................119
3.2.5 對象的內存布局 .................................121
3.2.6 kilobyte 及 kibibyte ...............................129
3.3 捕捉及處理錯誤 ...................................129
3.3.1 錯誤類型 ....................................129
3.3.2 錯誤處理 ....................................130
3.3.3 實現錯誤檢測及處理 ...............................132
3.4 流水線、緩存及優化 .................................136
3.4.1 并行范式轉移 ..................................136
3.4.2 內存緩存 ....................................137
3.4.3 指令流水線及超純量 CPU ............................142
第 4 章 游戲所需的三維數學 .............................146
4.1 在二維中解決三維問題 ...............................146
4.2 點和矢量 .......................................146
4.2.1 點和笛卡兒坐標 .................................147
4.2.2 左手坐標系與右手坐標系的比較 .........................148
4.2.3 矢量 ......................................149
4.2.4 矢量運算 ....................................150
4.2.5 點和矢量的線性插值 ...............................160
4.3 矩陣 .........................................160
4.3.1 矩陣乘法 ....................................161
4.3.2 以矩陣表示點和矢量 ...............................162
4.3.3 單位矩陣 ....................................163
4.3.4 逆矩陣 .....................................163
4.3.5 轉置矩陣 ....................................163
4.3.6 齊次坐標 ....................................164
4.3.7 基礎變換矩陣 ..................................165
4.3.8 4 × 3 矩陣 ...................................168
4.3.9 坐標空間 ....................................168
4.3.10 基的變更....................................171
4.3.11 變換法矢量...................................175
4.3.12 在內存中存儲矩陣 ...............................175
4.4 四元數 ........................................177
4.4.1 把單位四元數視為三維旋轉............................178
4.4.2 四元數運算 ...................................178
4.4.3 以四元數旋轉矢量 ................................180
4.4.4 等價的四元數和矩陣 ...............................181
4.4.5 旋轉性的線性插值 ................................183
4.5 比較各種旋轉表達方式 ...............................185
4.5.1 歐拉角 .....................................185
4.5.2 3 × 3 矩陣 ...................................186
4.5.3 軸角 ......................................186
4.5.4 四元數 .....................................187
4.5.5 SQT 變換....................................187
4.5.6 對偶四元數 ...................................188
4.5.7 旋轉和自由度 ..................................188
4.6 其他數學對象 ....................................189
4.6.1 直線、光線及線段 ................................189
4.6.2 球體 ......................................190
4.6.3 平面 ......................................190
4.6.4 軸對齊包圍盒 ..................................192
4.6.5 定向包圍盒 ...................................193
4.6.6 平截頭體 ....................................193
4.6.7 凸多面體區域 ..................................194
4.7 硬件加速的 SIMD 運算 ...............................194
4.7.1 SSE 寄存器 ...................................195
4.7.2 __m128 數據類型 ................................196
4.7.3 用 SSE 內部函數編碼 ..............................197
4.7.4 用 SSE 實現矢量與矩陣的相乘 ..........................199
4.8 產生隨機數 .....................................203
4.8.1 線性同余產生器 .................................204
4.8.2 梅森旋轉 ....................................204
4.8.3 所有偽隨機數產生器之母及 Xorshift .......................205
第 II 部分 底層引擎系統
第 5 章 游戲支持系統 .................................209
5.1 子系統的啟動和終止 ................................209
5.1.1 C++ 的靜態初始化次序 (是不可用的) ......................209
5.1.2 行之有效的簡單方法 ...............................212
5.1.3 一些實際引擎的例子 ...............................214
5.2 內存管理 .......................................218
5.2.1 優化動態內存分配 ................................218
5.2.2 內存碎片 ....................................227
5.3 容器 .........................................231
5.3.1 容器操作 ....................................232
5.3.2 迭代器 .....................................233
5.3.3 算法復雜度 ...................................234
5.3.4 建立自定義的容器類 ...............................236
5.4 字符串 ........................................248
5.4.1 字符串的使用問題 ................................248
5.4.2 字符串類 ....................................249
5.4.3 唯一標識符 ...................................249
5.4.4 本地化 .....................................253
5.5 引擎配置 .......................................263
5.5.1 讀/寫選項....................................263
5.5.2 個別用戶選項 ..................................264
5.5.3 真實引擎中的配置管理..............................265
第 6 章 資源及文件系統 ................................270
6.1 文件系統 .......................................270
6.1.1 文件名和路徑 ..................................271
6.1.2 基本文件 I/O ..................................274
6.1.3 異步文件 I/O ..................................277
6.2 資源管理器 .....................................281
6.2.1 離線資源管理及工具鏈..............................281
6.2.2 運行時資源管理 .................................289
第 7 章 游戲循環及實時模擬 .............................305
7.1 渲染循環 .......................................305
7.2 游戲循環 .......................................306
7.2.1 簡單例子: 《乓》 .................................306
7.3 游戲循環的架構風格 ................................308
7.3.1 視窗消息泵 ...................................308
7.3.2 回調驅動框架 ..................................309
7.3.3 基于事件的更新 .................................311
7.4 抽象時間線 .....................................311
7.4.1 真實時間 ....................................311
7.4.2 游戲時間 ....................................311
7.4.3 局部及全局時間線 ................................312
7.5 測量及處理時間 ...................................313
7.5.1 幀率及時間增量 .................................313
7.5.2 從幀率到速率 ..................................314
7.5.3 使用高分辨率計時器測量實時時間 ........................317
7.5.4 時間單位和時鐘變量 ...............................318
7.5.5 應對斷點 ....................................321
7.5.6 一個簡單的時鐘類 ................................322
7.6 多處理器的游戲循環 ................................325
7.6.1 多處理器游戲機的架構..............................326
7.6.2 SIMD......................................331
7.6.3 分叉及匯合 ...................................331
7.6.4 每個子系統運行于獨立線程............................333
7.6.5 作業模型 ....................................334
7.6.6 異步程序設計 ..................................334
7.7 網絡多人游戲循環 ..................................337
7.7.1 主從式模型 ...................................337
7.7.2 點對點模型 ...................................339
7.7.3 案例分析: 《雷神之錘 II》.............................339
第 8 章 人體學接口設備 ................................342
8.1 各種人體學接口設備 ................................342
8.2 人體學接口設備的接口技術 .............................344
8.2.1 輪詢 ......................................344
8.2.2 中斷 ......................................344
8.2.3 無線設備 ....................................345
8.3 輸入類型 .......................................345
8.3.1 數字式按鈕 ...................................345
8.3.2 模擬式軸及按鈕 .................................347
8.3.3 相對性軸 ....................................348
8.3.4 加速計 .....................................348
8.3.5 以 Wii 遙控器或 DualShock 做三維定向 .....................349
8.3.6 攝像機 .....................................350
8.4 輸出類型 .......................................352
8.4.1 震動反饋 ....................................352
8.4.2 力反饋 .....................................353
8.4.3 音頻 ......................................353
8.4.4 其他輸入/輸出 .................................353
8.5 游戲引擎的人體學接口設備系統 ..........................353
8.5.1 典型需求 ....................................354
8.5.2 死區 ......................................354
8.5.3 模擬信號過濾 ..................................355
8.5.4 輸入事件檢測 ..................................357
8.5.5 為多位玩家管理多個 HID ............................364
8.5.6 跨平臺的 HID 系統 ...............................364
8.5.7 輸入的重新映射 .................................366
8.5.8 上下文相關控制 .................................367
8.5.9 禁用輸入 ....................................368
8.6 人體學接口設備使用實踐 ..............................368
第 9 章 調試及開發工具 ................................370
9.1 日志及跟蹤 .....................................370
9.1.1 使用 OutputDebugString() 做格式化輸出.....................371
9.1.2 冗長級別 ....................................372
9.1.3 頻道 ......................................373
9.1.4 把輸出同時抄寫至日志文件............................374
9.1.5 崩潰報告 ....................................374
9.2 調試用的繪圖功能 ..................................375
9.2.1 調試繪圖 API ..................................378
9.3 游戲內置菜單 ....................................382
9.4 游戲內置主控臺 ...................................385
9.5 調試用攝像機和游戲暫停 ..............................386
9.6 作弊 .........................................386
9.7 屏幕截圖及錄像 ...................................387
9.8 游戲內置性能剖析 ..................................387
9.8.1 層階式剖析 ...................................389
9.8.2 導出至 Excel ..................................394
9.9 游戲內置的內存統計和泄漏檢測 ..........................394
第 III 部分 圖形、運動與聲音
第 10 章 渲染引擎 ...................................401
10.1 采用深度緩沖的三角形光柵化基礎 ........................401
10.1.1 場景描述....................................403
10.1.2 描述表面的視覺性質 ..............................410
10.1.3 光照基礎....................................423
10.1.4 虛擬攝像機...................................432
10.2 渲染管道 ......................................442
10.2.1 渲染管道概覽 .................................443
10.2.2 工具階段....................................444
10.2.3 資產調節階段 .................................446
10.2.4 GPU 簡史 ...................................447
10.2.5 GPU 管道 ...................................448
10.2.6 可編程著色器 .................................452
10.2.7 抗鋸齒 ? ....................................456
10.2.8 應用程序階段 .................................459
10.3 高級光照及全局光照 ................................468
10.3.1 基于圖像的光照 ................................468
10.3.2 高動態范圍光照 ................................472
10.3.3 全局光照....................................473
10.3.4 延遲渲染....................................479
10.3.5 基于物理著色 ? .................................480
10.4 視覺效果和覆蓋層 .................................481
10.4.1 粒子效果....................................481
10.4.2 貼花 ......................................482
10.4.3 環境效果....................................483
10.4.4 覆蓋層.....................................486
10.4.5 伽馬校正....................................487
10.4.6 全屏后期處理效果 ...............................488
10.5 延伸閱讀 ......................................489
第 11 章 動畫系統 ...................................490
11.1 角色動畫的類型 ..................................490
11.1.1 賽璐璐動畫...................................490
11.1.2 剛性層階式動畫 ................................491
11.1.3 每頂點動畫及變形目標 .............................492
11.1.4 蒙皮動畫....................................493
11.1.5 把動畫方法視為數據壓縮技術 ..........................494
11.2 骨骼 .........................................495
11.2.1 骨骼層階結構 .................................496
11.2.2 在內存中表示骨骼 ...............................497
11.3 姿勢 .........................................498
11.3.1 綁定姿勢....................................498
11.3.2 局部姿勢....................................499
11.3.3 全局姿勢....................................501
11.4 動畫片段 ......................................502
11.4.1 局部時間線...................................503
11.4.2 全局時間線...................................506
11.4.3 比較局部和全局時鐘 ..............................508
11.4.4 簡單的動畫數據格式 ..............................511
11.4.5 連續的通道函數 ................................512
11.4.6 元通道.....................................513
11.5 蒙皮及生成矩陣調色板 ...............................514
11.5.1 每頂點的蒙皮信息 ...............................515
11.5.2 蒙皮涉及的數學知識 ..............................515
11.6 動畫混合 ......................................519
11.6.1 線性插值混合 .................................519
11.6.2 線性插值混合的應用 ..............................521
11.6.3 復雜的線性插值混合 ..............................526
11.6.4 骨骼分部混合 .................................529
11.6.5 加法混合....................................531
11.6.6 加法混合的應用 ................................533
11.7 后期處理 ......................................536
11.7.1 程序式動畫...................................536
11.7.2 逆運動學....................................537
11.7.3 布娃娃.....................................538
11.8 壓縮技術 ......................................538
11.8.1 通道省略....................................539
11.8.2 量化 ......................................539
11.8.3 采樣頻率及鍵省略 ...............................543
11.8.4 基于曲線的壓縮 ................................543
11.8.5 選擇性載入及串流 ...............................544
11.9 動畫系統架構 ....................................544
11.10 動畫管道 .....................................545
11.10.1 數據結構 ...................................546
11.10.2 扁平的加權平均混合表示法 ..........................549
11.10.3 混合樹 ....................................552
11.10.4 淡入/淡出架構 ................................555
11.10.5 動畫管道的優化 ................................557
11.11 動作狀態機 ....................................559
11.11.1 動畫狀態 ...................................559
11.11.2 過渡 .....................................565
11.11.3 狀態層 ....................................568
11.11.4 控制參數 ...................................570
11.11.5 約束 .....................................571
11.12 動畫控制器 ....................................579
第 12 章 碰撞及剛體動力學 ..............................580
12.1 你想在游戲中加入物理嗎 .............................580
12.1.1 物理系統可以做的事情 .............................581
12.1.2 物理好玩嗎...................................582
12.1.3 物理對游戲的影響 ...............................583
12.2 碰撞 / 物理中間件 ..................................585
12.2.1 I-Collide、SWIFT、V-Collide 及 RAPID ....................585
12.2.2 ODE .....................................585
12.2.3 Bullet .....................................586
12.2.4 TrueAxis ...................................586
12.2.5 PhysX.....................................586
12.2.6 Havok .....................................587
12.2.7 PAL......................................587
12.2.8 DMM .....................................587
12.3 碰撞檢測系統 ....................................588
12.3.1 可碰撞的實體 .................................588
12.3.2 碰撞/物理世界 .................................589
12.3.3 關于形狀的概念 ................................590
12.3.4 碰撞原型....................................592
12.3.5 碰撞測試及解析幾何 ..............................596
12.3.6 性能優化....................................604
12.3.7 碰撞查詢....................................606
12.3.8 碰撞過濾....................................610
12.4 剛體動力學 .....................................611
12.4.1 基礎 ......................................613
12.4.2 線性動力學...................................614
12.4.3 運動方程求解 .................................616
12.4.4 數值積分....................................618
12.4.5 二維旋轉動力學 ................................622
12.4.6 三維旋轉動力學 ................................625
12.4.7 碰撞響應....................................629
12.4.8 約束 ......................................636
12.4.9 控制剛體的運動 ................................640
12.4.10 碰撞/物理步 .................................641
12.5 將物理引擎整合至游戲 ...............................643
12.5.1 連接游戲對象和剛體 ..............................643
12.5.2 更新模擬....................................646
12.5.3 游戲中碰撞及物理的應用例子 ..........................649
12.6 展望 : 高級物理功能 ................................656
第 13 章 音頻 ? ......................................658
13.1 聲音的物理 .....................................658
13.1.1 聲波的屬性...................................659
13.1.2 感知響度及分貝 ................................660
13.1.3 聲波的傳播...................................663
13.1.4 位置的感知...................................668
13.2 聲音中的數學知識 .................................668
13.2.1 信號 ......................................669
13.2.2 處理信號....................................670
13.2.3 線性時不變系統 ................................671
13.2.4 LTI 系統的脈沖響應 ..............................672
13.2.5 頻域與傅里葉變換 ...............................677
13.3 聲音技術 ......................................685
13.3.1 模擬音頻技術 .................................685
13.3.2 數字音頻技術 .................................690
13.4 三維音頻渲染 ....................................696
13.4.1 三維聲音渲染概覽 ...............................697
13.4.2 為音頻世界建模 ................................698
13.4.3 基于距離的衰減 ................................698
13.4.4 偏移 ......................................700
13.4.5 傳播、混響及聲學................................705
13.4.6 多普勒頻移...................................712
13.5 音頻引擎架構 ....................................712
13.5.1 音頻處理管道 .................................714
13.5.2 概念及術語...................................714
13.5.3 音總線.....................................715
13.5.4 主控混音器...................................718
13.5.5 主控輸出總線 .................................719
13.5.6 實現總線....................................720
13.5.7 資產管理....................................722
13.5.8 對游戲混音...................................724
13.5.9 音頻引擎調查 .................................727
13.6 游戲專用的音頻功能 ................................730
13.6.1 支持切割屏...................................731
13.6.2 角色對話....................................732
13.6.3 音樂 ......................................744
第 IV 部分 游 戲 性
第 14 章 游戲性系統簡介 ...............................747
14.1 剖析游戲世界 ....................................748
14.1.1 世界元素....................................748
14.1.2 世界組塊....................................750
14.1.3 高級游戲流程 .................................751
14.2 實現動態元素 : 游戲對象 ..............................752
14.2.1 游戲對象模型 .................................753
14.2.2 工具方的設計和運行時的設計 ..........................754
14.3 數據驅動游戲引擎 .................................754
14.4 游戲世界編輯器 ..................................755
14.4.1 游戲世界編輯器的典型功能 ...........................758
14.4.2 集成的資產管理工具 ..............................763
第 15 章 運行時游戲性基礎系統 ...........................766
15.1 游戲性基礎系統的組件 ...............................766
15.2 各種運行時對象模型架構 .............................768
15.2.1 以對象為中心的各種架構 ............................769
15.2.2 以屬性為中心的各種架構 ............................781
15.3 世界組塊的數據格式 ................................785
15.3.1 二進制對象映像 ................................786
15.3.2 序列化游戲對象描述 ..............................786
15.3.3 生成器及類型架構 ...............................788
15.4 游戲世界的加載和串流 ...............................792
15.4.1 簡單的關卡加載 ................................792
15.4.2 向無縫加載進發: 阻隔室 ............................792
15.4.3 游戲世界的串流 ................................794
15.4.4 對象生成的內存管理 ..............................796
15.4.5 游戲存檔....................................798
15.5 對象引用與世界查詢 ................................799
15.5.1 指針 ......................................799
15.5.2 智能指針....................................800
15.5.3 句柄 ......................................802
15.5.4 游戲對象查詢 .................................804
15.6 實時更新游戲對象 .................................806
15.6.1 一個簡單 (但不可行) 的方式...........................807
15.6.2 性能限制及批次式更新 .............................809
15.6.3 對象及子系統的相互依賴 ............................811
15.6.4 為并行設計...................................819
15.7 事件與消息泵 ....................................821
15.7.1 靜態類型的函數綁定帶來的問題 .........................821
15.7.2 把事件封裝成對象 ...............................822
15.7.3 事件類型....................................823
15.7.4 事件參數....................................824
15.7.5 事件處理器...................................826
15.7.6 取出事件參數 .................................827
15.7.7 職責鏈.....................................827
15.7.8 登記對事件的關注 ...............................829
15.7.9 要排隊還是不要排隊 ..............................830
15.7.10 即時傳遞事件帶來的問題............................835
15.7.11 數據驅動事件/消息傳遞系統 ..........................836
15.8 腳本 .........................................839
15.8.1 運行時與數據定義的對比 ............................839
15.8.2 編程語言特性 .................................839
15.8.3 一些常見的游戲腳本語言 ............................841
15.8.4 腳本所需的架構 ................................846
15.8.5 運行時游戲腳本語言的功能 ...........................847
15.9 高層次的游戲流程 .................................858
第 V 部分 總 結
第 16 章 還有更多內容嗎 ...............................863
16.1 一些未談及的引擎系統 ...............................863
16.1.1 影片播放器...................................863
16.1.2 多人網絡....................................864
16.2 游戲性系統 .....................................864
16.2.1 玩家機制....................................864
16.2.2 攝像機.....................................864
16.2.3 人工智能....................................865
16.2.4 其他游戲性系統 ................................866
參考文獻 ..........................................867
中文索引 ..........................................871
英文索引 ..........................................900
展開全部
游戲引擎架構(第2版) 作者簡介
[美]杰森·格雷戈瑞(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年加入騰訊互動娛樂引擎技術中心擔任專家工程師,所研發的技術已用于《斗戰神》、《天涯明月刀》、《眾神爭霸》等項目中。