遊戲引擎架構

broadviewbj發表於2014-02-19

遊戲引擎架構

宣傳語:邁向現代遊戲之路完美入口 業界萬眾企盼 隆重推薦

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

譯者:葉勁峰 譯

ISBN: 978-7-121-22288-7

出版時間:2014年1月出版

定價:128.00元

頁數:800頁

開本:16開


編輯推薦

《遊戲引擎架構》由遊戲界傳奇人物雲風及“天天愛消除”團隊傾情作序推薦,既是遊戲工作者必讀Bible,對其他IT從業者也不無裨益。

內容包括:

- 遊戲開發中的大規模C++軟體架構

- 遊戲程式設計所需的數學

- 供除錯、原始碼控制及效能剖析的遊戲開發工具

- 引擎基礎系統、渲染、碰撞、物理、角色動畫、遊戲世界物件模型等引擎子系統

- 多平臺遊戲引擎

- 多處理器環境下的遊戲程式設計

- 工作管道及遊戲資產資料庫


內容提要

《遊戲引擎架構》同時涵蓋遊戲引擎軟體開發的理論及實踐,並對多方面的題目進行探討。本書討論到的概念及技巧實際應用於 現實中的遊戲工作室,如藝電及頑皮狗。雖然書中採用的例子通常依據一些專門的技術,但是討論範圍遠超於某個引擎或API。文中的參考及引用也非常有用,可 讓讀者繼續深入遊戲開發過程的任何特定方向。

《遊戲引擎架構》為一個大學程度的遊戲程式設計課程而編寫,但也適合軟體工程師、業餘愛好者、自學遊戲程式設計師,以及遊戲產業 的從業人員。透過閱讀《遊戲引擎架構》,資歷較淺的遊戲工程師可以鞏固他們所學的遊戲技術及引擎架構的知識,專注某一領域的資深程式設計師也能從本書更為全面 的介紹中獲益。


目錄

推薦序1 iii

推薦序2 v

譯序         vii

序言         xvii

前言         xix

致謝         xxi

第一部分  基礎     1

第1章  導論          3

1.1 典型遊戲團隊的結構      4

1.2 遊戲是什麼      7

1.3 遊戲引擎是什麼      10

1.4 不同遊戲型別中的引擎差異 11

1.5 遊戲引擎概觀 22

1.6 執行時引擎架構      27

1.7 工具及資產管道      46

第2章  專業工具          53

2.1 版本控制 53

2.2 微軟Visual Studio    61

2.3 剖析工具 78

2.4 記憶體洩漏和損壞檢測      79

2.5 其他工具 80

第3章  遊戲軟體工程基礎          83

3.1 重溫C++及最佳實踐       83

3.2 C/C++的資料、程式碼及記憶體     90

3.3 捕捉及處理錯誤      118

第4章  遊戲所需的三維數學     125

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

4.2 點和向量 125

4.3 矩陣 139

4.4 四元數      156

4.5 比較各種旋轉表達方式 164

4.6 其他數學物件 168

4.7 硬體加速的SIMD運算   173

4.8 產生隨機數      180

第二部分  低階引擎系統     183

第5章  遊戲支援系統          185

5.1 子系統的啟動和終止      185

5.2 記憶體管理 193

5.3 容器 208

5.4 字串      225

5.5 引擎配置 234

第6章  資源及檔案系統     241

6.1 檔案系統 241

6.2 資源管理器      251

第7章  遊戲迴圈及實時模擬     277

7.1 渲染迴圈 277

7.2 遊戲迴圈 278

7.3 遊戲迴圈的架構風格      280

7.4 抽象時間線      283

7.5 測量及處理時間      285

7.6 多處理器的遊戲迴圈      296

7.7 網路多人遊戲迴圈 304

第8章  人體學介面裝置(HID)       309

8.1 各種人體學介面裝置      309

8.2 人體學介面裝置的介面技術 311

8.3 輸入型別 312

8.4 輸出型別 316

8.5 遊戲引擎的人體學介面裝置系統 318

8.6 人體學介面裝置使用實踐      332

第9章  除錯及開發工具     333

9.1 日誌及跟蹤      333

9.2 除錯用的繪圖功能 337

9.3 遊戲內建選單 344

9.4 遊戲內建主控臺      347

9.5 除錯用攝像機和遊戲暫停      348

9.6 作弊 348

9.7 螢幕截圖及錄影      349

