![](/c49/30/1028097372.jpg)
出版社:人民郵電 ISBN:9787115291134 商品編碼:1028097372 開本:16 出版時間:2012-09-01 代碼:79 作者:巴克蘭德,譯者:羅岱
" 基本信息 - 商品名稱:遊戲人工智能編程案例精粹(修訂版)/遊戲設計與開發技術叢書
- 作者:(美)巴克蘭德|譯者:羅岱
- 代碼:79
- 出版社:人民郵電
- ISBN號:9787115291134
其他參考信息 - 出版時間:2012-09-01
- 印刷時間:2012-09-01
- 版次:2
- 印次:1
- 開本:16開
- 包裝:平裝
- 頁數:362
- 字數:702千字
編輯推薦語 《遊戲人工智能編程案例精粹(修訂版)》由Mat Buckland著,羅岱等人譯,它有如下幾個特點。 ·實例豐富:書中介紹的各種遊戲AI技術,都提供了示例的代碼。你可以在自己的計算機上運行示例代碼;本書對代碼的解釋和分析,可以使你*加深入地理解代碼背後的基本原理和相關算法的特點及適用範圍。 ·深入淺出:無論AI還是遊戲程序設計,它們都是非常復雜的技術。遊戲AI則跨越了這兩個領域,並延展出它自身的特點。本書的設計,可使你從一個溫暖舒適的山腳旅館出發,*終抵達白雲飄飄的山頂。雖然你偶爾也可能會迷路,但是,你會發現作者始終抓住了技術的精髓,同時又用簡潔的方式去實現它。 ·語言幽默:技術書籍總是充滿了各種奇怪的符號和晦澀的術語而讓人望而卻步。而你手裡的這本書卻有些不同。作者語言幽默,即使在敘述*為復雜的問題時,他也不會忘記給你開個小玩笑。因此,閱讀本書的過程一定會非常愉快。當然,*重要的是,讀完之後,你會發現自己已經學到了不少東西。 內容提要 《遊戲人工智能編程案例精粹(修訂版)》由Mat Buckland著,羅岱等人 譯,是遊戲人工智能方面的經典之作,暢銷多年。它展示了如何在遊戲中利 用專業人工智能技術,並針對實際困難問題,給出了強有力的解決方法。 《遊戲人工智能編程案例精粹(修訂版)》主要講述如何使遊戲中的角色 具有智能的技術。本書首先介紹遊戲角色的基本屬性(包括速度、質量等物 理屬性)及常用數學方法。接著,深入探討遊戲智能體狀態機的實現。通過 簡單足球遊戲實例,本書給出用狀態機實現遊戲ai的例子。在圖論部分,本 書詳細介紹圖在遊戲中的用途及各種不同的圖搜索算法,並用一章的篇幅討 論了遊戲中路徑規劃是如何完成的。此外,本書還對目標驅動的智能體的實 現、觸發器與模糊邏輯在遊戲中的運用進行了討論。為使智能體行為*加豐 富、靈活、易於實現,本書還介紹了遊戲腳本語言的優點,並以lua腳本語 言為例進行了說明。 《遊戲人工智能編程案例精粹(修訂版)》適合對遊戲ai開發感興趣的愛 好者和遊戲ai開發人員閱讀和參考。 作者簡介 Mat Buckland是一位自由職業程序員和技術作家。他在20世紀80年代為ZX Spectrum編寫Waddington's Monopolyl的時候,對AI產生了興趣,多年以來,他對於讓計算機“思考”的熱情絲毫沒有減退。他是AI Techniques for Game Programming一書的作者,也是專注於AI教程的知名網站ai-junkie.com的創始人。他是AI Interface Standards Committee的成員,還是European Game Developers Conference圓桌會議的主持人。 目錄 **章 數學和物理學初探 1.1 數學 1.1.1 笛卡爾坐標繫 1.1.2 函數和方程 1.1.3 三角學 1.1.4 矢量 1.1.5 局部空間和世界空間 1.2 物理學 1.2.1 時間 1.2.2 距離 1.2.3 質量 1.2.4 位置 1.2.5 速度 1.2.6 加速度 1.2.7 力 1.3 總結 第2章 狀態驅動智能體設計 2.1 什麼是有限狀態機 2.2 有限狀態機的實現 2.2.1 狀態變換表 2.2.2 內置的規則 2.3 west world項目 2.3.1 basegameentity類 2.3.2 miner類 2.3.3 miner狀態 2.3.4 重訪問的狀態設計模式 2.4 使state基類可重用 2.5 全局狀態和狀態翻轉(state blip) 2.6 創建一個statemachine類 2.7 引入elsa 2.8 為你的fsm增加消息功能 2.8.1 telegram的結構 2.8.2 礦工bob和elsa交流 2.8.3 消息發送和管理 2.8.4 消息處理 2.8.5 elsa做晚飯 2.8.6 總結 第3章 如何創建自治的可移動遊戲智能體 3.1 什麼是自治智能體 3.2 交通工具模型 3.3 *新交通工具物理屬性 3.4 操控行為 3.4.1 seek(靠近) 3.4.2 flee(離開) 3.4.3 arrive(抵達) 3.4.4 pursuit(追逐) 3.4.5 evade(逃避) 3.4.6 wander(徘徊) 3.4.7 obstacle avoidance(避開障礙) 3.4.8 wall avoidance(避開牆) 3.4.9 interpose(插入) 3.4.10 hide(隱藏) 3.4.11 path following(路徑跟隨) 3.4.12 offset pursuit(保持一定偏移的追逐) 3.5 組行為(group behaviors) 3.5.1 separation(分離) 3.5.2 alignment(隊列) 3.5.3 cohesion(聚集) 3.5.4 flocking(群集) 3.6 組合操控行為(combining steering behaviors) 3.6.1 加權截斷總和(weighted truncated sum) 3.6.2 帶優先級的加權截斷累計(weighted truncated running sum with prioritization) 3.6.3 帶優先級的抖動(prioritized dithering) 3.7 確保無重疊 3.8 應對大量交通工具:空間劃分 3.9 平滑 第4章 體育模擬(簡單足球) 4.1 簡單足球的環境和規則 4.1.1 足球場 4.1.2 球門 4.1.3 足球 4.2 設計ai 4.2.1 soccerteam類 4.2.2 場上隊員 4.2.3 守門員 4.2.4 ai使用到的關鍵方法 4.3 使用估算和假設 4.4 總結 第5章 圖的秘密生命 5.1 圖 5.1.1 一個*規範化的描述 5.1.2 樹 5.1.3 圖密度 5.1.4 有向圖(digraph) 5.1.5 遊戲ai中的圖 5.2 實現一個圖類 5.2.1 圖節點類(graphnode class) 5.2.2 圖邊類(graphedge class) 5.2.3 稀疏圖類(sparsegraph class) 5.3 圖搜索算法 5.3.1 盲目搜索(uninformed graph searches) 5.3.2 基於開銷的圖搜索(cost-based graph searchs) 5.4 總結 第6章 用腳本,還是不用?這是一個問題 6.1 什麼是腳本語言 6.2 腳本語言能為你做些什麼 6.2.1 對話流 6.2.2 舞臺指示(stage direction) 6.2.3 ai邏輯 6.3 在lua中編寫腳本 6.3.1 為使用lua設置編譯器 6.3.2 起步 6.3.3 lua中的石頭剪子布 6.3.4 與c/c++接口 6.3.5 luabind來救援了! 6.4 創建一個腳本化的有限狀態自動機 6.4.1 它如何工作? 6.4.2 狀態(state) 6.5 有用的鏈接 6.6 並不是一切都這麼美妙 6.7 總結 第7章 概覽《掠奪者》遊戲 7.1 關於這個遊戲 7.2 遊戲體繫結構概述 7.2.1 raven_game類 7.2.2 掠奪者地圖 7.2.3 掠奪者武器 7.2.4 彈藥(projectile) 7.3 觸發器 7.3.1 觸發器範圍類(triggerregion) 7.3.2 觸發器類(trigger) 7.3.3 再生觸發器(respawning trigger) 7.3.4 供給觸發器(giver-trigger) 7.3.5 武器供給器(weapon givers) 7.3.6 健康值供給器(health giver) 7.3.7 限制生命期觸發器(limited lifetime trigger) 7.3.8 聲音通告觸發器(sound notification trigger) 7.3.9 管理觸發器:觸發器繫統(triggersystem)類 7.4 ai設計的考慮 7.5 實現ai 7.5.1 制定決策(decision making) 7.5.2 移動(movement) 7.5.3 路徑規劃(path planning) 7.5.4 感知(perception) 7.5.5 目標選擇(target selection) 7.5.6 武器控制(weapon handling) 7.5.7 把所有東西整合起來 7.5.8 *新ai組件 7.6 總結 第8章 實用路徑規劃 8.1 構建導航圖 8.1.1 8.1.2 可視點 8.1.3 擴展圖形 8.1.4 導航網 8.2 《掠奪者》遊戲導航圖 8.2.1 粗顆粒狀的圖 8.2.2 細粒狀的圖 8.2.3 為《掠奪者》導航圖添加物件 8.2.4 為加速就近查詢而使用空間分割 8.3 創建路徑規劃類 8.3.1 規劃到達一個位置的一條路徑 8.3.2 規劃路徑到達一個物件類型 8.4 節點式路徑或邊式路徑 8.4.1 注釋邊類示例 8.4.2 修改路徑規劃器類以容納注釋邊 8.4.3 路徑平滑 8.4.4 降低cpu資源消耗的方法 8.5 走出困境狀態 8.6 總結 第9章 目標驅動智能體行為 9.1 勇士埃裡克的歸來 9.2 實現 9.2.1 goal_composite::process subgoals 9.2.2 goal_composite::remove allsubgoals 9.3 《掠奪者》角色所使用的目標例子 9.3.1 goal_wander 9.3.2 goal_traverseedge 9.3.3 goal_followpath 9.3.4 goal_movetoposition 9.3.5 goal_attacktarget 9.4 目標仲裁 9.4.1 計算尋找一個健康物件的期望值 9.4.2 計算尋找一種特殊武器的期望值 9.4.3 計算攻擊目標的期望值 9.4.4 計算尋找地圖的期望值 9.4.5 把它們都放在一起 9.5 擴展 9.5.1 個性 9.5.2 狀態存儲 9.5.3 命令排隊 9.5.4 用隊列編寫腳本行為 9.6 總結 **0章 模糊邏輯 10.1 普通集合集合運算符 10.2 模糊集合 10.2.1 用隸屬函數來定義模糊的邊界 10.2.2 模糊集合運算符 10.2.3 限制詞 10.3 模糊語言變量 10.4 模糊規則 10.4.1 為武器的選擇設計模糊語言變量 10.4.2 為武器的選擇設計規則集 10.4.3 模糊推理 10.5 從理論到應用:給一個模糊邏輯模塊編碼 10.5.1 模糊模塊類(fuzzymodule) 10.5.2 模糊集合基類(fuzzyset) 10.5.3 三角形的模糊集合類 10.5.4 右肩模糊集合類 10.5.5 創建一個模糊語言變量類 10.5.6 為建立模糊規則而設計類 10.6 《掠奪者》中是如何使用模糊邏輯類的 10.7 庫博方法 10.7.1 模糊推理和庫博方法 10.7.2 實現 10.8 總結 附錄a c++模板 附錄b uml類圖 附錄c 設置你的開發環境 跋 參考文獻
" |