溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

游戲引擎架構(gòu)

發(fā)布時(shí)間:2020-07-30 21:07:12 來源:網(wǎng)絡(luò) 閱讀:259 作者:博文視點(diǎn) 欄目:開發(fā)技術(shù)

游戲引擎架構(gòu)

游戲引擎架構(gòu)

宣傳語(yǔ):邁向現(xiàn)代游戲之路完美入口 業(yè)界萬(wàn)眾企盼 隆重推薦

作者:【美】Jason Gregory(杰森.格雷戈瑞) 著

譯者:葉勁峰 譯

ISBN: 978-7-121-22288-7

出版時(shí)間:2014年1月出版

定價(jià):128.00元

頁(yè)數(shù):800頁(yè)

開本:16開


編輯推薦

《游戲引擎架構(gòu)》由游戲界傳奇人物云風(fēng)及“天天愛消除”團(tuán)隊(duì)傾情作序推薦,既是游戲工作者必讀Bible,對(duì)其他IT從業(yè)者也不無(wú)裨益。

內(nèi)容包括:

- 游戲開發(fā)中的大規(guī)模C++軟件架構(gòu)

- 游戲編程所需的數(shù)學(xué)

- 供調(diào)試、源代碼控制及性能剖析的游戲開發(fā)工具

- 引擎基礎(chǔ)系統(tǒng)、渲染、碰撞、物理、角色動(dòng)畫、游戲世界對(duì)象模型等引擎子系統(tǒng)

- 多平臺(tái)游戲引擎

- 多處理器環(huán)境下的游戲編程

- 工作管道及游戲資產(chǎn)數(shù)據(jù)庫(kù)


內(nèi)容提要

《游戲引擎架構(gòu)》同時(shí)涵蓋游戲引擎軟件開發(fā)的理論及實(shí)踐,并對(duì)多方面的題目進(jìn)行探討。本書討論到的概念及技巧實(shí)際應(yīng)用于現(xiàn)實(shí)中的游戲工作室,如藝電及頑皮狗。雖然書中采用的例子通常依據(jù)一些專門的技術(shù),但是討論范圍遠(yuǎn)超于某個(gè)引擎或API。文中的參考及引用也非常有用,可讓讀者繼續(xù)深入游戲開發(fā)過程的任何特定方向。

《游戲引擎架構(gòu)》為一個(gè)大學(xué)程度的游戲編程課程而編寫,但也適合軟件工程師、業(yè)余愛好者、自學(xué)游戲程序員,以及游戲產(chǎn)業(yè)的從業(yè)人員。通過閱讀《游戲引擎架構(gòu)》,資歷較淺的游戲工程師可以鞏固他們所學(xué)的游戲技術(shù)及引擎架構(gòu)的知識(shí),專注某一領(lǐng)域的資深程序員也能從本書更為全面的介紹中獲益。


目錄

推薦序1 iii

推薦序2 v

譯序         vii

序言         xvii

前言         xix

致謝         xxi

第一部分  基礎(chǔ)     1

第1章  導(dǎo)論          3

1.1 典型游戲團(tuán)隊(duì)的結(jié)構(gòu)      4

1.2 游戲是什么      7

1.3 游戲引擎是什么      10

1.4 不同游戲類型中的引擎差異 11

1.5 游戲引擎概觀 22

1.6 運(yùn)行時(shí)引擎架構(gòu)      27

1.7 工具及資產(chǎn)管道      46

第2章  專業(yè)工具          53

2.1 版本控制 53

2.2 微軟Visual Studio    61

2.3 剖析工具 78

2.4 內(nèi)存泄漏和損壞檢測(cè)      79

2.5 其他工具 80

第3章  游戲軟件工程基礎(chǔ)          83

3.1 重溫C++及最佳實(shí)踐       83

3.2 C/C++的數(shù)據(jù)、代碼及內(nèi)存     90

3.3 捕捉及處理錯(cuò)誤      118

第4章  游戲所需的三維數(shù)學(xué)     125

4.1 在二維中解決三維問題 125

4.2 點(diǎn)和矢量 125

4.3 矩陣 139

4.4 四元數(shù)      156

4.5 比較各種旋轉(zhuǎn)表達(dá)方式 164