9.8 遊戲內建效能剖析 349

9.9 遊戲內建的記憶體統計和洩漏檢測 356

第三部分  圖形及動畫         359

第10章  渲染引擎       361

10.1 採用深度緩衝的三角形光柵化基礎   361

10.2 渲染管道        404

10.3 高階光照及全域性光照   426

10.4 視覺效果和覆蓋層        438

10.5 延伸閱讀        446

第11章  動畫系統       447

11.1 角色動畫的型別   447

11.2 骨骼        452

11.3 姿勢        454

11.4 動畫片段        459

11.5 蒙皮及生成矩陣調色盤        471

11.6 動畫混合        476

11.7 後期處理        493

11.8 壓縮技術        496

11.9 動畫系統架構        501

11.10 動畫管道      502

11.11 動作狀態機 515

11.12 動畫控制器 535

第12章  碰撞及剛體動力學       537

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

12.2 碰撞/物理中介軟體  542

12.3 碰撞檢測系統        544

12.4 剛體動力學   569

12.5 整合物理引擎至遊戲   601

12.6 展望:高階物理功能   616

第四部分  遊戲性         617

第13章  遊戲性系統簡介   619

13.1 剖析遊戲世界        619

13.2 實現動態元素:遊戲物件   623

13.3 資料驅動遊戲引擎        626

13.4 遊戲世界編輯器   627

第14章  執行時遊戲性基礎系統       637

14.1 遊戲性基礎系統的元件        637

14.2 各種執行時物件模型架構   640

14.3 世界組塊的資料格式   657

14.4 遊戲世界的載入和串流        663

14.5 物件引用與世界查詢   670

14.6 實時更新遊戲物件        676

14.7 事件與訊息泵        690

14.8 指令碼        707

14.9 高層次的遊戲流程        726

第五部分  總結     727

第15章  還有更多內容嗎   729

15.1 一些未談及的引擎系統        729

15.2 遊戲性系統   730

參考文獻         733

中文索引         737

英文索引         755


精彩節摘

推薦序1

最初拿到《Game Engine Architecture》一書的英文版,是編輯俠少郵寄給我的列印版。他建議我接下翻譯此書的合同。當時我正在杭州帶領一個團隊開發3D遊戲引擎,我和 我的同事都對這本書的內容頗有興趣,兩大本列印的英文書立刻在同事間傳開。可惜那段時間個人精力顧及不來,把近千頁的英文讀物精讀而後翻譯成中文對個人的 業餘時間是個極大的挑戰,不能擔此翻譯任務頗為遺憾。

不久以後聽說Milo Yip(葉勁峰)已開始著手翻譯,甚為欣喜。翻譯此鉅著,他一定是比我更合適的人選。我和Milo雖未曾蒙面,但神交已久。在網路上讀過一些他的成長經 歷,和我頗為相似,心有慼慼。他對遊戲3D實時渲染技術研究精深為我所不及,我們曾透過Google Talk討論過許多技術問題,他都有獨到的見解。翻譯工作開始後,Milo是香港人,英文技術術語在香港的中文譯法和大陸的有許多不同。但此書由大陸出版 社出版,考慮到面對的讀者主要是大陸程式設計師,Milo希望能更符合大陸程式設計師的用詞習慣,所以在翻譯一開始就透過Google Docs建立了協作頁面,邀請大家共同探討書中技術名詞的中譯名。從中我們可以一窺他作為譯者的慎重。

三年之後,有幸在出版之前就拿到了完整的譯本。這是一本用LaTeX精心排版的800頁的電子書,我只花了一週時間,幾乎是一口氣讀完。流暢的閱讀享受,絕對不僅僅是因為原著精彩的內容,精美的版面和翔實的譯註也加了不少分。

在閱讀本書的過程中,我不只一次地獲得共鳴。例如在第5章的記憶體管理系統的介紹中,作者介紹的幾種遊戲特有的記憶體管理方法我都曾在專案中用過,而這 是第一次有書籍專門將這些方法詳盡記錄;又如第11章動畫系統的介紹,我們也同樣在3D引擎開發過程中改進原有動畫片段混合方法的經歷。雖然書中介紹的每 個技術點,都可能可以在某篇論文,某本其他的書的章節,某篇網路blog上見過,但之前卻無一本書可以把這些東西放在一起相互參照。對於從事遊戲引擎開發 的程式設計師來說,瞭解各種引擎在處理每個具體問題時的方案是相當重要的。而每種方案又各有利弊,即使不做引擎開發工作而是在某一特定遊戲引擎上做遊戲開發, 從中也可以理解引擎的侷限性以及可能的改進方法。尤其是第14章介紹的對遊戲性相關係統的設計,各個開發人員幾乎都是憑經驗設計,很少見有書籍對這些做總 結。對於基於渲染引擎做開發的遊戲程式設計師,這是必須面對的工作,這一章會有很大的借鑑意義。

