出版時間:2012-9 出版社:人民郵電出版社 作者:Mat Buckland 頁數(shù):362 字數(shù):702000 譯者:羅岱
Tag標簽:無
內(nèi)容概要
《游戲人工智能編程案例精粹(修訂版)》是游戲人工智能方面的經(jīng)典之作,暢銷多年。它展示了如何在游戲中利用專業(yè)人工智能技術(shù),并針對實際困難問題,給出了強有力的解決方法?! 队螒蛉斯ぶ悄芫幊贪咐?修訂版)》主要講述如何使游戲中的角色具有智能的技術(shù)。本書首先介紹游戲角色的基本屬性(包括速度、質(zhì)量等物理屬性)及常用數(shù)學(xué)方法。接著,深入探討游戲智能體狀態(tài)機的實現(xiàn)。通過簡單足球游戲?qū)嵗?,本書給出用狀態(tài)機實現(xiàn)游戲AI的例子。在圖論部分,本書詳細介紹圖在游戲中的用途及各種不同的圖搜索算法,并用一章的篇幅討論了游戲中路徑規(guī)劃是如何完成的。此外,本書還對目標驅(qū)動的智能體的實現(xiàn)、觸發(fā)器與模糊邏輯在游戲中的運用進行了討論。為使智能體行為更加豐富、靈活、易于實現(xiàn),本書還介紹了游戲腳本語言的優(yōu)點,并以Lua腳本語言為例進行了說明?! 队螒蛉斯ぶ悄芫幊贪咐?修訂版)》適合對游戲AI開發(fā)感興趣的愛好者和游戲AI開發(fā)人員閱讀和參考。
作者簡介
Mat Buckland是一位自由職業(yè)程序員和技術(shù)作家。他在20世紀80年代為ZX Spectrum編寫Waddington’s
Monopoly的時候,對AI產(chǎn)生了興趣,多年以來,他對于讓計算機“思考”的熱情絲毫沒有減退。他是AI Techniques for
Game Programming一書的作者,也是專注于AI教程的知名網(wǎng)站ai-junkie.com的創(chuàng)始人。他是AI
Interface Standards Committee的成員,還是European Game Developers
Conference圓桌會議的主持人。
書籍目錄
第1章 數(shù)學(xué)和物理學(xué)初探
1.1 數(shù)學(xué)
1.1.1 笛卡爾坐標系
1.1.2 函數(shù)和方程
1.1.3 三角學(xué)
1.1.4 矢量
1.1.5 局部空間和世界空間
1.2 物理學(xué)
1.2.1 時間
1.2.2 距離
1.2.3 質(zhì)量
1.2.4 位置
1.2.5 速度
1.2.6 加速度
1.2.7 力
1.3 總結(jié)
第2章 狀態(tài)驅(qū)動智能體設(shè)計
2.1 什么是有限狀態(tài)機
2.2 有限狀態(tài)機的實現(xiàn)
2.2.1 狀態(tài)變換表
2.2.2 內(nèi)置的規(guī)則
2.3 West World項目
2.3.1 BaseGameEntity類
2.3.2 Miner類
2.3.3 Miner狀態(tài)
2.3.4 重訪問的狀態(tài)設(shè)計模式
2.4 使State基類可重用
2.5 全局狀態(tài)和狀態(tài)翻轉(zhuǎn)(State Blip)
2.6 創(chuàng)建一個StateMachine類
2.7 引入Elsa
2.8 為你的FSM增加消息功能
2.8.1 Telegram的結(jié)構(gòu)
2.8.2 礦工Bob和Elsa交流
2.8.3 消息發(fā)送和管理
2.8.4 消息處理
2.8.5 Elsa做晚飯
2.8.6 總結(jié)
第3章 如何創(chuàng)建自治的可移動游戲智能體
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 加權(quán)截斷總和(Weighted Truncated Sum)
3.6.2 帶優(yōu)先級的加權(quán)截斷累計(Weighted Truncated Running Sum with
Prioritization)
3.6.3 帶優(yōu)先級的抖動(Prioritized Dithering)
3.7 確保無重疊
3.8 應(yīng)對大量交通工具:空間劃分
3.9 平滑
第4章 體育模擬(簡單足球)
4.1 簡單足球的環(huán)境和規(guī)則
4.1.1 足球場
4.1.2 球門
4.1.3 足球
4.2 設(shè)計AI
4.2.1 SoccerTeam類
4.2.2 場上隊員
4.2.3 守門員
4.2.4 AI使用到的關(guān)鍵方法
4.3 使用估算和假設(shè)
4.4 總結(jié)
第5章 圖的秘密生命
5.1 圖
5.1.1 一個更規(guī)范化的描述
5.1.2 樹
5.1.3 圖密度
5.1.4 有向圖(Digraph)
5.1.5 游戲AI中的圖
5.2 實現(xiàn)一個圖類
5.2.1 圖節(jié)點類(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 總結(jié)
第6章 用腳本,還是不用?這是一個問題
6.1 什么是腳本語言
6.2 腳本語言能為你做些什么
6.2.1 對話流
6.2.2 舞臺指示(Stage Direction)
6.2.3 AI邏輯
6.3 在Lua中編寫腳本
6.3.1 為使用Lua設(shè)置編譯器
6.3.2 起步
6.3.3 Lua中的石頭剪子布
6.3.4 與C/C++接口
6.3.5 Luabind來救援了!
6.4 創(chuàng)建一個腳本化的有限狀態(tài)自動機
6.4.1 它如何工作?
6.4.2 狀態(tài)(State)
6.5 有用的鏈接
6.6 并不是一切都這么美妙
6.7 總結(jié)
第7章 概覽《掠奪者》游戲
7.1 關(guān)于這個游戲
7.2 游戲體系結(jié)構(gòu)概述
7.2.1 Raven_Game類
7.2.2 掠奪者地圖
7.2.3 掠奪者武器
7.2.4 彈藥(Projectile)
7.3 觸發(fā)器
7.3.1 觸發(fā)器范圍類(TriggerRegion)
7.3.2 觸發(fā)器類(Trigger)
7.3.3 再生觸發(fā)器(Respawning Trigger)
7.3.4 供給觸發(fā)器(Giver-Trigger)
7.3.5 武器供給器(Weapon Givers)
7.3.6 健康值供給器(Health Giver)
7.3.7 限制生命期觸發(fā)器(Limited Lifetime Trigger)
7.3.8 聲音通告觸發(fā)器(Sound Notification Trigger)
7.3.9 管理觸發(fā)器:觸發(fā)器系統(tǒng)(TriggerSystem)類
7.4 AI設(shè)計的考慮
7.5 實現(xiàn)AI
7.5.1 制定決策(Decision Making)
7.5.2 移動(Movement)
7.5.3 路徑規(guī)劃(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 總結(jié)
第8章 實用路徑規(guī)劃
8.1 構(gòu)建導(dǎo)航圖
8.1.1 基于單元
8.1.2 可視點
8.1.3 擴展圖形
8.1.4 導(dǎo)航網(wǎng)
8.2 《掠奪者》游戲?qū)Ш綀D
8.2.1 粗顆粒狀的圖
8.2.2 細粒狀的圖
8.2.3 為《掠奪者》導(dǎo)航圖添加物件
8.2.4 為加速就近查詢而使用空間分割
8.3 創(chuàng)建路徑規(guī)劃類
8.3.1 規(guī)劃到達一個位置的一條路徑
8.3.2 規(guī)劃路徑到達一個物件類型
8.4 節(jié)點式路徑或邊式路徑
8.4.1 注釋邊類示例
8.4.2 修改路徑規(guī)劃器類以容納注釋邊
8.4.3 路徑平滑
8.4.4 降低CPU資源消耗的方法
8.5 走出困境狀態(tài)
8.6 總結(jié)
第9章 目標驅(qū)動智能體行為
9.1 勇士埃里克的歸來
9.2 實現(xiàn)
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 狀態(tài)存儲
9.5.3 命令排隊
9.5.4 用隊列編寫腳本行為
9.6 總結(jié)
第10章 模糊邏輯
10.1 普通集合
集合運算符
10.2 模糊集合
10.2.1 用隸屬函數(shù)來定義模糊的邊界
10.2.2 模糊集合運算符
10.2.3 限制詞
10.3 模糊語言變量
10.4 模糊規(guī)則
10.4.1 為武器的選擇設(shè)計模糊語言變量
10.4.2 為武器的選擇設(shè)計規(guī)則集
10.4.3 模糊推理
10.5 從理論到應(yīng)用:給一個模糊邏輯模塊編碼
10.5.1 模糊模塊類(FuzzyModule)
10.5.2 模糊集合基類(FuzzySet)
10.5.3 三角形的模糊集合類
10.5.4 右肩模糊集合類
10.5.5 創(chuàng)建一個模糊語言變量類
10.5.6 為建立模糊規(guī)則而設(shè)計類
10.6 《掠奪者》中是如何使用模糊邏輯類的
10.7 庫博方法
10.7.1 模糊推理和庫博方法
10.7.2 實現(xiàn)
10.8 總結(jié)
附錄A C++模板
附錄B UML類圖
附錄C 設(shè)置你的開發(fā)環(huán)境
跋
參考文獻
編輯推薦
亞馬遜連續(xù)多年游戲開發(fā)暢銷圖書游戲開發(fā)圖書的經(jīng)典之作AI技術(shù)在游戲中應(yīng)用的經(jīng)典案例合集針對實際難題提供權(quán)威的專業(yè)解決方案引導(dǎo)讀者學(xué)習(xí)使用C++變成語言設(shè)計、編程和實現(xiàn)游戲人工智能的過程讀者可以從http://www.jblearning.com/catalog/9781556220784/下載本書的配套示例代碼。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載