關(guān)于我們
書單推薦
新書推薦
|
游戲引擎架構(gòu)(第2版) 讀者對(duì)象:適讀人群 :本書為大學(xué)程度的游戲編程課程而編寫,但也適合軟件工程師、游戲開發(fā)業(yè)余愛好者,以及游戲產(chǎn)業(yè)的從業(yè)人員閱讀。通過閱讀本書,資歷較淺的游戲工程師可以鞏固他們所學(xué)的游戲技術(shù)及引擎架構(gòu)的知識(shí),專注某一領(lǐng)域的程序員也能從本書更為全面的介紹中獲益。
本書講解商業(yè)游戲引擎中各個(gè)子系統(tǒng)的理論基礎(chǔ),并論述實(shí)現(xiàn)這些子系統(tǒng)通常所需的數(shù)據(jù)結(jié)構(gòu)、算法及軟件接口。書中還涉及一些游戲編程方面的技術(shù),如玩家機(jī)制、攝像頭和人工智能。
√ 引擎為游戲科技之大成,而通用游戲引擎經(jīng)常無法通用,需要因項(xiàng)目而改造、整合、擴(kuò)展及優(yōu)化,因此必須理解其架構(gòu)、機(jī)制和技術(shù) ,才能分析及解決游戲制作中的問題(本書譯者在騰訊游戲即擔(dān)此重任)。
√ 站在*界級(jí)專家的肩上,廣泛了解、宏觀對(duì)比(藝電、頑皮狗)*界游戲名作優(yōu)選方案與實(shí)際采用技術(shù)、工具,覆蓋手游、端游通用的游戲性系統(tǒ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ì)更新大量內(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)化、國際化、贗矢量、格拉斯曼代數(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)那迷人、全方位的難忘之旅。
最初拿到 Game Engine Architecture 一書的英文版 , 是電子工業(yè)出版社博文視點(diǎn)公司的編輯俠少郵寄給我的打印版。他建議我接下翻譯此書的重任。當(dāng)時(shí)我正在杭州帶領(lǐng)一個(gè)團(tuán)隊(duì)開發(fā) 3D 游戲引擎 , 我和我的同事都對(duì)這本書的內(nèi)容頗有興趣 , 兩大本打印的英文書稿立刻在同事間傳開。可惜那段時(shí)間個(gè)人精力實(shí)在有限 , 精讀近千頁的英文讀物后再將其翻譯成中文對(duì)個(gè)人的業(yè)余時(shí)間來說是一個(gè)極大的挑戰(zhàn) , 不能擔(dān)此翻譯任務(wù)頗為遺憾。
不久以后聽說 Milo Yip ( 葉勁峰 ) 已開始著手翻譯 , 甚為欣喜。翻譯此巨著 , 他一定是比我更合適的人選。我和 Milo 雖未曾謀面 , 但神交已久 , 在網(wǎng)絡(luò)上讀過一些他的成長經(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é)作頁面 , 邀請(qǐng)大家共同探討書中技術(shù)術(shù)語的中文譯法。從中我們可以一窺他作為譯者的慎重。 三年之后 , 有幸在出版之前就拿到了完整的譯本。這是一本用 LATEX 精心排版的 1000 多頁的電子書 , 我只花了一周時(shí)間 , 幾乎是一口氣讀完。流暢的閱讀享受 , 絕對(duì)不僅僅是因?yàn)樵实膬?nèi)容 , 精美的版面和翔實(shí)的譯注也加分不少。 在閱讀本書的過程中 , 我不止一次地與作者產(chǎn)生共鳴。例如在第 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)都可能在某篇論文、某本書的某個(gè)章節(jié)、某篇網(wǎng)絡(luò)博客上見過 , 但之前卻無一本書可以把這些內(nèi)容放在一起相互參 照。對(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ì)這些知識(shí)點(diǎn)進(jìn)行總結(jié)。對(duì)于基于渲染引擎做開發(fā)的游戲程序員 , 這是必須面對(duì)的工作 , 這一章有很大的借鑒意義。 本書作者是業(yè)內(nèi)資深的游戲引擎開發(fā)者 , 他所參與研發(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ā) , 有了這些具體的代碼示例以及作者本身一線工程師的背景 , 讓我確信書中那些與主機(jī)游戲開發(fā)相關(guān)等我所沒有接觸過的內(nèi)容都絕非泛泛之談。 國內(nèi)游戲開發(fā)社區(qū)的壯大 , 主要隨最近十年的 MMO 風(fēng)潮而生。而就在大型網(wǎng)絡(luò)游戲于國內(nèi)有些偏離電子游戲的游戲性趨勢(shì)時(shí) , 我們有幸迎來了為移動(dòng)設(shè)備開發(fā)游戲的大潮。游戲開發(fā)的重心重新回到游戲性本身。我們更需要借鑒單機(jī)游戲是如何為玩家?guī)砀兇獾挠螒蝮w驗(yàn)的 , 我相信書中記錄的各種技術(shù)點(diǎn)會(huì)變得對(duì)廣大讀者更有幫助。 云風(fēng) (@ 簡悅云風(fēng) ) 推薦序 2 在我認(rèn)識(shí)的許多游戲業(yè)開發(fā)同仁中 , 只有少數(shù)香港同胞 , Milo Yip ( 葉勁峰 ) 卻正是這樣一位讓我印象非常深刻的、優(yōu)秀的香港游戲開發(fā)者。我倆認(rèn)識(shí)是在 Milo 加入騰訊互動(dòng)娛樂研發(fā)部引擎技術(shù)中心后 , 至今也只是兩年多的時(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ù)專家 , 即使 Milo 已從上海遷回香港家中 ,依然選擇到深圳騰訊互動(dòng)娛樂總部工作。從此 , Milo 工作日每天早晚過關(guān) , 來往香港和深圳兩地 , 雖有舟車勞頓 , 但是兼顧了對(duì)家庭的照顧和在游戲引擎方面的專業(yè)研究 , 希望這樣的狀況是令他滿意的。 認(rèn)識(shí) Milo 時(shí) , 我便知道他在進(jìn)行 Jason Gregory 所著的 Game Engine Architecture 一書的翻譯工作。因?yàn)樽约簭那耙灿袠I(yè)余翻譯游戲開發(fā)相關(guān)書籍的經(jīng)歷 , 所以我能理解其中的辛苦和責(zé)任重大 , 對(duì) Milo 也更多了一分欽佩。我以為 , 本書以及本書的中文讀者最大的幸運(yùn)便是 , 遇到 Milo 這位對(duì)游戲有著如同對(duì)家對(duì)國般強(qiáng)烈責(zé)任感 , 猶如“游戲科學(xué)工作者”般的專業(yè)譯者 ! 現(xiàn)在 (2013 年年末 ) 無疑是游戲史上對(duì)獨(dú)立游戲制作者最友好的年代 , 開發(fā)設(shè)備方便獲得 ( 相對(duì)過去僅由主機(jī)廠商授權(quán)才能獲得專利開發(fā)設(shè)備 , 現(xiàn)在有一臺(tái)智能手機(jī)和一臺(tái)個(gè)人電腦就可以開發(fā)游戲 ) 、技術(shù)工具友好、調(diào)試過程簡單方便 , 且互聯(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)新。這樣的程度是很難從成千上萬的游戲中脫穎而出的。我們所認(rèn)可的真正的游戲大作必定是在某方面大幅超越用戶期待的產(chǎn)品。為了打造這樣的產(chǎn)品 , 游戲內(nèi)容創(chuàng)作者 ( 策劃、美工等 ) 需要“戴著鐐銬跳舞” ( 在當(dāng)前的條件下爭取更多的創(chuàng)作自由度 ), 而引擎架構(gòu)合理的游戲可以經(jīng)得 起 —— 也值得進(jìn)行 —— 反復(fù)優(yōu)化 , 最終可以提供更多的自由度 , 這是大作出現(xiàn)的技術(shù)前提。 書的作者、譯者、出版社的編輯 , 加上讀者 , 大家是因書而結(jié)緣的有緣人。因 Milo 這本《游戲引擎架構(gòu)》譯著而在線上線下相識(shí)的讀者們 , 你們是不是因“了解游戲引擎架構(gòu) , 從而制作 / 優(yōu)化好游戲”這樣的理想而結(jié)了緣呢 ? 親愛的讀者 , 愿你的游戲作品有一天因謎題巧妙絕倫、趣味超凡、虛擬世界氣勢(shì)磅礴、視覺效果逼真精美等專業(yè)因素取得業(yè)界褒獎(jiǎng) , 并得到玩家真誠的贊美。希望屆時(shí)曾讀過 Milo 這本《游戲引擎架構(gòu)》譯著的你 , 也可以回饋社會(huì) , 回饋游戲開發(fā)的學(xué)習(xí)社區(qū) , 幫助新人。希望你也可以建立微信公眾號(hào)、博客等 , 或翻譯游戲開發(fā)書籍 , 造福外語不好的讀者 , 所以如果你的外語 ( 英語、日語、韓語對(duì)于游戲行業(yè)來說比較重要 ) 水平仍須精進(jìn) , 現(xiàn)在也可以同步加油了 ! 沙鷹 (yingsha@qq.com) 第 1 版前言 歡迎來到《游戲引擎架構(gòu)》的世界。本書旨在全面探討典型商業(yè)游戲引擎的主要組件。游戲編程是一個(gè)龐大的主題 , 有許多內(nèi)容需要討論。不過相信你會(huì)發(fā)現(xiàn) , 我們討論的深度將足以使你充分理解本書所涵蓋的工程理論及常用實(shí)踐的方方面面。話雖如此 , 令人著迷的漫長游戲編程之旅其實(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 sys-tem) 、渲染引擎 (rendering engine) 、碰撞系統(tǒng) (collision system) 、物理模擬 (physics simulation) 、人物動(dòng)畫 (character animation), 以及一個(gè)我稱之為游戲性基礎(chǔ)層 (gameplay foundation layer)的深入討論。此層包括游戲?qū)ο竽P?(game object model) 、世界編輯器 (world editor) 、事件系統(tǒng) (event system) 及腳本系統(tǒng) (scripting system) 。我們也將會(huì)接觸游戲性編程 (gameplay programming) 的多個(gè)方面 , 包括玩家機(jī)制 (player mechanics) 、攝像機(jī) (camera) 及人工智能 (artificial intelligence, AI) 。然而 , 這類討論會(huì)被限制在游戲性系統(tǒng)和引擎接口范圍內(nèi)。 本書可以作為大學(xué)中級(jí)游戲程序設(shè)計(jì)中兩到三門課程的教材。當(dāng)然 , 本書也適合軟件工程師、業(yè)余愛好者 , 以及游戲行業(yè)的從業(yè)人員閱讀。通過閱讀本書 , 資歷較淺的游戲程序員可以鞏固他們所學(xué)的游戲數(shù)學(xué)、引擎架構(gòu)及游戲科技方面的知識(shí) , 專注某一領(lǐng)域的資深程序員也能從本書更為全面的介紹中獲益。 為了更好地學(xué)習(xí)本書的內(nèi)容 , 你需要掌握基本的面向?qū)ο缶幊谈拍畈⒅辽贀碛幸恍?C++編程經(jīng)驗(yàn)。盡管游戲行業(yè)已經(jīng)開始嘗試使用一些新的、令人興奮的編程語言 , 然而工業(yè)級(jí)的 3D 游戲引擎
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í)是頑皮狗公司的通才程序員,為《神秘海域:德雷克船長的寶藏(Uncharted: Drake's Fortune)》及《神秘海域:縱橫四海(Uncharted: Among Thieves)》開發(fā)引擎及游戲性軟件。他也在南加州大學(xué)教授游戲技術(shù)的課程。
譯者簡介 葉勁峰(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)神》、《天涯明月刀》、《眾神爭霸》等項(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 競速游戲 ....................................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ù)庫 ? ...................................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è)置代碼版本庫...........................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 程序庫、可執(zhí)行文件及動(dòng)態(tài)鏈接庫.........................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)。本書以簡明、清楚的方式覆蓋游戲引擎架構(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í)他已很長時(shí)間了,在頑皮狗,他與我榮幸地參與了全部三集叫好又叫座的《神秘海域》(Uncharted)系列游戲。Jason還繼續(xù)參與了頑皮狗的下一個(gè)極其成功的講故事動(dòng)作游戲《最后生還者》(The Last of Us)。 我的游戲設(shè)計(jì)師生涯始于英國的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 日
你還可能感興趣
我要評(píng)論
|