內容簡介
專家級開發人員可以立刻套用書中介紹的技巧,而國中級程式設計師通過閱讀本書將增強其技能和知識。這是一本必備的參考資料,是40多位經驗豐富的遊戲開發人員智慧和經驗的結晶。
編輯推薦
歡迎閱讀《遊戲編程精粹2》。讀者可將其中闡述的技術直接套用到遊戲中。能給讀者呈現一本這樣的圖書,我感到自豪。這是一本必備的參考資料,是40多位經驗豐富的遊戲開發人員智慧和經驗的結晶。
作者簡介
Mark Deloura是Game Developer雜誌的主編,也是《遊戲編程精粹1》和《遊戲編程精粹2》的編輯。加入Game Developer之前,Mark在任天堂(美國)公司工作過5年,擔任開發人員關係小組的主力軟體工程師,從事Gamecube和Nintendo 64開發。在此之前,Mark還從事過虛擬現實方面的研究,是多個Usene虛擬現實新聞組的主持人之一。
目錄
第1章 通用編程技術
緒論
Scott Bilas
1.1 最佳化C++遊戲
Andrew Kirmse
1.1.1 對象的創建和銷毀
1.1.2 記憶體管理
1.1.3 虛擬函式
1.1.4 代碼長度
1.1.5 標準模板庫
1.1.6 高級特性
1.1.7 參考文獻
1.2 內聯函式和宏
Peter Dalton
1.2.1 內聯函式的優點
1.2.2 何時使用內聯函式
1.2.3 何時使用宏
1.2.4 微軟特有的情況
1.2.5 參考文獻
1.3 抽象接口編程
Noel Liopis
1.3.1 抽象接口
1.3.2 添加一個工廠(factory)
1.3.3 抽象接口特性
1.3.4 一切都是有代價的
1.3.5 結論
1.3.6 參考文獻
1.4 從DLL中導出C++類
Herb Marselas
1.4.1 導出函式
1.4.2 導出類
1.4.3 導出類成員函式
1.4.4 導出虛擬類成員函式
1.4.5 總結
1.5 避免DLL困境
Herb Marselas
1.5.1 顯式連結還是隱式連結
1.5.2 LoadLibrary和GetProcAddress
1.5.3 提防DirectX
1.5.4 使用作業系統特有的特性
1.5.5 總結
1.6 動態類型信息
Scott Wakeling
1.6.1 動態類型信息類簡介
1.6.2 暴露和查詢DTI
1.6.3 繼承的含義是“是一個”
1.6.4 處理通用對象
1.6.5 實現永久性類型信息
1.6.6 將永久性類型信息用於遊戲保存資料庫中
1.6.7 結論
1.6.8 參考文獻
1.7 用於通用C++成員訪問的屬性類
Charles Cafrelli
1.7.1 代碼
1.7.2 其他用途
1.7.3 推薦讀物
1.8 一個遊戲實體工廠
Franois Dominic Laramée
1.8.1 組件
1.8.2 flyweight類、行為類和導出類
1.8.3 flyweight對象
1.8.4 SAMMy,你在哪裡?
1.8.5 行為類層次
1.8.6 使用模板方法模式來完成行為任務
1.8.7 導出類
1.8.8 實體工廠
1.8.9 在運行階段選擇策略
1.8.10 最後的注意事項
1.8.11 參考文獻
1.9 在C++添加摒棄功能
Noel Llopis
1.9.1 可能的解決方案
1.9.2 理想的解決方案
1.9.3 使用和指定被摒棄的函式
1.9.4 使用C++實現摒棄功能
1.9.5 可改進的地方
1.9.6 致謝
1.9.7 參考文獻
1.10 一個插入式調試記憶體管理器
Peter Dalton
1.10.1 記憶體管理器初步
1.10.2 記憶體管理器的記錄工作
1.10.3 報告信息
1.10.4 注意事項
1.10.5 進一步的改進
1.10.6 參考文獻
1.11 一個內置的遊戲剖析模組
Jeff Evertt
1.11.1 有關剖析的基本知識
1.11.2 商用工具
1.11.3 為何要自己開發模組
1.11.4 剖析模組(Profiling module)的需求
1.11.5 架構和實現
1.11.6 實現的細節
1.11.7 分析數據
1.11.8 有關實現的注意事項
1.12 用於Windows遊戲的線性編程模型
Javier F. Otaegui
1.12.1 更新背景
1.12.2 解決方案:多執行緒(Multithreading)
1.12.3 參考文獻
1.13 棧纏繞
Bryon Hapgood
1.13.1 簡單的TempRet
1.13.2 TempRet鏈
1.13.3 Thunking
1.13.4 遞歸
1.14 自我修改的代碼
Bryon Hapgood
1.14.1 RAM代碼的原理
1.14.2 一個快速的Bit Blitter
1.15 使用資源檔案來管理檔案
Bruno Sousa
1.15.1 何為資源檔案
1.15.2 設計
1.15.3 實現
1.15.4 有關實現的最後一些說明
1.15.5 結論
1.15.6 參考文獻
1.16 遊戲輸入的記錄和重放
Bruce Dawson
1.16.1 記錄輸入有何用途
1.16.2 原理
1.16.3 測試輸入記錄功能
1.16.4 結論
1.16.5 參考文獻
1.17 一個靈活的文本分析系統
James Boer
1.17.1 分析系統
1.17.2 宏、頭檔案和預處理技術
1.17.3 該分析系統的結構
1.17.4 小結
1.18 一個通用的調節器
Lasse Staff Jensen
1.18.1 需求分析
1.18.2 實現
1.18.3 使用
1.18.4 圖形用戶界面
1.18.5 附註
1.18.6 致謝
1.19 生成真正的隨機數
Pete Isensee
1.19.1 偽隨機
1.19.2 真正隨機
1.19.3 隨機輸入源
1.19.4 硬體源
1.19.5 混合函式
1.19.6 局限性
1.19.7 實現
1.19.8 GenRand的隨機程度
1.19.9 參考文獻
1.20 使用Bloom過濾器來提高計算性能
Mark Fischer
1.20.1 Bloom的方式
1.20.2 可能的情形
1.20.3 工作原理
1.20.4 定義
1.20.5 範例1
1.20.6 範例2
1.20.7 最後的說明
1.20.8 結論
1.20.9 參考文獻
1.21 3Ds MAX中的Skin導出器和動畫工具包
Marco Tombesi
1.21.1 導出
1.21.2 參考文獻
1.22 在視頻遊戲中使用Web攝像機
Nathan d'Obrenan
1.22.1 初始化Web攝像機捕獲視窗
1.22.2 操縱Web攝像機數據
1.22.3 結論
1.22.4 參考文獻
第2章 數學技巧
第3章 人工智慧
第4章 幾何體管理
第5章 圖形顯示
第6章 音頻編程