本書作者是業內資深的遊戲引擎開發人,他所參於的《神秘海域》和《最後生還者》都是我的個人最愛。在玩遊戲的過程中,作為遊戲程式設計師的天性,自然會 不斷地猜想各個技術點是如何實現的,背後需要怎樣的工具支援。能在書中一一得到印證是件特別開心的事情。作者反覆強調程式碼實踐的重要性,在書中遍佈著 C++程式碼。我不認為這些程式碼有直接取來使用的價值,但它們極大地幫助了讀者理解書中的技術點。書中列出的頑皮狗工作室用lisp方言作為遊戲配置指令碼的 範例也給我很大的啟發,有了這些具體的程式碼示例以及作者本身的一線工程師背景,也讓我確信書中那些關於主機遊戲開發相關等,我所沒有接觸過的內容都也絕非 泛泛而談。

國內的遊戲開發社群的壯大,主要是隨最近十年的MMO風潮而生。而就在大型網路遊戲在中國有些畸形發展,讓這類遊戲偏離電子遊戲遊戲性的趨勢時,我 們有幸迎來了為移動裝置開發遊戲的大潮。遊戲開發的重心重新回到遊戲性本身。我們更需要去借鑑單機遊戲是如何為玩家帶來更純粹的遊戲體驗,我相信書中記錄 的各種技術點會變的更有幫助。

                                                                                                       雲風 @簡悅雲風

推薦序2

在我認識的許多遊戲業開發同仁中,只有少數香港同胞,Milo Yip(葉勁峰)卻正是這樣一位給我印象非常深刻的優秀香港遊戲開發者。我倆認識,是在Milo加入騰訊互動娛樂研發部引擎技術中心後,說來到現在也只是 兩年多時間。其間,他為人的謙遜務實,對待技術問題的嚴謹求真態度,對演算法設計和效能最佳化的嫻熟技術,都為人所稱道。Milo一絲不苟的工作風格,甚至表 現在對待技術文件排版這類事情上(Milo常執著地用LaTeX將技術文件排到完美),我想這一定是他在香港讀大學、碩士及在香港理工大學的多媒體創新中 心從事研究員,一貫沿襲至今的好作風。

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

認識葉兄當時,我便知道他在進行Jason Gregory所著《遊戲引擎架構》一書的中譯工作。因為自己從前也有業餘翻譯遊戲開發有關書籍的經歷,所以我能理解其中的辛苦和責任重大,對葉兄也更多 一分欽佩。我以為,本書以及本書的中文讀者最大的幸運便是,遇到葉兄這位對遊戲有著如同對家對國般強烈責任感,猶如“遊戲科學工作者”般的專業譯者!

現在(2013年年末)無疑是遊戲史上對獨立遊戲製作者最友好的年代。開發裝置方便獲得(相對過往僅由主機廠商授權才能獲得專利開發裝置,現在有一 臺智慧手機和一臺個人電腦就可以開發)、技術工具友好、除錯過程簡單方便,且網際網路上有豐富的例程和開原始碼參考,也有網上社群便於交流。很多愛好者能夠 很快地製作出可執行的遊戲原型,其中一些也能釋出到應用商店。

但是不全面掌握各方面知識,尤其是遊戲引擎架構知識,往往只能停留在勉強修改、湊合重用別人提供的資源的應用程度上,難以做極限的效能改進,更妄談 革命式的架構創新。這樣的程度是很難在成千上萬的遊戲中脫穎而出的。我們所認可的真正的遊戲大作,必定是在某方面大幅超越使用者期待的產品。為了打造這樣的 產品,遊戲內容創作者(策劃、美術等)需要“戴著鐐銬跳舞”(在當前的機能下爭取更多的創作自由度),而引擎架構合理的遊戲可以經得起也值得進行反覆優 化,最終可以提供更多的自由度,這是大作出現的技術前提。