4.6 其他數(shù)學(xué)對(duì)象 168

4.7 硬件加速的SIMD運(yùn)算   173

4.8 產(chǎn)生隨機(jī)數(shù)      180

第二部分  低階引擎系統(tǒng)     183

第5章  游戲支持系統(tǒng)          185

5.1 子系統(tǒng)的啟動(dòng)和終止      185

5.2 內(nèi)存管理 193

5.3 容器 208

5.4 字符串      225

5.5 引擎配置 234

第6章  資源及文件系統(tǒng)     241

6.1 文件系統(tǒng) 241

6.2 資源管理器      251

第7章  游戲循環(huán)及實(shí)時(shí)模擬     277

7.1 渲染循環(huán) 277

7.2 游戲循環(huán) 278

7.3 游戲循環(huán)的架構(gòu)風(fēng)格      280

7.4 抽象時(shí)間線      283

7.5 測(cè)量及處理時(shí)間      285

7.6 多處理器的游戲循環(huán)      296

7.7 網(wǎng)絡(luò)多人游戲循環(huán) 304

第8章  人體學(xué)接口設(shè)備(HID)       309

8.1 各種人體學(xué)接口設(shè)備      309

8.2 人體學(xué)接口設(shè)備的接口技術(shù) 311

8.3 輸入類型 312

8.4 輸出類型 316

8.5 游戲引擎的人體學(xué)接口設(shè)備系統(tǒng) 318

8.6 人體學(xué)接口設(shè)備使用實(shí)踐      332

第9章  調(diào)試及開發(fā)工具     333

9.1 日志及跟蹤      333

9.2 調(diào)試用的繪圖功能 337

9.3 游戲內(nèi)置菜單 344

9.4 游戲內(nèi)置主控臺(tái)      347

9.5 調(diào)試用攝像機(jī)和游戲暫停      348

9.6 作弊 348

9.7 屏幕截圖及錄像      349

9.8 游戲內(nèi)置性能剖析 349

9.9 游戲內(nèi)置的內(nèi)存統(tǒng)計(jì)和泄漏檢測(cè) 356

第三部分  圖形及動(dòng)畫         359

第10章  渲染引擎       361

10.1 采用深度緩沖的三角形光柵化基礎(chǔ)   361

10.2 渲染管道        404

10.3 高級(jí)光照及全局光照   426

10.4 視覺效果和覆蓋層        438

10.5 延伸閱讀        446

第11章  動(dòng)畫系統(tǒng)       447

11.1 角色動(dòng)畫的類型   447

11.2 骨骼        452

11.3 姿勢(shì)        454

11.4 動(dòng)畫片段        459

11.5 蒙皮及生成矩陣調(diào)色板        471

11.6 動(dòng)畫混合        476

11.7 后期處理        493

11.8 壓縮技術(shù)        496

11.9 動(dòng)畫系統(tǒng)架構(gòu)        501

11.10 動(dòng)畫管道      502

11.11 動(dòng)作狀態(tài)機(jī) 515

11.12 動(dòng)畫控制器 535

第12章  碰撞及剛體動(dòng)力學(xué)       537

12.1 你想在游戲中加入物理嗎   537

12.2 碰撞/物理中間件  542

12.3 碰撞檢測(cè)系統(tǒng)        544

12.4 剛體動(dòng)力學(xué)   569

12.5 整合物理引擎至游戲   601

12.6 展望:高級(jí)物理功能   616

第四部分  游戲性         617

第13章  游戲性系統(tǒng)簡(jiǎn)介   619

13.1 剖析游戲世界        619

13.2 實(shí)現(xiàn)動(dòng)態(tài)元素:游戲?qū)ο?  623

13.3 數(shù)據(jù)驅(qū)動(dòng)游戲引擎        626

13.4 游戲世界編輯器   627

第14章  運(yùn)行時(shí)游戲性基礎(chǔ)系統(tǒng)       637

14.1 游戲性基礎(chǔ)系統(tǒng)的組件        637

14.2 各種運(yùn)行時(shí)對(duì)象模型架構(gòu)   640

14.3 世界組塊的數(shù)據(jù)格式   657

14.4 游戲世界的加載和串流        663

14.5 對(duì)象引用與世界查詢   670

14.6 實(shí)時(shí)更新游戲?qū)ο?       676

