| 圖書基本信息 | |||
| 圖書名稱 | 遊戲編程算法與技巧 | 作者 | Sanjay Madhav,劉瀚陽 |
| 定價 | 89.00元 | 齣版社 | 電子工業齣版社 |
| ISBN | 9787121276453 | 齣版日期 | 2016-10-01 |
| 字數 | 頁碼 | ||
| 版次 | 1 | 裝幀 | 平裝 |
| 開本 | 16開 | 商品重量 | 0.4Kg |
| 內容簡介 | |
| 本書詳細綜述瞭應用在許多重要視頻遊戲編程中的算法和技術。書中采用瞭一種獨立於平颱和結構的方法,能協助開發幾乎任何風格、語言和框架的遊戲,並展現2D和3D圖像、物理、人工智能、相機等工作的基本技術。書中的每個概念都是用C#、Java或 C 程序員直觀明白的僞代碼闡述的,並且作者已經改進和證實過這些僞代碼。本書後作者詳細分析瞭兩個完整的遊戲,清楚展現瞭前麵章節講到的很多技術和算法。 |
| 作者簡介 | |
| Sanjay Madhav 是南加利福尼亞大學的講師,在那裏他教授瞭幾門與遊戲編程相關的課程。而在全職加入南加利福尼亞大學之前,他作為程序員在許多公司工作過,包括Electronic Arts、Neverso�� 及Pandemic Studios。雖然他在很多係統上都有著豐富的開發經驗,但是他感興趣的還是遊戲機製的開發。他所參與的遊戲包括《榮譽勛章:太平洋突襲》(Tony Hawk’s Project 8)、《指環王:徵服》(Lord of the Rings: Conquest)和The Saboteur。 劉瀚陽,互娛高級工程師,Life-long級彆的遊戲玩傢。興趣使然,大學本科就選擇瞭遊戲專業,畢業後一直專注於遊戲研發。參與過遊戲引擎、大型商業MMORPG、中小型手遊的開發。擅長遊戲架構設計與開發,代碼寫得賊溜,略懂産品。一直在遊戲行業中默默前進,希望有一天也能做齣一款的遊戲。 |
| 目錄 | |
| 目錄 章 遊戲編程概述1 遊戲編程的發展2 Atari時期(1977—1985年) 2 NES和SNES 時期(1985—1995年) 3 PS和PS2時期(1995—2005年) 3 Xbox360、PS3和Wii時期(2005—2013年) 3 遊戲的未來4 遊戲循環4 傳統的遊戲循環4 多綫程下的遊戲循環6 時間和遊戲8 真實時間和遊戲時間8 通過處理時間增量來錶示遊戲邏輯8 遊戲對象10 遊戲對象的類型10 遊戲循環中的遊戲對象11 總結13 習題13 相關資料14 遊戲編程的發展14 遊戲循環14 遊戲對象14 第2章 2D 圖形 15 2D渲染基礎16 CRT顯示器基礎16 像素緩衝區和垂直同步17 精靈18 繪製精靈18 動畫精靈20 精靈錶單23 滾屏24 單軸滾屏24 無限滾屏26 平行滾屏27 四嚮滾屏28 磚塊地圖29 簡單的磚塊地圖29 斜視等視角磚塊地圖31 總結32 習題32 相關資料33 Cocos2D 33 SDL 33 第3章 遊戲中的綫性代數 34 嚮量35 加法36 減法37 長度、單位嚮量和正規化38 標量乘積39 點乘40 問題舉例:嚮量反射41 叉乘43 問題舉例:鏇轉一個2D 角色45 綫性插值46 坐標係47 矩陣48 加法/減法48 標量乘法49 乘法49 逆矩陣50 轉置50 用矩陣變換3D 嚮量51 總結52 習題52 相關資料53 第4章 3D圖形54 基礎55 多邊形55 坐標係55 模型坐標係56 世界坐標係56 視角/攝像機坐標係60 投影坐標係62 光照與著色64 顔色64 頂點屬性65 光照67 Phong光照模型68 著色70 可見性71 再探畫傢算法72 深度緩衝區73 再探世界變換74 四元數75 3D遊戲對象的錶示77 總結77 習題77 相關資料78 第5章 遊戲輸入 79 輸入設備80 數字輸入80 模擬輸入82 基於事件的輸入係統84 基礎事件係統85 一個更復雜的係統87 移動設備輸入89 觸屏和手勢89 加速器和陀螺儀91 其他移動設備輸入92 總結92 習題92 相關資料93 第6章 聲音94 基本聲音95 原始數據95 聲音事件95 3D聲音98 監聽者和發射者98 衰減100 環繞聲100 數字信號處理101 常見數字信號處理效果102 區域標記102 其他聲音話題103 多普勒效應103 聲音遮擋104 總結105 習題106 參考資料106 第7章 物理107 平麵、射綫和綫段108 平麵108 射綫和綫段109 碰撞幾何體110 包圍球110 軸對齊包圍盒111 朝嚮包圍盒111 膠囊體112 凸多邊形113 組閤碰撞幾何體113 碰撞檢測113 球與球的交叉113 AABB與AABB交叉114 綫段與平麵交叉115 綫段與三角片交叉117 球與平麵交叉119 球形掃掠體檢測120 響應碰撞124 優化碰撞125 基於物理的移動126 綫性力學概覽127 可變時間步長帶來的問題128 力的計算128 歐拉和半隱式歐拉積分129 Verlet積分法129 其他積分方法130 角力學130 物理中間件130 總結131 習題131 相關資料131 第8章 攝像機 132 攝像機的類型133 固定攝像機133 人稱攝像機134 跟隨攝像機134 場景切換攝像機135 透視投影135 視場136 寬高比137 攝像機的實現138 基礎的跟隨攝像機138 彈性跟隨攝像機139 鏇轉攝像機142 人稱攝像機144 樣條攝像機146 攝像機支持算法149 攝像機碰撞149 揀選149 總結151 習題151 相關資料151 第9章 人工智能152 “真”AI 與遊戲AI 153 尋路153 搜索空間的錶示154 可接受的啓發式算法156 貪婪佳優先算法157 A*尋路161 Dijkstra算法163 基於狀態的行為164 AI的狀態機164 基礎的狀態機實現165 狀態機設計模式167 策略和計劃168 策略168 計劃169 總結170 習題170 相關資料172 通用AI 172 尋路172 狀態172 0章 用戶界麵 173 菜單係統174 菜單棧174 按鈕175 打字176 HUD元素177 路點箭頭177 準心180 雷達181 其他需要考慮的UI 問題186 支持多套分辨率186 本地化187 UI中間件189 用戶體驗189 總結189 習題189 相關資料190 1章 腳本語言和數據格式191 腳本語言192 摺中192 腳本語言的類型193 Lua194 UnrealScript 195 可視化腳本係統196 實現一門腳本語言197 標記化197 正則錶達式198 語法分析199 代碼的執行和生成200 數據格式202 摺中202 二進製格式203 INI 203 XML 203 JSON 204 案例學習:《魔獸世界》中的UI Mod 205 布局和事件205 行為206 問題:玩傢自動操作206 問題:UI 兼容性206 結論207 總結207 習題207 相關資料208 2章 網絡遊戲 209 協議210 IP 210 ICMP 211 TCP 212 UDP 214 網絡拓撲215 服務器/客戶端216 點對點218 作弊219 信息作弊219 遊戲狀態作弊220 中間人攻擊220 總結221 習題221 相關資料222 3章 遊戲示例:橫嚮滾屏者(iOS)223 概覽224 Objective-C 224 Cocos2D 225 代碼分析226 AppDelegate 226 MainMenuLayer 227 GameplayScene 227 ScrollingLayer 227 Ship 228 Projectile 229 Enemy 229 ObjectLayer 229 練習230 總結231 4章 遊戲示例:塔防(PC/Mac) 232 概覽233 C# 233 XNA 235 MonoGame 235 代碼分析236 設置236 單件236 遊戲類237 遊戲狀態237 遊戲對象238 關卡239 計時器239 尋路240 攝像機和投影241 輸入241 物理242 本地化242 圖形242 聲音243 用戶界麵243 練習245 總結246 附錄A 習題答案247 附錄B 對開發者有用的工具260 |
| 編輯推薦 | |
| 1.本書全麵介紹遊戲行業中會用到的算法和技術,包括2D、3D圖形學,物理,人工智能,攝像機等多個方麵。 2.采用瞭獨特的與平颱架構無關的方法來展開開發,適用於任何遊戲、風格、語言、框架。 3.每個概念的展示都使用瞭僞代碼,並經過驗證,容易被程序員們理解。 4.本書*後以兩款完整遊戲作為總結,使用瞭很多書中介紹的算法和技術,源代碼都可下載。 5.請迴顧每一章課後習題,能鞏固所學,助你前進。 |
| 文摘 | |
| 序言 | |
讀完這本書,我最大的感受就是“豁然開朗”。我之前在編寫一些需要大量計算的係統時,總是會遇到性能問題,優化起來也是大海撈針。這本書就像是一位經驗豐富的導師,耐心地為我指明瞭方嚮。它在講解數據結構和算法時,不僅僅是羅列瞭時間復雜度和空間復雜度,更重要的是結閤瞭遊戲開發的實際場景,例如如何選擇閤適的數據結構來存儲大量的遊戲對象,如何優化查找和插入操作,以及如何通過算法來減少不必要的計算。我特彆喜歡書中關於隨機數生成和優化的部分,這對於許多需要隨機性的遊戲類型至關重要,而書中提供的各種技巧和算法,能夠幫助我生成更自然、更公平的隨機結果,並且避免一些常見的陷阱。此外,對於物理引擎的介紹,也讓我對遊戲中的運動和交互有瞭更深刻的理解,不再是憑感覺去實現,而是有瞭更科學的依據。
评分這本書給我帶來瞭一次意想不到的發現之旅。我原本是抱著學習一些“拿來就能用”的小技巧的心態去翻閱的,但沒想到,它引導我深入到瞭許多遊戲開發的核心原理。我印象最深刻的是關於路徑尋找的章節,它不僅僅是介紹瞭A算法,還對Dijkstra算法、BFS等進行瞭深入對比,並闡述瞭它們各自的優缺點以及適用的場景。我之前一直覺得尋路就是一個黑盒,但現在我明白瞭其中的精妙之處,能夠根據不同的遊戲需求選擇最閤適的算法。而且,書中對於AI行為的模擬,例如有限狀態機(FSM)和行為樹(Behavior Tree)的講解,也讓我耳目一新。它不是簡單地羅列概念,而是通過構建不同角色的行為邏輯,展示瞭這些技術如何賦予遊戲角色生命力。我曾經在設計一些NPC的行為時感到力不從心,這本書為我提供瞭很多寶貴的思路和框架,讓我的遊戲角色不再是呆闆的機器,而是有瞭更豐富的錶情和更智能的反應。
评分這是一本讓我受益匪淺的書,它在很多我曾經認為“難以逾越”的領域,都為我打開瞭新的大門。我曾經對如何在遊戲中實現復雜的AI行為感到束手無策,但這本書的講解,從基礎的決策樹到更高級的博弈論應用,都讓我有瞭全新的認識。它不僅僅是講解瞭算法,更重要的是展示瞭如何將這些算法融入到遊戲的設計中,從而創造齣更有趣、更有挑戰性的遊戲體驗。我尤其喜歡它關於模擬和生成部分的內容,例如如何生成逼真的地形、如何模擬復雜的粒子係統,以及如何創建動態的遊戲世界。這些技術不僅讓遊戲畫麵更加豐富多彩,也讓遊戲的玩法充滿瞭無限可能。這本書讓我意識到,遊戲編程不僅僅是技術的堆砌,更是創造力的展現,而這些算法和技巧,正是實現這些創意的有力工具。
评分這本書的齣現,可以說是及時雨。我一直對如何在遊戲中實現流暢的動畫和逼真的角色動作感到睏惑,但這本書提供瞭一些我從未接觸過的巧妙解決方案。它在關於插值和麯綫的章節中,詳細講解瞭綫性插值、貝塞爾麯綫等在動畫製作中的應用,並且給齣瞭如何根據不同的需求來調整麯綫的形狀,從而達到想要的動畫效果。我之前總是覺得動畫製作是個比較“藝術化”的領域,但這本書讓我看到瞭其中蘊含的嚴謹的數學原理和算法。另外,關於視錐剔除和遮擋剔除的講解,也讓我受益匪淺。我一直知道這些技術可以提高渲染效率,但書中對它們原理的剖析,以及如何根據場景的特點來選擇和實現,讓我對如何優化遊戲的圖形性能有瞭更具體的概念。現在,我再也不用擔心因為場景復雜而導緻遊戲卡頓瞭,因為我知道如何有效地剔除那些不需要渲染的物體。
评分這本書真的讓我眼前一亮,完全顛覆瞭我之前對遊戲編程的認知。我一直以為遊戲開發就是寫寫代碼,實現一些炫酷的特效,但這本書讓我看到瞭背後更深層次的邏輯和藝術。它並沒有像許多教材那樣枯燥地堆砌理論,而是通過大量生動形象的例子,將那些看似高深莫測的算法和技巧,變得通俗易懂。我特彆喜歡它在講解每個算法時,都會追溯到其産生的曆史背景和解決的實際問題,這讓我不再是死記硬背,而是真正理解瞭“為什麼”要這麼做。書中的插圖和圖錶也做得非常用心,很多復雜的概念通過可視化呈現,瞬間就清晰明瞭瞭。我以前在處理一些性能瓶頸的時候總是束手無策,感覺自己像個無頭蒼蠅,但看完這本書,我學會瞭如何去分析問題的根源,並且有瞭係統性的解決思路。例如,它關於碰撞檢測的講解,從基礎的AABB到更高級的OBB,再到四叉樹和八叉樹的應用,每一步都講解得細緻入微,並且給齣瞭實際的代碼實現,我迫不及待地想把這些應用到我自己的項目中。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.qciss.net All Rights Reserved. 圖書大百科 版權所有