書的作者、譯者、出版社的編者,加上讀者,大家是因書而結緣的有緣人。因葉兄這本《遊戲引擎架構》譯著而線上上線下相識的讀者們,你們是不是因“瞭解遊戲引擎架構,從而製作/最佳化好遊戲”這樣的理想而結了緣呢?

親愛的讀者,願你的遊戲有一天因謎題巧妙絕倫、趣味超凡、虛擬世界氣勢磅礴、視覺效果逼真精美等專業因素取得業界褒獎,並得到玩家真誠的讚美。希望 屆時曾讀葉兄這本《遊戲引擎架構》譯作的你,也可以回饋社會,回饋遊戲開發的學習社群,幫助新人。希望你也可以建立微信公眾號、部落格等,或翻譯遊戲開發書 籍,造福外語不好的讀者,所以如果你的外語(英語、日語、韓語之於遊戲行業比較重要)水平仍需精進,現在也可以同步加油了!

                                                                                                          沙鷹  @也是沙鷹

譯序

 

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

基於遊戲的互動本質,遊戲的製作通常比其他大眾藝術複雜。商業遊戲的製作通常需要各種人才的參與,而他們則需要依賴各種工具及科技。遊戲引擎便是專 門為遊戲而設計的工具及科技整合。之所以稱為引擎,如同交通工具中的引擎,提供了最核心的技術部分。因為複雜,研發成本高,人們不希望製作每款遊戲(或車 款)時都重新設計引擎,重用性是遊戲引擎的一個重要設計目標。

然而,各遊戲本身的性質以及平臺的差異,使研發完全通用的遊戲引擎變得極困難,甚至不可能。市面上出售的遊戲引擎,有一些雖然已經達到很高的技術水 平,但在商業應用中,很多時候還是需要因應個別遊戲專案對引擎改造、整合、擴充套件及最佳化。因此,即使能使用市面上最好的商用引擎或自研引擎,我們仍需要理解 當中的架構、各種機制和技術,並且分析及解決在製作中遇到的問題。這些也是譯者曾任於上海兩家工作室時的主要工作範疇。

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

或許有些人以為本著作是針對單機/遊戲機遊戲的,並不適合國內以網遊為主的環境。但譯者認為這是一種誤解,許多遊戲本身所涉及的技術是具通用性的。 例如遊戲性相關的遊戲性系統、場景管理、人工智慧、物理模擬等部分,許多時候也會同時用於網遊的前臺和後臺。現時,一些動作為主、非MMO的國內端遊甚至 會直接在後臺執行傳統意義上的遊戲引擎。至於前臺相關的技術,單機和端遊的區別更少。此外,隨著近年移動終端的興起,其硬體效能已超越傳統掌上游戲機,開 發手遊所需的技術與傳統掌上游戲機並無太大差異。還可預料,現時單機/遊戲機的一些較高階的架構及技術,將在不遠的未來著陸移動終端平臺。

譯者認為,本書涵括遊戲開發技術的方方面面,同時適合入門及經驗豐富的遊戲程式設計師。書名中的架構二字,並不單是給出一個系統結構圖,而是描述每個子 系統的需求、相關技術及與其他子系統的關係。對譯者本人而言,本書的第11章(動畫系統)及第14章(執行時遊戲性基礎系統)是本書特別精彩之處,含有許 多少見於其他書籍的內容。而第10章(渲染引擎)由於是遊戲引擎中的一個極大的部分,有限的篇幅可能未能覆蓋廣度及深度,推薦讀者參考[1],人工智慧方 面也需參考其他專著。

本譯作採用LaTeX排版,以Inkscape編譯向量圖片。為了令閱讀更流暢,內文中的網址都統一改以腳註標示。另外,由於現時遊戲開發相關的文 獻以英文為主,而且遊戲開發涉及的知識面很廣,本譯作儘量以括號形式保留英文術語。為了方便讀者查詢內容,在附錄中增設中英文雙向索引(索引條目與原著的 不同)。

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

                                                                                                                       葉 勁峰(Milo Yip)                                                                                                                       2013 年10月

作者簡介

作者介紹:Jason Gregory在1994年開始任職專業軟體工程師,自1999年3月開始在遊戲產業中任職軟體工程師。在聖迭哥Midway Home Entertainment公司開始遊戲程式設計的他,為《瘋狂飛行員(Freaky Flyers)》及《Crank theWeasel》開發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傑出學術作品