14.7 事件與消息泵        690

14.8 腳本        707

14.9 高層次的游戲流程        726

第五部分  總結(jié)     727

第15章  還有更多內(nèi)容嗎   729

15.1 一些未談及的引擎系統(tǒng)        729

15.2 游戲性系統(tǒng)   730

參考文獻(xiàn)         733

中文索引         737

英文索引         755


精彩節(jié)摘

推薦序1

最初拿到《Game Engine Architecture》一書的英文版,是編輯俠少郵寄給我的打印版。他建議我接下翻譯此書的合同。當(dāng)時(shí)我正在杭州帶領(lǐng)一個(gè)團(tuán)隊(duì)開發(fā)3D游戲引擎,我和我的同事都對(duì)這本書的內(nèi)容頗有興趣,兩大本打印的英文書立刻在同事間傳開??上嵌螘r(shí)間個(gè)人精力顧及不來,把近千頁(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ù)語(yǔ)在香港的中文譯法和大陸的有許多不同。但此書由大陸出版社出版,考慮到面對(duì)的讀者主要是大陸程序員,Milo希望能更符合大陸程序員的用詞習(xí)慣,所以在翻譯一開始就通過Google Docs創(chuàng)建了協(xié)作頁(yè)面,邀請(qǐng)大家共同探討書中技術(shù)名詞的中譯名。從中我們可以一窺他作為譯者的慎重。

三年之后,有幸在出版之前就拿到了完整的譯本。這是一本用LaTeX精心排版的800頁(yè)的電子書,我只花了一周時(shí)間,幾乎是一口氣讀完。流暢的閱讀享受,絕對(duì)不僅僅是因?yàn)樵实膬?nèi)容,精美的版面和翔實(shí)的譯注也加了不少分。

在閱讀本書的過程中,我不只一次地獲得共鳴。例如在第5章的內(nèi)存管理系統(tǒng)的介紹中,作者介紹的幾種游戲特有的內(nèi)存管理方法我都曾在項(xiàng)目中用過,而這是第一次有書籍專門將這些方法詳盡記錄;又如第11章動(dòng)畫系統(tǒng)的介紹,我們也同樣在3D引擎開發(fā)過程中改進(jìn)原有動(dòng)畫片段混合方法的經(jīng)歷。雖然書中介紹的每個(gè)技術(shù)點(diǎn),都可能可以在某篇論文,某本其他的書的章節(jié),某篇網(wǎng)絡(luò)blog上見過,但之前卻無(wú)一本書可以把這些東西放在一起相互參照。對(duì)于從事游戲引擎開發(fā)的程序員來說,了解各種引擎在處理每個(gè)具體問題時(shí)的方案是相當(dāng)重要的。而每種方案又各有利弊,即使不做引擎開發(fā)工作而是在某一特定游戲引擎上做游戲開發(fā),從中也可以理解引擎的局限性以及可能的改進(jìn)方法。尤其是第14章介紹的對(duì)游戲性相關(guān)系統(tǒng)的設(shè)計(jì),各個(gè)開發(fā)人員幾乎都是憑經(jīng)驗(yàn)設(shè)計(jì),很少見有書籍對(duì)這些做總結(jié)。對(duì)于基于渲染引擎做開發(fā)的游戲程序員,這是必須面對(duì)的工作,這一章會(huì)有很大的借鑒意義。

本書作者是業(yè)內(nèi)資深的游戲引擎開發(fā)人,他所參于的《神秘海域》和《最后生還者》都是我的個(gè)人最愛。在玩游戲的過程中,作為游戲程序員的天性,自然會(huì)不斷地猜想各個(gè)技術(shù)點(diǎn)是如何實(shí)現(xiàn)的,背后需要怎樣的工具支持。能在書中一一得到印證是件特別開心的事情。作者反復(fù)強(qiáng)調(diào)代碼實(shí)踐的重要性,在書中遍布著C++代碼。我不認(rèn)為這些代碼有直接取來使用的價(jià)值,但它們極大地幫助了讀者理解書中的技術(shù)點(diǎn)。書中列出的頑皮狗工作室用lisp方言作為游戲配置腳本的范例也給我很大的啟發(fā),有了這些具體的代碼示例以及作者本身的一線工程師背景,也讓我確信書中那些關(guān)于主機(jī)游戲開發(fā)相關(guān)等,我所沒有接觸過的內(nèi)容都也絕非泛泛而談。

