![](/c49/30/67280027711.jpg)
出版社:人民郵電出版社 ISBN:9787115525758 商品編碼:67280027711 代碼:198
"
基本信息 商品名稱: | 遊戲開發 世嘉新人培訓教材 | 開本: | 16開 | 作者: | 平山尚 | 頁數: | | 代碼: | 198.00 | 出版時間: | 2020-03-30 | ISBN號: | 9787115525758 | 印刷時間: | 2020-03-30 | 出版社: | 人民郵電出版社 | 版次印次: | 1 | 編輯推薦 1.經典 本書由世嘉一線開發者執筆,並被選為世嘉新人培訓教材,榮獲遊戲開發者奧斯卡CEDEC AWARDS 2009著作獎。 2.繫統全面 全方位介紹遊戲開發者必須掌握的基礎技術,包括遊戲編程、數學和物理等,內容充實,幫助讀者建立起一套扎實的知識體繫。 3.實踐導向 不借助任何引擎,從簡單的命令行遊戲開發講起,到2D遊戲開發,終帶領讀者開發出一個3D遊戲,並在此過程中介紹遊戲開發中會遇到的各種問題及解決方案,實踐性強。讀者可下載隨書附帶的源碼,邊做邊學。 4.拒絕枯燥 采用口語化的行文方式,以設計思路為切入點進行講解,每一步都有明確的邏輯依據,讓讀者在知道“怎麼做”的同時,明白“為什麼”這麼做。 內容推薦 《遊戲開發:世嘉新人培訓教材》全面介紹了遊戲開發人員需要掌握的相關技術知識。內容由淺入深,從命令行遊戲開發講起,然後介紹如何開發簡單的2D遊戲,後介紹如何開發出一個包含模型和動畫的3D遊戲,涵蓋了計算機圖形學(3DCG、2DCG、字體、光照、動畫)、計算機運算(踫撞處理、計算誤差)、編程(模塊化、bug預防、性能優化)、遊戲處理(狀態遷移、實時處理、加載)和聲音處理等知識。 目錄 第 1部分 2D 遊戲.1 第 1章個遊戲2 1.1 開發一個益智遊戲 .3 1.2 示例代碼解說 7 1.3 添加讀取場景數據的功能 16 1.4 C++ 課堂 21 1.5 補充內容:標志位和位運算26 1.6 補充內容:指針和內存 34 1.7 補充內容:引用 41 1.8 本章小結 46 第 2章 從像素開始學習2D 圖形處理 .47 2.1 什麼是2D 圖形處理 48 2.2 準備工作 50 2.3 打印一個點 54 2.4 移植《箱子搬運工》 .55 2.5 補充內容:結束處理 .58 2.6 本章小結 60 第3章 使用圖片素材 61 3.1 讀取圖片文件 .62 3.2 帶圖片的《箱子搬運工》的示例代碼72 3.3 使用透明通道 .75 3.4 頭文件包含關繫的組織策略 .82 3.5 補充內容:透明混合的性能優化 86 3.6 補充內容:加法混合 .88 3.7 本章小結 90 第4章 實時遊戲 91 4.1 什麼是實時遊戲 92 4.2 運行動畫 95 4.3 帶動畫的《箱子搬運工》.96 4.4 獲得遊戲的幀率 .101 4.5 解決幀率差異 103 4.6 補充內容:根據幀率變化動態改變遊戲運行速度 105 4.7 補充內容:影像撕裂現像 110 4.8 本章小結 .111 第5章 簡單的狀態遷移 113 5.1 往類庫追加功能 .114 5.2 相對直接的做法 .117 5.3 試著增加狀態 119 5.4 代碼審查 .122 5.5 示例代碼解說 128 5.6 本章小結 .136 第6章 文本繪制方法 .137 6.1 字體圖片 .138 6.2 文本繪制函數 138 6.3 一些改進 .140 6.4 成果驗證 .142 6.5 示例代碼解說 143 6.6 注意著作權 147 6.7 示例類庫的功能 .147 6.8 本章小結 .148 第7章 動作遊戲初體驗 149 7.1 用到的類庫 150 7.2 開發《炸彈人》 .151 7.3 示例代碼解說 152 7.4 添加背景顯示 157 7.5 配置移動的對像 .164 7.6 遊戲的改進方向 .169 7.7 本章小結 .170 第8章 2D 平面內的踫撞處理 171 8.1 踫撞檢測 .172 8.2 踫撞響應 .174 8.3 發生多個踫撞時的問題 .179 8.4 踫撞響應與操作性 180 8.5 移動的物體相互踫撞 184 8.6 《炸彈人》的踫撞處理 .184 8.7 本章小結 .186 第9章 各種輸入設備 .187 9.1 獲取輸入設備實例 188 9.2 鍵盤 189 9.3 鼠標 189 9.4 手柄 190 9.5 在《炸彈人》遊戲中使用手柄 .191 9.6 本章小結 .193 第 10章 狀態遷移詳解 194 10.1 問題定位 195 10.2 使用繼承 195 10.3 實際運用 198 10.4 補充內容:簡化狀態遷移的代碼 .201 10.5 補充內容:跨層級的狀態遷移處理的改進 204 10.6 補充內容:繼承的原理 208 10.7 本章小結 213 第 11章 播放聲音 .215 11.1 關於音頻類庫 216 11.2 補充內容:計算機如何播放聲音 .218 11.3 補充內容:音高和音量 219 11.4 補充內容:音色 220 11.5 補充內容:聲音的疊加 221 11.6 補充內容:do、re、mi 的原理 222 11.7 補充內容:演奏樂譜 223 11.8 補充內容:讀取WAV 音頻文件 225 11.9 補充內容:使用Sound 模塊來聲波 .226 11.10 本章小結 226 第 12章 旋轉、縮放與平移 227 12.1 旋轉 .228 12.2 引入向量和矩陣 241 12.3 利用頂點來實現 246 12.4 縮放 .253 12.5 在縮放的同時進行旋轉.255 12.6 矩陣的力量 .256 12.7 補充內容:旋轉公式的由來 263 12.8 補充內容:更為實用的旋轉處理方法 266 12.9 補充內容:數學中的矩陣 .267 12.10 本章小結 271 第 13章 顯卡的力量 272 13.1 關於使用的類庫 273 13.2 使用顯卡繪制三角形 273 13.3 將圖像貼到三角形中 275 13.4 混合模式 278 13.5 旋轉、縮放和移動 .278 13.6 移植《炸彈人》 281 13.7 本章小結 284 第 2部分 3D 遊戲285 第 14章 繪制立體物體 286 14.1 關於類庫 287 14.2 開始制作3D 動作遊戲《機甲大戰》 .287 14.3 繪制三角形 .289 14.4 按位置前後繪制物體 290 14.5 將遠處的物體繪制得小一些 294 14.6 坐標變換 303 14.7 用矩陣表示透視變換 316 14.8 開始制作《機甲大戰》 322 14.9 補充內容:Z 緩存的精度問題 335 14.10 本章小結 338 第 15章 類庫的封裝方法 .340 15.1 整體設計 341 15.2 資源的詳細內容 342 15.3 試運行 350 15.4 從文件載入 .352 15.5 補充內容:將類庫從遊戲中分離 .354 15.6 本章小結 363 第 16章 偽XML 文件的讀取 364 16.1 確定文件格式 365 16.2 創建前的準備 366 16.3 處理流程 368 16.4 字符串解析 .371 16.5 編寫代碼 373 16.6 運用 .375 16.7 示例代碼解說 378 16.8 補充內容:生成數據文件382 16.9 本章小結 385 第 17章 編寫高性能的代碼 386 17.1 算法與時間復雜度 .387 17.2 數據結構基礎 390 17.3 吞吐量與延遲 402 17.4 並行處理 404 17.5 內存問題 404 17.6 STL 和數據結構 411 17.7 性能瓶頸分析 416 17.8 補充內容:函數調用的開銷 417 17.9 補充內容:高效運算與低效運算 .420 17.10 本章小結 422 第 18章 3D 踫撞處理 .423 18.1 長方體的踫撞處理 .424 18.2 使用浮點數的踫撞檢測 427 18.3 三角形和線段的相交檢測 .436 18.4 實用性 445 18.5 其他問題 447 18.6 本章小結 448 第 19章 《機甲大戰》的設計 450 19.1 狀態遷移 451 19.2 操作 .451 19.3 發射導彈 454 19.4 將功能整合到一起 .457 19.5 前端展現 461 19.6 不足之處 463 19.7 本章小結 464 第 20章 光照 465 20.1 看見物體的過程 466 20.2 光的衰減過程 469 20.3 嘗試計算 473 20.4 整合到《機甲大戰》中.479 20.5 補充內容:性能優化 480 20.6 補充內容:更好的繪制效果 483 20.7 本章小結 484 第 21章 角色動畫 .485 21.1 相對運動 486 21.2 層級Model 類 492 21.3 自動構建樹結構 495 21.4 將動畫數據化 500 21.5 補間方法 506 21.6 引入到《機甲大戰》中.518 21.7 補充內容:聯立方程組vs 斜率指定法 519 21.8 補充內容:不足之處 520 21.9 本章小結 523 第3部分 通往商業遊戲之路525 第 22章 高效的踫撞檢測 .526 22.1 低效的循環判斷方法 527 22.2 性能改善的基本思路 528 22.3 基於排序的方法 531 22.4 依靠分割實現的方法 539 22.5 補充內容:改進等分切割法545 22.6 補充內容:空間分割的技巧 .548 22.7 本章小結 552 第 23章 數據加載 .554 23.1 為何加載時間越來越長.555 23.2 文件加載類 .556 23.3 通過合並文件提升性能.562 23.4 通過壓縮提升性能 .571 23.5 補充內容:多線程異步處理579 23.6 補充內容:編碼技術 590 23.7 補充內容:用於加密的合並與壓縮 591 23.8 本章小結 592 第 24章 float 的用法 593 24.1 位數限制 594 24.2 float 的實現 594 24.3 位數截斷帶來的誤差 596 24.4 誤差程度 597 24.5 減小誤差的方法 600 24.6 特別的數 606 24.7 本章小結 608 第 25章 隨書類庫概要 609 25.1 類庫中的類 .610 25.2 啟動設定 611 25.3 Framework 模塊 613 25.4 WindowCreator 模塊 614 25.5 FileIO 模塊 614 25.6 Base 模塊 615 25.7 Math 模塊 616 25.8 Threading 模塊 618 25.9 Input 模塊 .620 25.10 Sound 模塊 620 25.11 PseudoXml 模塊 621 25.12 Graphics 模塊 621 25.13 Scene 模塊 628 25.14 抗鋸齒處理 630 25.15 將《機甲大戰》改用終版類庫實現 631 25.16 X 文件 .633 25.17 本章小結 634 第 26章 bug 的應對方法 .635 26.1 防火與滅火 .636 26.2 bug 的種類 .636 26.3 bug 的預防 .641 26.4 bug 的處理 .654 26.5 《機甲大戰》的處理 656 26.6 補充內容:如何檢測內存溢出 657 26.7 本章小結 660 第 27章 進階方向 .662 27.1 應該學習什麼 663 27.2 工具開發 664 27.3 AI 667 27.4 網絡 .667 27.5 shader 668 27.6 參考文獻 669 27.7 一些期待的書 672 後記 .675 致謝 .676 ^_^:3fa39bbc1b9ecf57233107113a3e32b2
" |