出版時間:2010 年7月 出版社:人民郵電出版社 作者:(美)Scott Jacobs 頁數(shù):411 譯者:項周臻,陶紹武
Tag標簽:無
前言
游戲編程精粹叢書出到現(xiàn)在已經(jīng)有6卷了。每一卷都包含許多有用且實際的思路和技術。根據(jù)網(wǎng)上的討論、好奇讀者的期望、業(yè)余以及專業(yè)游戲開發(fā)者的咨詢,我相信前作起到了讓游戲更富有創(chuàng)意,更富有娛樂性和更加令人滿意的促進效果。在第7卷里面,我們投入了大量努力來繼承這一傳統(tǒng)。游戲開發(fā)的激情游戲開發(fā)正越來越成為一個充滿幻想的歷程。它是一個真正的能讓激情與才華閃耀的知識精英的競技。學位和經(jīng)驗也許能讓你進入這個大門,但最終還是要看結果。你的代碼容易維護嗎?它的效率達到甚至超過目標了嗎?視覺和聽覺效果令人震撼嗎?游戲玩法有趣嗎?在這些方面超越別人的挑戰(zhàn)毫無疑問讓游戲開發(fā)令人興奮,我猜想這也是激發(fā)書中文獻作者們分享想法和經(jīng)驗的動機。我希望同樣是這種向往超越的渴望把你引向這本書,因為這一卷的意義,同時事實上也是這整個系列的意義,就是提供給你提供工具和靈感來做到這一點。沒有幾個行業(yè)能夠像游戲業(yè)這樣,開發(fā)者工作的激情如此之高,以至于在經(jīng)歷了5天的工作后,專業(yè)開發(fā)者們還會與業(yè)余愛好者聚集一起,為了周末的“果醬”繼續(xù)做和工作曰一模一樣的事情。也許我在電視上看到的伐木工競賽和這有點近似。但是有多少伐木工會在家里安排一個伐木計劃,卻只是為了嘗試一些新點子來獲得樂趣和經(jīng)驗呢?
內(nèi)容概要
《游戲編程精粹.7》是游戲編程精粹系列的最新一本,內(nèi)容涉及通用編程、數(shù)學和物理、人工智能、音頻、圖形學、網(wǎng)絡和多人游戲、腳本和數(shù)據(jù)驅動系統(tǒng)等內(nèi)容,具有較強的先進性和通用性。隨書附帶光盤中提供了《游戲編程精粹.7》的源程序、演示程序以及需要的各種游戲開發(fā)的第三方工具?! ∫虼耍瑹o論你是一個剛剛起步的游戲開發(fā)新手,還是資深業(yè)界專家,都能夠在《游戲編程精粹.7》中找到靈感,增強洞察力及開發(fā)的技能。將書中介紹的開發(fā)經(jīng)驗和技巧應用于實際項目中,將縮短開發(fā)時間,提高效率。
作者簡介
譯者:項周臻 陶紹武 等 編者:(美國)Scott Jacobs 合著者:沙鷹 陳虎 等沙鷹,目前在騰訊互動娛樂部門工作,之前曾在EA上海、EA加拿大、JAMDAT加拿大和UbiSoft上海工作,畢業(yè)于南京大學計算機系,是本次翻譯特邀監(jiān)制。Scott Jacobs從1995年起就在游戲行業(yè)工作了。當前他是Destineer的高級軟件工程師。在進入Destineer之前,他作為軟件工程師在嚴肅游戲公司Virtual Heroes,以及包括Redstorm Entertainment在內(nèi)的兩家Ubisoftm作室工作,并在Interactive Magic.E.式進入游戲開發(fā)行業(yè)。他也是《游戲編程精粹6》中網(wǎng)絡和多人游戲章節(jié)的編輯。他現(xiàn)在與他的妻子以及一些小動物住在北卡羅來納。
書籍目錄
第1章 通用編程簡介 2Adam Lake, 圖形軟件架構師,高級視覺計算(AVC)小組,英特爾1.1 使用年齡和成本指標的高效率緩存替換 3Colt“MainRoach”McAnlis,微軟Ensemble工作室1.1.1 概述 31.1.2 緩存替換算法 41.1.3 年齡和成本指標 51.1.4 結論 91.1.5 致謝 101.1.6 參考文獻 101.2 高性能堆分配器 11Dimitar Lazarov, Luxoflux1.2.1 簡介 111.2.2 相關工作 111.2.3 我們的解決方案 121.2.4 參考文獻 181.3 用網(wǎng)絡攝像頭玩的視頻游戲的光流 191.3.1 簡介 191.3.2 OpenCV代碼 201.3.3 第一種方法:圖像差異 211.3.4 第二種方法:運動歷史 211.3.5 第三種方法:Lucas-Kanade算法 221.3.6 光流游戲 231.3.7 參考文獻 251.4 一個多平臺線程引擎的設計與實現(xiàn) 261.4.1 一個實用線程架構的系統(tǒng)設計 261.4.2 線程 281.4.3 線程分配策略 301.4.4 對象的線程 311.4.5 線程的安全性、重新進入、對象同步和數(shù)據(jù)訪問 321.4.6 使用緩存線(或緩存的一致性) 321.4.7 如何使用GLRThreading庫 321.4.8 結論 341.4.9 參考文獻 341.5 給蜜蜂和游戲玩家:如何處理六邊形貼片 351.5.1 簡介 351.5.2 六邊形貼片的利弊 351.5.3 掌握六邊形網(wǎng)格 381.5.4 實現(xiàn)技巧 391.5.5 應用 401.5.6 結論 421.5.7 參考文獻 421.6 服務于即時戰(zhàn)略游戲的基于細胞多孔機器(Cellular Automaton)的線條主界面 431.6.1 關注上下文的控制等級 441.6.2 實現(xiàn)細節(jié) 451.6.3 結論 491.6.4 參考文獻 491.7 第一人稱射擊游戲的腳步導航技術 501.7.1 介紹 501.7.2 用腳來導航 511.7.3 一個簡單的游戲 551.7.4 玩家測試 561.7.5 結論 571.7.6 以后的工作 571.7.7 致謝 571.8 推遲函數(shù)調用的喚醒系統(tǒng) 581.8.1 時間問題 581.8.2 案例分析 591.8.3 對函數(shù)調用分類 601.8.4 檢視這個系統(tǒng) 601.8.5 結論 611.8.6 參考文獻 611.9 多線程任務和依賴系統(tǒng) 621.9.1 介紹 621.9.2 任務系統(tǒng) 631.9.3 依賴性管理器 661.9.4 后續(xù)的工作 681.9.5 結論 691.9.6 參考文獻 701.10 高級調試技術 711.10.1 程序崩潰 711.10.2 內(nèi)存泄露 741.10.3 Windows錯誤匯報(WER) 751.10.4 框架 761.10.5 結論 771.10.6 參考文獻 78第2章 數(shù)學和物理簡介 802.1 隨機數(shù)生成 822.1.1 背景:隨機數(shù)生成 822.1.2 隨機性測試 842.1.3 軟件漂白 842.1.4 不加密隨機數(shù)生成算法 852.1.5 加密RNG方法 892.1.6 創(chuàng)造隨機數(shù)生成器的常見錯誤 902.1.7 代碼 912.1.8 結論 912.1.9 參考文獻 912.2 游戲中的快速通用光線查詢 932.2.1 光線追蹤介紹 932.2.2 K維樹概念和存儲考慮 942.2.3 動態(tài)物體 1012.2.4 示例程序 1012.2.5 結論 1022.2.6 參考文獻 1022.3 使用最遠特性圖的快速剛體碰撞檢測 1032.3.1 背景 1032.3.2 預處理 1042.3.3 運行時查詢 1062.3.4 性能分析和結束語 1072.3.5 致謝 1072.3.6 參考文獻 1082.4 使用投影空間來提高幾何計算精度 1092.4.1 投影空間 1092.4.2 R2空間中的基本對象 1102.4.3 RP2空間中的點和直線 1102.4.4 在RP2空間中的基本運算 1112.4.5 在RP2空間中使用整數(shù)坐標進行精確的幾何運算 1122.4.6 在RP2空間中幾何運算的數(shù)值范圍限制 1122.4.7 RP2空間運算的例子程序 1142.4.8 拓展到第三維 1162.4.9 結論 1172.4.10 參考文獻 1172.5 使用XenoCollide算法簡化復雜的碰撞 1182.5.1 介紹 1182.5.2 用支撐映射來表示形體 1192.5.3 使用閔可夫斯基(Minkowski)差異來簡化碰撞檢測 1212.5.4 使用閔可夫斯基入口簡化(Minkowski Portal Refinement, MPR)來檢測碰撞 1222.5.5 使用MPR算法得到相交信息 1252.5.6 結論 1262.5.7 致謝 1262.5.8 參考文獻 1262.6 使用變換語義的高效碰撞檢測 1282.6.1 仿射變換和游戲 1282.6.2 從矩陣中抽取語義 1292.6.3 在碰撞檢測中使用變換語義 1312.6.4 結論 1342.6.5 參考文獻 1352.7 三角樣條 1362.7.1 背景知識 1362.7.2 討論 1392.7.3 結論 1392.7.4 參考文獻 1402.8 使用高斯隨機性來擬真發(fā)射軌跡的變化 1412.8.1 高斯分布 1412.8.2 生成高斯隨機性 1422.8.3 其他應用 1442.8.4 自然中的高斯分布 1442.8.5 結論 1442.8.6 參考文獻 145第3章 人工智能第4章 音頻第5章 圖形學第6章 網(wǎng)絡和多人游戲第7章 腳本和數(shù)據(jù)驅動系統(tǒng)
章節(jié)摘錄
插圖:共享狀態(tài)信息。如果單元需要共享狀態(tài)信息,它可能是不高效和不靈活的??瓷先τ谶@個應用,這不是什么嚴重的問題,因為大多數(shù)單元不需要直接共享任何狀態(tài)信息。在一些例外的情況下,你可以放開管道過濾器的限制,允許單元以特別高效的方式來進行通信,避開正式的單元輸入和輸出。但是那些例外應該十分罕見。通信和數(shù)據(jù)傳輸?shù)拈_銷。單元必須交換數(shù)據(jù),這可能會引起一些開銷??赡苄枰恍┎恢苯訉崿F(xiàn)算法做出貢獻的數(shù)據(jù)處理。如果單元是可以互換的,它們必須商定共有的通信協(xié)議,有些時候只是一個字符流大小。序列化和解析的過程可能會因太過昂貴而導致這個模式不可用。我們準備解決這個問題,并且最小化或者徹底去掉這個開銷??赡苁且驗橥ㄐ砰_銷,但是我們已經(jīng)承諾會最小化它們。也可能是因為架構依賴的原因,比如,上下文切換和同步開銷。我們現(xiàn)在先不考慮這些問題,因為它們看上去在所有的并行處理方案中都很常見。也可能是因為處理的性質或者不良代碼,比如,單元在給出任何輸出數(shù)據(jù)前就消耗掉了所有的輸入數(shù)據(jù)。這個單元可能變成整個工作流程的瓶頸。為了避免這個問題,無論何時只要有可能,你都應該讓處理變?yōu)檫f增的,復雜的流程控制邏輯。工作流程的處理性質大多數(shù)是按順序的,所以實現(xiàn)分支、循環(huán)和其他復雜的結構就變得很難。但是,在這個應用中,我們幾乎可以從次序化處理方面重新思考和定義算法。這些新的定義會對自身十分有益。當一個看上去需要復雜控制執(zhí)行流程的復雜任務被改變?yōu)楦唵尾襟E的序列時,無疑會提高實現(xiàn)的內(nèi)部質量,在少數(shù)情況下,當你不能做到時,可以使用傳統(tǒng)管道過濾器模式之外的特殊結構。錯誤處理??偟膩碚f,在管道過濾器模式中,錯誤處理可能會十分復雜,但是AdiflcialContendcr決策算法不需要任何錯誤后的恢復。所以,整個錯誤處理問題對于這個應用來說不是十分重要。復雜度、增加的可維護性嘗試。這個模式采用了它自己的復雜度和可維護性嘗試。因為將一個單獨的實現(xiàn)分解為多個組件增加了組件和依賴性的數(shù)量,這個問題并不是只針對于這個模式的,而是任何分解的結果。我們的解決方案是盡可能地保持簡單和輕量級。
編輯推薦
歡迎來到《游戲編程精粹7》的精彩世界游戲編程精粹系列圖書定義了游戲編程的標準,而且也是創(chuàng)新技術的重要來源,《游戲編程精粹.7》提供了游戲開發(fā)人員有必要嫻熱應用的工具和靈感,匯集了游戲業(yè)界資深人士和專家精心撰寫的易于使用的前沿技術,是激發(fā)游戲開發(fā)人員的靈感、提升洞悉力的重要資源,而且游戲開發(fā)人員通過應用書中現(xiàn)成的方法可以節(jié)省其寶貴的時間?!队螒蚓幊叹?7》滿足了充滿激情的游戲開發(fā)人員、急切的開發(fā)新手、如饑似渴的產(chǎn)品需求的需要.也滿足了創(chuàng)新性和娛樂性游戲的需要《游戲編程精粹.7》涵蓋了游戲開發(fā)的所有關鍵領域,包括數(shù)學和物理、人工智能、音頻,甚至腳本和數(shù)據(jù)驅動系統(tǒng)《游戲編程精粹.7》每一章均由該領域的專家編輯,以確保其中的理念是獨創(chuàng)的、正確的以及實用的書中有些知識對提升游戲玩家的體驗有直接幫助,比如音頻制作和人機交互你的開發(fā)團隊有DBA么?從《游戲編程精粹.7》中可以學到將目標系統(tǒng)與相關數(shù)據(jù)庫集成起來的建議方法認識到用于管理曰益擴張的團隊規(guī)模的解決方案的需求,促進有效的內(nèi)部和外部交流,書中的網(wǎng)絡編程知識可以將網(wǎng)絡管理人員已經(jīng)熟知,但是在游戲開發(fā)界還沒有廣泛應用的工具應用到多人游戲開發(fā)中去。深入理解《游戲編程精粹.7》中有用而且實用的理念和技術,可以幫助你開發(fā)出令人欣喜的可玩性較強的獨創(chuàng)游戲《游戲編程精粹.7》主題通用編程——用網(wǎng)絡攝像頭玩的視頻游戲的光流;多平臺線程引擎的設計與實現(xiàn);推遲函數(shù)喚醒系統(tǒng):高級調試技術數(shù)學和物理——快速通用光線查詢:使用投影空間來提高幾何計算精度:復雜碰撞的簡化;三角樣條、人工智能——用行為克隆創(chuàng)建有趣的代理;管理AI算法復雜度;面向目標的計劃合并;超越A:IDA和邊緣搜索音頻——基于可編程圖形硬件的音頻信號處理,多流:編寫次世代音頻引擎的藝術;實時音頻效果;上下文驅動,層疊混合圖形學——先進的粒子沉積;高效的細分表面:一個先進的貼花系統(tǒng);基于藝術品的嫁接貼圖渲染網(wǎng)絡和多人游戲——游戲世界同步的高層抽象;網(wǎng)絡游戲的身份驗證:調試游戲網(wǎng)絡腳本和數(shù)據(jù)驅動系統(tǒng)——Lua自動綁定系統(tǒng);數(shù)據(jù)端口;為你的引擎增加shader,Python的AST。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載