國(guó)內(nèi)的游戲開發(fā)社區(qū)的壯大,主要是隨最近十年的MMO風(fēng)潮而生。而就在大型網(wǎng)絡(luò)游戲在中國(guó)有些畸形發(fā)展,讓這類游戲偏離電子游戲游戲性的趨勢(shì)時(shí),我們有幸迎來了為移動(dòng)設(shè)備開發(fā)游戲的大潮。游戲開發(fā)的重心重新回到游戲性本身。我們更需要去借鑒單機(jī)游戲是如何為玩家?guī)砀兇獾挠螒蝮w驗(yàn),我相信書中記錄的各種技術(shù)點(diǎn)會(huì)變的更有幫助。

                                                                                                      云風(fēng) @簡(jiǎn)悅云風(fēng)

推薦序2

在我認(rèn)識(shí)的許多游戲業(yè)開發(fā)同仁中,只有少數(shù)香港同胞,Milo Yip(葉勁峰)卻正是這樣一位給我印象非常深刻的優(yōu)秀香港游戲開發(fā)者。我倆認(rèn)識(shí),是在Milo加入騰訊互動(dòng)娛樂研發(fā)部引擎技術(shù)中心后,說來到現(xiàn)在也只是兩年多時(shí)間。其間,他為人的謙遜務(wù)實(shí),對(duì)待技術(shù)問題的嚴(yán)謹(jǐn)求真態(tài)度,對(duì)算法設(shè)計(jì)和性能優(yōu)化的嫻熟技術(shù),都為人所稱道。Milo一絲不茍的工作風(fēng)格,甚至表現(xiàn)在對(duì)待技術(shù)文檔排版這類事情上(Milo常執(zhí)著地用LaTeX將技術(shù)文檔排到完美),我想這一定是他在香港讀大學(xué)、碩士及在香港理工大學(xué)的多媒體創(chuàng)新中心從事研究員,一貫沿襲至今的好作風(fēng)。

我很高興騰訊游戲有實(shí)力吸引到這樣優(yōu)秀的技術(shù)專家;即使在其已從上海遷回香港家中,依然選擇到深圳騰訊互動(dòng)娛樂總部工作。葉兄從此工作日每天早晚過關(guān),來往香港和深圳兩地,雖有舟車勞頓,但是兼顧了對(duì)家庭的照顧和在游戲引擎方面的專業(yè)研究,希望這樣的狀況是令他滿意的。

認(rèn)識(shí)葉兄當(dāng)時(shí),我便知道他在進(jìn)行Jason Gregory所著《游戲引擎架構(gòu)》一書的中譯工作。因?yàn)樽约簭那耙灿袠I(yè)余翻譯游戲開發(fā)有關(guān)書籍的經(jīng)歷,所以我能理解其中的辛苦和責(zé)任重大,對(duì)葉兄也更多一分欽佩。我以為,本書以及本書的中文讀者最大的幸運(yùn)便是,遇到葉兄這位對(duì)游戲有著如同對(duì)家對(duì)國(guó)般強(qiáng)烈責(zé)任感,猶如“游戲科學(xué)工作者”般的專業(yè)譯者!

現(xiàn)在(2013年年末)無(wú)疑是游戲史上對(duì)獨(dú)立游戲制作者最友好的年代。開發(fā)設(shè)備方便獲得(相對(duì)過往僅由主機(jī)廠商授權(quán)才能獲得專利開發(fā)設(shè)備,現(xiàn)在有一臺(tái)智能手機(jī)和一臺(tái)個(gè)人電腦就可以開發(fā))、技術(shù)工具友好、調(diào)試過程簡(jiǎn)單方便,且互聯(lián)網(wǎng)上有豐富的例程和開源代碼參考,也有網(wǎng)上社區(qū)便于交流。很多愛好者能夠很快地制作出可運(yùn)行的游戲原型,其中一些也能發(fā)布到應(yīng)用商店。