……這裡有最專業的領域知識與概念講解……有了它,你將具備對如何構建遊戲引擎的深入理解……本書讓人印象尤其深刻,因為該領域再也找不到另一本如此詳盡的圖書。

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

作者將數年經驗及專業積累集中在這本完整、全面的著作中,內容跨越遊戲引擎開發理論與實踐。書中提供的遊戲開發過程各方面的精彩例項,保羅永珍且對 讀者大有補益。不僅遊戲引擎開發人員看後會大受鼓舞,甚至也可作為有經驗的該領域技術專家的實用參考。本書可謂無價,除內容“使用者友好”外,其附錄也值得 強烈推薦,無論是個人開發者、專家還是電腦科學學術人員,都可將其作為資源集合與參考資料,當然遊戲設計架構人員更是不可不讀。

——The Midwest Book Review

本書涵蓋有關如何開發遊戲引擎要旨的巨量資料。

——Gamasutra.com, November 2009

本書曾位列“the Game Developer”雜誌前沿大獎候選圖書。

——PR Newswire


前言

歡迎來到《遊戲引擎架構》世界。本書旨在全面探討典型商業遊戲引擎的主要元件。遊戲程式設計是一個龐大的主題,有許多內容需要討論。不過相信你會發現, 我們討論的深度將足以使你充分理解本書所涵蓋的工程理論及常用實踐的方方面面。話雖如此,令人著迷的漫長遊戲程式設計之旅其實才剛剛啟程。與此相關的每項技術 都包含豐富內容,本書將為你打下基礎,並引領你進入更廣闊的學習空間。

本書焦點在於遊戲引擎的技術及架構。我們會探討商業遊戲引擎中,各個子系統的相關理論,以及實現這些理論所需要的典型資料結構、演算法和軟體介面。遊 戲引擎與遊戲的界限頗為模糊。我們將把注意力集中在引擎本身,包括多個低階基礎系統(low-level foundation system)、渲染引擎(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)及人工智慧(artificialintelligence,AI)。然而,這類討論會被限制在遊戲性系統 和引擎介面範圍。    

本書可以作為大學中等級遊戲程式設計中兩到三門課程的教材。當然,本書也適合軟體工程師、業餘愛好者、自學的遊戲程式設計師,以及遊戲行業從業人員。通 過閱讀本書,資歷較淺的遊戲程式設計師可以鞏固他們所學的遊戲數學、引擎架構及遊戲科技方面的知識。專注某一領域的資深程式設計師也能從本書更為全面的介紹中獲 益。

為了更好地學習本書內容,你需要掌握基本的物件導向程式設計概念並至少擁有一些C++程式設計經驗。儘管遊戲行業已經開始嘗試使用一些新的、令人興奮的程式設計 語言,然而工業級的3D遊戲引擎仍然是用C或C++編寫的,任何認真的遊戲程式設計師都應該掌握C++。我們將在第3章重溫一些物件導向程式設計的基本原則,毫無 疑問,你還會從本書學到一些C++的小技巧,不過C++的基礎最好還是透過閱讀[39]、[31]及[32]來獲得。如果你對C++已經有點生疏,建議你 在閱讀本書的同時,最好能重溫這幾本或者類似書籍。如果你完全沒有C++經驗,在看本書之前,可以考慮先閱讀[39]的前幾章,或者嘗試學習一些C++的 線上教程。

學習程式設計技能最好的方法就是寫程式碼。在閱讀本書時,強烈建議你選擇一些特別感興趣的主題付諸實踐。舉例來說,如果你覺得人物動畫很有趣,那麼可以首 先安裝OGRE,並測試一下它的蒙皮動畫示範。接著還可以嘗試用OGRE實現本書談及的一些動畫混合技巧。下一步你可能會打算用遊戲手柄控制人物在平面上 行走。等你能玩轉一些簡單的東西了,就應該以此為基礎,繼續前進!之後可以轉移到另一個遊戲技術範疇,週而復始。這些專案是什麼並不重要,重要的是你在實 踐遊戲程式設計的藝術,而不是紙上談兵。

遊戲科技是一個活生生、會呼吸的傢伙 ,永遠不可能將之束縛於書本之上。因此,附加的資源、勘誤、更新、示例程式碼、專案構思等已經發到本書的網站。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13164110/viewspace-1083839/,如需轉載,請註明出處,否則將追究法律責任。

相關文章