游戲引擎架構(gòu)(第2版)
鏈接:https://pan.baidu.com/s/1pTNvYha0V3Sivyn1axLwKQ?pwd=29k4?
提取碼:29k4

編輯推薦
適讀人群 :本書為大學(xué)程度的游戲編程課程而編寫,但也適合軟件工程師、游戲開發(fā)業(yè)余愛好者,以及游戲產(chǎn)業(yè)的從業(yè)人員閱讀。通過閱讀本書,資歷較淺的游戲工程師可以鞏固他們所學(xué)的游戲技術(shù)及引擎架構(gòu)的知識(shí),專注某一領(lǐng)域的程序員也能從本書更為全面的介紹中獲益。
√ 引擎為游戲科技之大成,而通用游戲引擎經(jīng)常無法通用,需要因項(xiàng)目而改造、整合、擴(kuò)展及優(yōu)化,因此必須理解其架構(gòu)、機(jī)制和技術(shù) ,才能分析及解決游戲制作中的問題(本書譯者在騰訊游戲即擔(dān)此重任)。
√ 站在*界級(jí)專家的肩上,廣泛了解、宏觀對(duì)比(藝電、頑皮狗)*界游戲名作優(yōu)選方案與實(shí)際采用技術(shù)、工具,覆蓋手游、端游通用的游戲性系統(tǒng)、場(chǎng)景管理、人工智能、物理模擬、前臺(tái)技術(shù)等知識(shí)。
√ 涵蓋游戲開發(fā)技術(shù)方方面面:足夠細(xì)節(jié)以使初學(xué)者極易理解;巧妙平衡廣度與深度以幫助經(jīng)驗(yàn)豐富的游戲程序員。架構(gòu)部分細(xì)致描述每個(gè)子系統(tǒng)的需求、相關(guān)技術(shù)及與其他子系統(tǒng)的關(guān)系。
√ 游戲音頻技術(shù)內(nèi)容首度在書中出現(xiàn),填補(bǔ)領(lǐng)域空白——大篇幅整章講述開發(fā)AAA游戲音頻引擎的物理、數(shù)學(xué)及技術(shù)首度曝光;動(dòng)畫系統(tǒng) 、運(yùn)行時(shí)游戲性基礎(chǔ)系統(tǒng)部分依舊出彩。
《游戲引擎架構(gòu)》廣受歡迎,成為游戲引擎軟件開發(fā)理論和實(shí)踐的完整指南。第2版按當(dāng)今游戲引擎架構(gòu)發(fā)展趨勢(shì)更新大量?jī)?nèi)容,進(jìn)一步完善對(duì)典型游戲引擎各主要模塊的講解,重點(diǎn)新內(nèi)容包括:
?更新了各個(gè)主題的信息,包括C++編程語言的*新版本C++11、第8代游戲機(jī)Xbox One 和PlayStation 4。
?新增了音頻技術(shù)章節(jié),包含AAA游戲音頻引擎所涉及的物理、數(shù)學(xué)和技術(shù)等方面的知識(shí)。
?更新了多核編程、流水線CPU架構(gòu)、優(yōu)化、國(guó)際化、贗矢量、格拉斯曼代數(shù)、對(duì)偶四元數(shù)、SIMD矢量數(shù)學(xué)、內(nèi)存對(duì)齊及抗鋸齒等章節(jié)。
?深入介紹了頑皮狗*新熱作《*后生還者》的制作過程。
本書講解商業(yè)游戲引擎中各個(gè)子系統(tǒng)的理論基礎(chǔ),并論述了實(shí)現(xiàn)這些子系統(tǒng)通常所需的數(shù)據(jù)結(jié)構(gòu)、算法及軟件接口。本書聚焦在引擎本身,其中包括底層基礎(chǔ)系統(tǒng)、渲染引擎、碰撞系統(tǒng)、物理模擬、角色動(dòng)畫及音頻。而在“游戲性基礎(chǔ)層”中深入探討游戲?qū)ο竽P汀?界編輯器、事件系統(tǒng)與腳本系統(tǒng)。書中還涉及一些游戲編程方面的技術(shù),如玩家機(jī)制、攝像頭和人工智能。
《游戲引擎架構(gòu)》(第2版)不僅可作為知識(shí)掃盲的工具,以及延伸學(xué)習(xí)的跳板,更能讓讀者扎實(shí)地理解游戲引擎中每個(gè)工程范疇中的理論與典型實(shí)踐。本書將助你走過游戲引擎架構(gòu)那迷人、全方位的難忘之旅。
內(nèi)容簡(jiǎn)介
《游戲引擎架構(gòu)》(第 2 版)涵蓋游戲引擎軟件開發(fā)的理論及實(shí)踐知識(shí),并在第 1 版的基礎(chǔ)上對(duì)多個(gè)主題進(jìn)行了更新。本書中討論的概念及技巧被實(shí)際應(yīng)用于現(xiàn)實(shí)中的游戲工作室(如藝電及頑皮狗)。雖然書中采用的例子通常依托于一些專門的技術(shù),但是討論范圍遠(yuǎn)超某個(gè)引擎或API。另外,書中提供的參考文獻(xiàn)及引用也非常有價(jià)值,可讓讀者繼續(xù)深入游戲開發(fā)的任何特定方向。本書為大學(xué)程度的游戲編程課程而編寫,但也適合軟件工程師、游戲開發(fā)業(yè)余愛好者,以及游戲產(chǎn)業(yè)的從業(yè)人員閱讀。通過閱讀本書,資歷較淺的游戲工程師可以鞏固他們所學(xué)的游戲技術(shù)及引擎架構(gòu)的知識(shí),專注某一領(lǐng)域的程序員也能從本書全面的介紹中獲益?!队螒蛞婕軜?gòu)》(第2版)不僅可作為知識(shí)掃盲的工具,以及延伸學(xué)習(xí)的跳板,更能讓讀者扎實(shí)地理解游戲引擎中每個(gè)工程范疇中的理論與典型實(shí)踐。本書將助你走過游戲引擎架構(gòu)那迷人、全方位的難忘之旅。本書講解商業(yè)游戲引擎中各個(gè)子系統(tǒng)的理論基礎(chǔ),并論述了實(shí)現(xiàn)這些子系統(tǒng)通常所需的數(shù)據(jù)結(jié)構(gòu)、算法及軟件接口。本書聚焦在引擎本身,其中包括底層基礎(chǔ)系統(tǒng)、渲染引擎、碰撞系統(tǒng)、物理模擬、角色動(dòng)畫及音頻。而在“游戲性基礎(chǔ)層”中深入探討游戲?qū)ο竽P?、世界編輯器、事件系統(tǒng)與腳本系統(tǒng)。書中還涉及一些游戲編程方面的技術(shù),如玩家機(jī)制、攝像頭和人工智能?!队螒蛞婕軜?gòu)》廣受歡迎,成為游戲引擎軟件開發(fā)理論和實(shí)踐的完整指南。第2版按當(dāng)今游戲引擎架構(gòu)發(fā)展趨勢(shì)更新大量?jī)?nèi)容,進(jìn)一步完善對(duì)典型游戲引擎各主要模塊的講解,重點(diǎn)新內(nèi)容包括:?更新了各個(gè)主題的信息,包括C++編程語言的*新版本C++11、第8代游戲機(jī)Xbox One 和PlayStation 4。?新增了音頻技術(shù)章節(jié),包含AAA游戲音頻引擎所涉及的物理、數(shù)學(xué)和技術(shù)等方面的知識(shí)。?更新了多核編程、流水線CPU架構(gòu)、優(yōu)化、國(guó)際化、贗矢量、格拉斯曼代數(shù)、對(duì)偶四元數(shù)、SIMD矢量數(shù)學(xué)、內(nèi)存對(duì)齊及抗鋸齒等章節(jié)。
作者簡(jiǎn)介
Jason Gregory,在1994年開始任職專業(yè)軟件工程師,自1999年3月開始在游戲產(chǎn)業(yè)中任職軟件工程師。在圣迭哥Midway Home Entertainment公司開始游戲編程的他,為《瘋狂飛行員(Freaky Flyers)》及《Crank the Weasel》開發(fā)PlayStation 2/Xbox上的動(dòng)畫系統(tǒng)。在2003年,他轉(zhuǎn)到洛杉磯藝電,為《榮譽(yù)勛章:血戰(zhàn)太平洋(Medal of Honor: Pacific Assault)》開發(fā)游戲引擎及游戲性技術(shù),并在《榮譽(yù)勛章:空降神兵(Medal of Honor: Airborne)》中擔(dān)任首席工程師。他現(xiàn)時(shí)是頑皮狗公司的通才程序員,為《神秘海域:德雷克船長(zhǎng)的寶藏(Uncharted: Drake's Fortune)》及《神秘海域:縱橫四海(Uncharted: Among Thieves)》開發(fā)引擎及游戲性軟件。他也在南加州大學(xué)教授游戲技術(shù)的課程。
譯者簡(jiǎn)介
葉勁峰(Milo Yip),從小自習(xí)編程,并愛好計(jì)算機(jī)圖形學(xué)。上中學(xué)時(shí)兼職開發(fā)策略RPG《王子傳奇》,該游戲在1995年于臺(tái)灣發(fā)行。其后他獲取了香港大學(xué)認(rèn)知科學(xué)學(xué)士、香港中文大學(xué)系統(tǒng)工程及工程管理哲學(xué)碩士。畢業(yè)后在香港理工大學(xué)設(shè)計(jì)學(xué)院從事游戲引擎及相關(guān)技術(shù)的研發(fā),職至項(xiàng)目主任。除發(fā)表學(xué)術(shù)文章外,也曾合著《DirectX9游戲編程實(shí)務(wù)》。2008年往上海育碧擔(dān)任引擎工程師開發(fā)《美食從天而降(Cloudy with a Chance of Meatballs)》Xbox360/PS3/Wii/PC,2009年起于麻辣馬開發(fā)《愛麗絲:瘋狂回歸(Alice: Madness Returns)》Xbox360/PS3/PC,2011年加入騰訊互動(dòng)娛樂引擎技術(shù)中心擔(dān)任專家工程師,所研發(fā)的技術(shù)已用于《斗戰(zhàn)神》、《天涯明月刀》、《眾神爭(zhēng)霸》等項(xiàng)目中。
目錄
第 2 版序言 .........................................xxxiii
第 1 版序言 .........................................xxxv
第 2 版前言 .........................................xxxvii
第 1 版前言 .........................................xxxviii
致謝 .............................................xl
第 I 部分 基 礎(chǔ)
第 1 章 導(dǎo)論 .......................................3
1.1 典型游戲團(tuán)隊(duì)的結(jié)構(gòu) ................................4
1.1.1 工程師 .....................................5
1.1.2 藝術(shù)家 .....................................5
1.1.3 游戲設(shè)計(jì)師 ...................................6
1.1.4 制作人 .....................................7
1.1.5 其他工作人員 ..................................7
1.1.6 發(fā)行商及工作室 .................................7
1.2 游戲是什么 .....................................8
1.2.1 電子游戲作為軟實(shí)時(shí)模擬.............................8
1.3 游戲引擎是什么 ...................................10
1.4 不同游戲類型的引擎差異 ..............................11
1.4.1 第一人稱射擊游戲 ................................12
1.4.2 平臺(tái)及其他第三人稱游戲.............................13
1.4.3 格斗游戲 ....................................15
1.4.4 競(jìng)速游戲 ....................................17
1.4.5 實(shí)時(shí)策略游戲 ..................................18
1.4.6 大型多人在線游戲 ................................20
1.4.7 玩家創(chuàng)作內(nèi)容 ? ..................................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 其他商業(yè)引擎 .................................29
1.5.11 專有內(nèi)部引擎 .................................29
1.5.12 開源引擎....................................29
1.6 運(yùn)行時(shí)引擎架構(gòu) ...................................30
1.6.1 目標(biāo)硬件 ....................................32
1.6.2 設(shè)備驅(qū)動(dòng)程序 ..................................32
1.6.3 操作系統(tǒng) ....................................32
1.6.4 第三方軟件開發(fā)包和中間件............................33
1.6.5 平臺(tái)獨(dú)立層 ...................................36
1.6.6 核心系統(tǒng) ....................................36
1.6.7 資源管理器 ...................................37
1.6.8 渲染引擎 ....................................37
1.6.9 剖析和調(diào)試工具 .................................41
1.6.10 碰撞和物理...................................42
1.6.11 動(dòng)畫 ......................................43
1.6.12 人體學(xué)接口設(shè)備 ................................44
1.6.13 音頻 ......................................45
1.6.14 在線多人/網(wǎng)絡(luò)游戲 ...............................46
1.6.15 游戲性基礎(chǔ)系統(tǒng) ................................47
1.6.16 個(gè)別游戲?qū)S米酉到y(tǒng) ..............................50
1.7 工具及資產(chǎn)管道 ...................................50
1.7.1 數(shù)字內(nèi)容創(chuàng)作工具 ................................50
1.7.2 資產(chǎn)調(diào)節(jié)管道 ..................................52
1.7.3 世界編輯器 ...................................54
1.7.4 資源數(shù)據(jù)庫(kù) ? ...................................55
1.7.5 一些構(gòu)建工具的方法 ...............................55
第 2 章 專業(yè)工具 ....................................58
2.1 版本控制 .......................................58
2.1.1 為何使用版本控制 ................................58
2.1.2 常見的版本控制系統(tǒng) ...............................59
2.1.3 Subversion 和 TortoiseSVN 概覽 .........................60
2.1.4 在 Google 上設(shè)置代碼版本庫(kù)...........................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 程序庫(kù)、可執(zhí)行文件及動(dòng)態(tài)鏈接庫(kù).........................67
2.2.3 項(xiàng)目及解決方案 .................................68
2.2.4 生成配置 ....................................69
2.2.5 調(diào)試代碼 ....................................75
2.3 剖析工具 .......................................81
2.3.1 剖析器列表 ...................................83
2.4 內(nèi)存泄漏和損壞檢測(cè) ................................83
2.5 其他工具
查看全部↓
精彩書摘
序言
游戲及計(jì)算機(jī)是緊緊相連的。從第一款數(shù)字電腦游戲的出現(xiàn)——1962年的Spacewar,到今天最先進(jìn)的游戲系統(tǒng),通過計(jì)算機(jī)的邏輯及數(shù)學(xué)本質(zhì),使得游戲中的各個(gè)程序方面得以完美結(jié)合。數(shù)字游戲向我們展示出一個(gè)未來世界,系統(tǒng)思想、互動(dòng)及編程基礎(chǔ)將帶來人類發(fā)明、發(fā)現(xiàn)及想象的新紀(jì)元。這個(gè)未來是復(fù)雜的——所有人都需要好的指南。
開門見山: 本人認(rèn)為,本書是同類書籍中最好的,你找到它是一種幸運(yùn)。本書以簡(jiǎn)明、清楚的方式覆蓋游戲引擎架構(gòu)這個(gè)龐大領(lǐng)域,并巧妙地平衡了此領(lǐng)域的廣度與深度,它提供了足夠的細(xì)節(jié),即使初學(xué)者也能很容易地理解其中的各種概念。而作者Jason Gregory不單是該領(lǐng)域的世界級(jí)專家,他還是一位在職程序員,富有成品品質(zhì)的知識(shí),并參與過許多已發(fā)行的游戲項(xiàng)目。他與頑皮狗的游戲工程師一起工作,頑皮狗是世界一流的游戲制作工作室之一。制作了多款被廣泛認(rèn)為是史上最佳的游戲。除此以外,他還是有著豐富經(jīng)驗(yàn)的教育家,曾在北美排名靠前的大學(xué)教授游戲開發(fā)課程。
為什么你應(yīng)該相信我,因?yàn)槟阏诳吹氖且活w罕有的“寶石”,這本書將會(huì)成為你的游戲開發(fā)參考藏書的重要成員。以下我將盡力加強(qiáng)你對(duì)我這一主張的信心。
成年以后,我一直以專業(yè)游戲設(shè)計(jì)師為業(yè)。其中大部分時(shí)間,我在頑皮狗以首席游戲設(shè)計(jì)師身份工作,而頑皮狗是索尼旗下的工作室——對(duì),就是那個(gè)創(chuàng)造了Crash Bandicoot及Jak and Daxter系統(tǒng)游戲的那個(gè)工作室。首次認(rèn)識(shí)Jason Gregory 在頑皮狗,現(xiàn)在我認(rèn)識(shí)他已很長(zhǎng)時(shí)間了,在頑皮狗,他與我榮幸地參與了全部三集叫好又叫座的《神秘海域》(Uncharted)系列游戲。Jason還繼續(xù)參與了頑皮狗的下一個(gè)極其成功的講故事動(dòng)作游戲《最后生還者》(The Last of Us)。
我的游戲設(shè)計(jì)師生涯始于英國(guó)的MicroProse公司,在加入頑皮狗之前,我在Crystal Dynamics工作,參與制作了Gex和Legacy of Kain: Soul Reaver等游戲系列。在頑皮狗工作的8個(gè)奇妙年頭中,我學(xué)到了非常多的東西,現(xiàn)在成了南加州大學(xué)戲劇藝術(shù)學(xué)院互動(dòng)媒體及游戲部門的老師。我教授南加州大學(xué)的游戲課程,并在該校的游戲創(chuàng)新實(shí)驗(yàn)室設(shè)計(jì)游戲。南加州大學(xué)與頑皮狗工作室有著緊密的聯(lián)系,Jason也在南加州大學(xué)的Viterbi工程學(xué)院教授游戲課程中的編程課。
當(dāng)我初識(shí)Jason時(shí),他剛從我們附近的藝電轉(zhuǎn)到頑皮狗來,他任職于藝電時(shí)有許多非常優(yōu)秀的工作成果,包括高技術(shù)水平及藝術(shù)驅(qū)動(dòng)的游戲動(dòng)畫方面的工作成果。我們兩人幾乎能即時(shí)合拍工作。他承擔(dān)了許多復(fù)雜的任務(wù),其中之一是協(xié)助開發(fā)腳本語言及其專門的編輯環(huán)境,這讓我的游戲設(shè)計(jì)師前輩與我能把各種美術(shù)資源、動(dòng)畫、音頻、視覺特效及代碼連接在一起,成為可以震撼《神秘海域》玩家的章節(jié)。所以我有第一手經(jīng)驗(yàn),知道Jason如何把復(fù)雜的概念變得清晰。他有一套參與開發(fā)的工具,是我平生用過的最好的工具;而且,通過與他一起工作,我知道他把同樣強(qiáng)大的技術(shù)與清晰的溝通能力帶進(jìn)了專業(yè)生涯中的每一款游戲系統(tǒng)里,以及本著作。
當(dāng)代的視頻游戲開發(fā)是一門大學(xué)科。從設(shè)計(jì)到開發(fā),從AAA1到獨(dú)立游戲,從渲染、碰撞到工具編程,要做一個(gè)游戲,需要很多交叉的系統(tǒng)及技巧。說起我們現(xiàn)有的游戲制作工具,其功能與復(fù)雜度是不匹配的,本書中的許多詳細(xì)代碼示例及實(shí)現(xiàn)示例能幫助讀者讀取并理解這些碎片是如何拼湊成一個(gè)好游戲的。通過這種方式幫助讀者,Jason的書也許能令你超越史上最好的游戲設(shè)計(jì)師及實(shí)現(xiàn)開發(fā)者做過的最大膽的夢(mèng)。
本書提供了一個(gè)概覽,但它不僅停留在知識(shí)表面,還挖掘至足夠深度,令我們有機(jī)會(huì)理每個(gè)所提及的題目。我的好友Ian Dallas (Giant Sparrow的創(chuàng)意總監(jiān)、The Un?nished Swan的創(chuàng)作者)曾手按本書,以他帶有豐富感情色彩的語言發(fā)誓:這本書給了我們一個(gè)機(jī)會(huì)去“吃大象的一塊”——用這包含巨大學(xué)問的“大局觀”作為開始,不然我們難以踏出第一步去理解這么廣闊的題目。
現(xiàn)在也是接觸游戲軟件工程的好時(shí)機(jī)。全世界都有學(xué)校提供高質(zhì)量的課程,由經(jīng)驗(yàn)豐富的游戲創(chuàng)作者教授各種技術(shù)及藝術(shù)方面的技能。游戲也正在進(jìn)入難以想象的復(fù)興時(shí)期,受獨(dú)立游戲及藝術(shù)游戲的一些影響,它為我們的世界帶來了新聲音及新角度,這些都同時(shí)加強(qiáng)了主流計(jì)算機(jī)、游戲機(jī)及移動(dòng)端游戲非常健康及創(chuàng)新的發(fā)展。
讓我們迎著眾多扣人心弦、未知的數(shù)字游戲未來而行,此領(lǐng)域?qū)蕵?、藝術(shù)及商業(yè)來說,只會(huì)變得越來越有趣,對(duì)文化越來越有影響力,也越來越具創(chuàng)新性。沒有比這本書更好的跳板,或是比Jason Gregory更好、更明智的向?qū)?,讓它和他引領(lǐng)我們開始這個(gè)迷人的游戲開發(fā)世界終身學(xué)習(xí)之旅吧!
Richard Lemarchand
2013 年11 月14 日
查看全部↓
前言/序言
推薦序 1
最初拿到 Game Engine Architecture 一書的英文版 , 是電子工業(yè)出版社博文視點(diǎn)公司的編輯俠少郵寄給我的打印版。他建議我接下翻譯此書的重任。當(dāng)時(shí)我正在杭州帶領(lǐng)一個(gè)團(tuán)隊(duì)開發(fā) 3D 游戲引擎 , 我和我的同事都對(duì)這本書的內(nèi)容頗有興趣 , 兩大本打印的英文書稿立刻在同事間傳開??上嵌螘r(shí)間個(gè)人精力實(shí)在有限 , 精讀近千頁(yè)的英文讀物后再將其翻譯成中文對(duì)個(gè)人的業(yè)余時(shí)間來說是一個(gè)極大的挑戰(zhàn) , 不能擔(dān)此翻譯任務(wù)頗為遺憾。
不久以后聽說 Milo Yip ( 葉勁峰 ) 已開始著手翻譯 , 甚為欣喜。翻譯此巨著 , 他一定是比我更合適的人選。我和 Milo 雖未曾謀面 , 但神交已久 , 在網(wǎng)絡(luò)上讀過一些他的成長(zhǎng)經(jīng)歷 , 和我頗為相似 , 心有戚戚。他對(duì)游戲 3D 實(shí)時(shí)渲染技術(shù)研究精深為我所不及 , 我們?cè)ㄟ^ Google Talk 討論過許多技術(shù)問題 , 他都有獨(dú)到的見解。 Milo 是香港人 , 英文技術(shù)術(shù)語在香港的中文譯法和內(nèi)地有許多不同 , 但此書由內(nèi)地出版社出版 , 考慮到面對(duì)的讀者主要是內(nèi)地程序員 , Milo 希望能更符合內(nèi)地程序員的用詞習(xí)慣 , 所以在翻譯開始時(shí)就通過 Google Docs 創(chuàng)建了協(xié)作頁(yè)面 , 邀請(qǐng)大家共同探討書中技術(shù)術(shù)語的中文譯法。從中我們可以一窺他作為譯者的慎重。
三年之后 , 有幸在出版之前就拿到了完整的譯本。這是一本用 LATEX 精心排版的 1000 多頁(yè)的電子書 , 我只花了一周時(shí)間 , 幾乎是一口氣讀完。流暢的閱讀享受 , 絕對(duì)不僅僅是因?yàn)樵实膬?nèi)容 , 精美的版面和翔實(shí)的譯注也加分不少。