但是不全面掌握各方面知識(shí),尤其是游戲引擎架構(gòu)知識(shí),往往只能停留在勉強(qiáng)修改、湊合重用別人提供的資源的應(yīng)用程度上,難以做極限的性能改進(jìn),更妄談革命式的架構(gòu)創(chuàng)新。這樣的程度是很難在成千上萬(wàn)的游戲中脫穎而出的。我們所認(rèn)可的真正的游戲大作,必定是在某方面大幅超越用戶期待的產(chǎn)品。為了打造這樣的產(chǎn)品,游戲內(nèi)容創(chuàng)作者(策劃、美術(shù)等)需要“戴著鐐銬跳舞”(在當(dāng)前的機(jī)能下爭(zhēng)取更多的創(chuàng)作自由度),而引擎架構(gòu)合理的游戲可以經(jīng)得起也值得進(jìn)行反復(fù)優(yōu)化,最終可以提供更多的自由度,這是大作出現(xiàn)的技術(shù)前提。

書的作者、譯者、出版社的編者,加上讀者,大家是因書而結(jié)緣的有緣人。因葉兄這本《游戲引擎架構(gòu)》譯著而在線上線下相識(shí)的讀者們,你們是不是因“了解游戲引擎架構(gòu),從而制作/優(yōu)化好游戲”這樣的理想而結(jié)了緣呢?

親愛的讀者,愿你的游戲有一天因謎題巧妙絕倫、趣味超凡、虛擬世界氣勢(shì)磅礴、視覺效果逼真精美等專業(yè)因素取得業(yè)界褒獎(jiǎng),并得到玩家真誠(chéng)的贊美。希望屆時(shí)曾讀葉兄這本《游戲引擎架構(gòu)》譯作的你,也可以回饋社會(huì),回饋游戲開發(fā)的學(xué)習(xí)社區(qū),幫助新人。希望你也可以建立微信公眾號(hào)、博客等,或翻譯游戲開發(fā)書籍,造福外語(yǔ)不好的讀者,所以如果你的外語(yǔ)(英語(yǔ)、日語(yǔ)、韓語(yǔ)之于游戲行業(yè)比較重要)水平仍需精進(jìn),現(xiàn)在也可以同步加油了!

                                                                                                         沙鷹  @也是沙鷹

譯序


數(shù)千年以來,藝術(shù)家們通過文學(xué)、繪畫、雕塑、建筑、音樂、舞蹈、戲劇等傳統(tǒng)藝術(shù)形式充實(shí)人類的精神層面。自20世紀(jì)中葉,計(jì)算機(jī)的普及派生出另一種藝術(shù)形式電子游戲。游戲結(jié)合了上述傳統(tǒng)藝術(shù)以及近代科技派生的其他藝術(shù)(如攝影、電影、動(dòng)畫),并且完全脫離了藝術(shù)欣賞這種單向傳遞的方式游戲必然是互動(dòng)的,“玩家”并不是“讀者”、“觀眾”或“聽眾”,而是進(jìn)入游戲世界、感知并對(duì)世界做出反應(yīng)的參與者。

基于游戲的互動(dòng)本質(zhì),游戲的制作通常比其他大眾藝術(shù)復(fù)雜。商業(yè)游戲的制作通常需要各種人才的參與,而他們則需要依賴各種工具及科技。游戲引擎便是專門為游戲而設(shè)計(jì)的工具及科技集成。之所以稱為引擎,如同交通工具中的引擎,提供了最核心的技術(shù)部分。因?yàn)閺?fù)雜,研發(fā)成本高,人們不希望制作每款游戲(或車款)時(shí)都重新設(shè)計(jì)引擎,重用性是游戲引擎的一個(gè)重要設(shè)計(jì)目標(biāo)。

然而,各游戲本身的性質(zhì)以及平臺(tái)的差異,使研發(fā)完全通用的游戲引擎變得極困難,甚至不可能。市面上出售的游戲引擎,有一些雖然已經(jīng)達(dá)到很高的技術(shù)水平,但在商業(yè)應(yīng)用中,很多時(shí)候還是需要因應(yīng)個(gè)別游戲項(xiàng)目對(duì)引擎改造、整合、擴(kuò)展及優(yōu)化。因此,即使能使用市面上最好的商用引擎或自研引擎,我們?nèi)孕枰斫猱?dāng)中的架構(gòu)、各種機(jī)制和技術(shù),并且分析及解決在制作中遇到的問題。這些也是譯者曾任于上海兩家工作室時(shí)的主要工作范疇。

選擇翻譯此著作,主要原因是在閱讀中得到共鳴,并且能知悉一些知名游戲作品實(shí)際上所采用的方案。有感坊間大部分游戲開發(fā)書籍并不是由業(yè)內(nèi)人士執(zhí)筆,內(nèi)容只足夠應(yīng)付一些最簡(jiǎn)單的游戲開發(fā),欠缺宏觀比較各種方案,技術(shù)與當(dāng)今實(shí)際情況也有很大差距。而一些Gems類叢書雖然偶有好文章,但受形式所限欠缺系統(tǒng)性、全面性。難得本書原作者身為世界一流游戲工作室的資深游戲開發(fā)者,在繁重的游戲開發(fā)工作外,還在大學(xué)教授游戲開發(fā)課程以至編寫本著作。此外,從與內(nèi)地同事的交流中,了解到許多從業(yè)者不愿意閱讀外文書籍。為了普及知識(shí)及反饋業(yè)界社會(huì),希望能盡綿力。

或許有些人以為本著作是針對(duì)單機(jī)/游戲機(jī)游戲的,并不適合國(guó)內(nèi)以網(wǎng)游為主的環(huán)境。但譯者認(rèn)為這是一種誤解,許多游戲本身所涉及的技術(shù)是具通用性的。例如游戲性相關(guān)的游戲性系統(tǒng)、場(chǎng)景管理、人工智能、物理模擬等部分,許多時(shí)候也會(huì)同時(shí)用于網(wǎng)游的前臺(tái)和后臺(tái)。現(xiàn)時(shí),一些動(dòng)作為主、非MMO的國(guó)內(nèi)端游甚至?xí)苯釉诤笈_(tái)運(yùn)行傳統(tǒng)意義上的游戲引擎。至于前臺(tái)相關(guān)的技術(shù),單機(jī)和端游的區(qū)別更少。此外,隨著近年移動(dòng)終端的興起,其硬件性能已超越傳統(tǒng)掌上游戲機(jī),開發(fā)手游所需的技術(shù)與傳統(tǒng)掌上游戲機(jī)并無(wú)太大差異。還可預(yù)料,現(xiàn)時(shí)單機(jī)/游戲機(jī)的一些較高級(jí)的架構(gòu)及技術(shù),將在不遠(yuǎn)的未來著陸移動(dòng)終端平臺(tái)。

譯者認(rèn)為,本書涵括游戲開發(fā)技術(shù)的方方面面,同時(shí)適合入門及經(jīng)驗(yàn)豐富的游戲程序員。書名中的架構(gòu)二字,并不單是給出一個(gè)系統(tǒng)結(jié)構(gòu)圖,而是描述每個(gè)子系統(tǒng)的需求、相關(guān)技術(shù)及與其他子系統(tǒng)的關(guān)系。對(duì)譯者本人而言,本書的第11章(動(dòng)畫系統(tǒng))及第14章(運(yùn)行時(shí)游戲性基礎(chǔ)系統(tǒng))是本書特別精彩之處,含有許多少見于其他書籍的內(nèi)容。而第10章(渲染引擎)由于是游戲引擎中的一個(gè)極大的部分,有限的篇幅可能未能覆蓋廣度及深度,推薦讀者參考[1],人工智能方面也需參考其他專著。

本譯作采用LaTeX排版,以Inkscape編譯矢量圖片。為了令閱讀更流暢,內(nèi)文中的網(wǎng)址都統(tǒng)一改以腳注標(biāo)示。另外,由于現(xiàn)時(shí)游戲開發(fā)相關(guān)的文獻(xiàn)以英文為主,而且游戲開發(fā)涉及的知識(shí)面很廣,本譯作盡量以括號(hào)形式保留英文術(shù)語(yǔ)。為了方便讀者查找內(nèi)容,在附錄中增設(shè)中英文雙向索引(索引條目與原著的不同)。

本人在香港成長(zhǎng)學(xué)習(xí)及工作,至2008年才赴內(nèi)地游戲工作室工作,不黯內(nèi)地的中文寫作及用字習(xí)慣,翻譯中曾遇到不少困難。有幸得到出版社人員以及良師益友的幫助,才能完成本譯作。特別感謝周筠老師支持本作的提案,并耐心地給予協(xié)助及鼓勵(lì)。編輯張春雨老師和盧鶇翔老師,以及好友余晟給予了大量翻譯上的知識(shí)及指導(dǎo)。也感謝游戲業(yè)界專家云風(fēng)、大寶和Dave給予了許多寶貴意見。此書的翻譯及排版工作比預(yù)期更花時(shí)間,感謝妻子及兒女們的體諒。此次翻譯工作歷時(shí)三年半,因工作及家庭事宜導(dǎo)致嚴(yán)重延誤,唯有在翻譯及排版工作上更盡心盡力,希望求得等待此譯作的讀者們諒解。無(wú)論是批評(píng)或建議,誠(chéng)希閣下通過電郵、新浪微博、豆瓣等渠道不吝賜教。

                                                                                                                      葉勁峰(Milo Yip)                                                                                                                       2013年10月

作者簡(jiǎn)介

作者介紹:Jason Gregory在1994年開始任職專業(yè)軟件工程師,自1999年3月開始在游戲產(chǎn)業(yè)中任職軟件工程師。在圣迭哥Midway Home Entertainment公司開始游戲編程的他,為《瘋狂飛行員(Freaky Flyers)》及《Crank theWeasel》開發(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)目中。



媒體評(píng)論

本書針對(duì)每一個(gè)現(xiàn)代游戲開發(fā)相關(guān)的重要系統(tǒng)和話題,給出一個(gè)完美、綜合的概覽,無(wú)論是計(jì)算機(jī)科學(xué)、軟件工程,或是游戲主程,以及業(yè)余愛好者、游戲玩家,本書均不可或缺。

——獲評(píng)CHOICE杰出學(xué)術(shù)作品

……這里有最專業(yè)的領(lǐng)域知識(shí)與概念講解……有了它,你將具備對(duì)如何構(gòu)建游戲引擎的深入理解……本書讓人印象尤其深刻,因?yàn)樵擃I(lǐng)域再也找不到另一本如此詳盡的圖書。

——Eric Haines,www.realtimerendering.com/blog/

作者將數(shù)年經(jīng)驗(yàn)及專業(yè)積累集中在這本完整、全面的著作中,內(nèi)容跨越游戲引擎開發(fā)理論與實(shí)踐。書中提供的游戲開發(fā)過程各方面的精彩實(shí)例,保羅萬(wàn)象且對(duì)讀者大有補(bǔ)益。不僅游戲引擎開發(fā)人員看后會(huì)大受鼓舞,甚至也可作為有經(jīng)驗(yàn)的該領(lǐng)域技術(shù)專家的實(shí)用參考。本書可謂無(wú)價(jià),除內(nèi)容“用戶友好”外,其附錄也值得強(qiáng)烈推薦,無(wú)論是個(gè)人開發(fā)者、專家還是計(jì)算機(jī)科學(xué)學(xué)術(shù)人員,都可將其作為資源集合與參考資料,當(dāng)然游戲設(shè)計(jì)架構(gòu)人員更是不可不讀。

——The Midwest Book Review

本書涵蓋有關(guān)如何開發(fā)游戲引擎要旨的巨量數(shù)據(jù)。

——Gamasutra.com, November 2009

本書曾位列“the Game Developer”雜志前沿大獎(jiǎng)候選圖書。

——PR Newswire


前言

歡迎來到《游戲引擎架構(gòu)》世界。本書旨在全面探討典型商業(yè)游戲引擎的主要組件。游戲編程是一個(gè)龐大的主題,有許多內(nèi)容需要討論。不過相信你會(huì)發(fā)現(xiàn),我們討論的深度將足以使你充分理解本書所涵蓋的工程理論及常用實(shí)踐的方方面面。話雖如此,令人著迷的漫長(zhǎng)游戲編程之旅其實(shí)才剛剛啟程。與此相關(guān)的每項(xiàng)技術(shù)都包含豐富內(nèi)容,本書將為你打下基礎(chǔ),并引領(lǐng)你進(jìn)入更廣闊的學(xué)習(xí)空間。

本書焦點(diǎn)在于游戲引擎的技術(shù)及架構(gòu)。我們會(huì)探討商業(yè)游戲引擎中,各個(gè)子系統(tǒng)的相關(guān)理論,以及實(shí)現(xiàn)這些理論所需要的典型數(shù)據(jù)結(jié)構(gòu)、算法和軟件接口。游戲引擎與游戲的界限頗為模糊。我們將把注意力集中在引擎本身,包括多個(gè)低階基礎(chǔ)系統(tǒng)(low-level foundation system)、渲染引擎(rendering engine)、碰撞系統(tǒng)(collision system)、物理模擬(physics simulation)、人物動(dòng)畫(character animation),及一個(gè)我稱為游戲性基礎(chǔ)層(gameplay foundation layer)的深入討論。此層包括游戲?qū)ο竽P停╣ame object model)、世界編輯器(world editor)、事件系統(tǒng)(event system)及腳本系統(tǒng)(scripting system)。我們也將會(huì)接觸游戲性編程(gameplay programming)的多個(gè)方面,包括玩家機(jī)制(player mechanics)、攝像機(jī)(camera)及人工智能(artificialintelligence,AI)。然而,這類討論會(huì)被限制在游戲性系統(tǒng)和引擎接口范圍。    

本書可以作為大學(xué)中等級(jí)游戲程序設(shè)計(jì)中兩到三門課程的教材。當(dāng)然,本書也適合軟件工程師、業(yè)余愛好者、自學(xué)的游戲程序員,以及游戲行業(yè)從業(yè)人員。通過閱讀本書,資歷較淺的游戲程序員可以鞏固他們所學(xué)的游戲數(shù)學(xué)、引擎架構(gòu)及游戲科技方面的知識(shí)。專注某一領(lǐng)域的資深程序員也能從本書更為全面的介紹中獲益。

為了更好地學(xué)習(xí)本書內(nèi)容,你需要掌握基本的面向?qū)ο缶幊谈拍畈⒅辽贀碛幸恍〤++編程經(jīng)驗(yàn)。盡管游戲行業(yè)已經(jīng)開始嘗試使用一些新的、令人興奮的編程語(yǔ)言,然而工業(yè)級(jí)的3D游戲引擎仍然是用C或C++編寫的,任何認(rèn)真的游戲程序員都應(yīng)該掌握C++。我們將在第3章重溫一些面向?qū)ο缶幊痰幕驹瓌t,毫無(wú)疑問,你還會(huì)從本書學(xué)到一些C++的小技巧,不過C++的基礎(chǔ)最好還是通過閱讀[39]、[31]及[32]來獲得。如果你對(duì)C++已經(jīng)有點(diǎn)生疏,建議你在閱讀本書的同時(shí),最好能重溫這幾本或者類似書籍。如果你完全沒有C++經(jīng)驗(yàn),在看本書之前,可以考慮先閱讀[39]的前幾章,或者嘗試學(xué)習(xí)一些C++的在線教程。

學(xué)習(xí)編程技能最好的方法就是寫代碼。在閱讀本書時(shí),強(qiáng)烈建議你選擇一些特別感興趣的主題付諸實(shí)踐。舉例來說,如果你覺得人物動(dòng)畫很有趣,那么可以首先安裝OGRE,并測(cè)試一下它的蒙皮動(dòng)畫示范。接著還可以嘗試用OGRE實(shí)現(xiàn)本書談及的一些動(dòng)畫混合技巧。下一步你可能會(huì)打算用游戲手柄控制人物在平面上行走。等你能玩轉(zhuǎn)一些簡(jiǎn)單的東西了,就應(yīng)該以此為基礎(chǔ),繼續(xù)前進(jìn)!之后可以轉(zhuǎn)移到另一個(gè)游戲技術(shù)范疇,周而復(fù)始。這些項(xiàng)目是什么并不重要,重要的是你在實(shí)踐游戲編程的藝術(shù),而不是紙上談兵。

游戲科技是一個(gè)活生生、會(huì)呼吸的家伙 ,永遠(yuǎn)不可能將之束縛于書本之上。因此,附加的資源、勘誤、更新、示例代碼、項(xiàng)目構(gòu)思等已經(jīng)發(fā)到本書的網(wǎng)站。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI