遊戲中的人工智慧(第3版)

遊戲中的人工智慧(第3版)

《遊戲中的人工智慧(第3版)》是2021年清華大學出版社出版的圖書,作者是[美]伊恩·米林頓(Ian Millington)。

基本介紹

  • 中文名: 遊戲中的人工智慧(第3版)
  • 作者:[美]伊恩·米林頓(Ian Millington)
  • 出版時間:2021年
  • 出版社: 清華大學出版社
  • ISBN: 9787302582069  
  • 定價:199 元
內容簡介,圖書目錄,

內容簡介

《遊戲中的人工智慧(第3版)》詳細闡述了與遊戲人工智慧相關的基本解決方案,主要包括遊戲AI、移動、路徑發現、決策、戰略和戰術AI、學習、程式化內容生成、棋盤遊戲、執行管理、世界接口、工具和內容創建、遊戲AI編程、遊戲AI設計、基於AI的遊戲類型等內容。此外,本書還提供了相應的示例,以幫助讀者進一步理解相關方案的實現過程。
本書適合作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學讀物和參考手冊。

圖書目錄

第1部分 AI和遊戲
第1章 導論 3
1.1 AI的定義 4
1.1.1 學術派AI 5
1.1.2 遊戲AI 9
1.2 遊戲AI模型 11
1.2.1 移動 12
1.2.2 決策 13
1.2.3 策略 13
1.2.4 基礎架構 14
1.2.5 基於代理的AI 14
1.2.6 該模型在本書中的意義 15
1.3 算法和數據結構 15
1.3.1 算法 16
1.3.2 表示方式 18
1.3.3 實現 19
1.4 本書的布局結構 20
第2章 遊戲AI 21
2.1 複雜度謬誤 21
2.1.1 簡單的AI也能做得很好 21
2.1.2 複雜的AI也可能很糟糕 22
2.1.3 感知視窗 23
2.1.4 行為的變化 24
2.2 遊戲中的AI類型 24
2.2.1 借鑑技術 25
2.2.2 啟發式方法 26
2.2.3 算法 28
2.3 速度和記憶體限制 28
2.3.1 處理器問題 29
2.3.2 低級語言問題 29
2.3.3 記憶體問題 31
2.3.4 平台 33
2.4 遊戲AI引擎 36
2.4.1 遊戲AI引擎的結構 37
2.4.2 工具問題 38
2.4.3 綜述 39
第2部分 技 術
第3章 移動 43
3.1 移動算法基礎 44
3.1.1 二維移動 45
3.1.2 靜止狀態 46
3.1.3 運動學 49
3.2 運動學移動算法 52
3.2.1 尋找 53
3.2.2 漫遊 56
3.3 轉向行為 58
3.3.1 轉向基礎知識 58
3.3.2 變數匹配 59
3.3.3 尋找和逃跑 60
3.3.4 到達 62
3.3.5 對齊 65
3.3.6 速度匹配 68
3.3.7 委託行為 69
3.3.8 追逐和躲避 70
3.3.9 朝向 73
3.3.10 直視移動的方向 74
3.3.11 漫遊 75
3.3.12 路徑跟隨 77
3.3.13 分離 82
3.3.14 避免碰撞 85
3.3.15 避開障礙物和避免撞牆 90
3.3.16 小結 94
3.4 組合轉向行為 95
3.4.1 混合和仲裁 95
3.4.2 加權混合 96
3.4.3 優先權 101
3.4.4 合作仲裁 104
3.4.5 轉向管道 106
3.5 預測物理 117
3.5.1 瞄準和射擊 118
3.5.2 拋射物軌跡 118
3.5.3 射擊問題求解 120
3.5.4 具有阻力的拋射物 123
3.5.5 疊代定位目標 125
3.6 跳躍 131
3.6.1 跳躍點 131
3.6.2 著陸墊 134
3.6.3 坑洞填充物 138
3.7 協調移動 139
3.7.1 固定編隊 140
3.7.2 可擴展的格式 141
3.7.3 自然編隊 142
3.7.4 兩級編隊轉向 143
3.7.5 實現 146
3.7.6 擴展到兩個以上的級別 151
3.7.7 槽位的職業角色和更好的分配 153
3.7.8 槽位分配 156
3.7.9 動態槽位和隊形 160
3.7.10 戰術移動 162
3.8 馬達控制 165
3.8.1 輸出過濾 165
3.8.2 與能力匹配的轉向 167
3.8.3 常見執行屬性 169
3.9 第三維中的移動 171
3.9.1 三維旋轉 172
3.9.2 將轉向行為轉換為三維 173
3.9.3 對齊 174
3.9.4 對齊向量 175
3.9.5 朝向行為 176
3.9.6 直視移動的方向 179
3.9.7 漫遊 179
3.9.8 假旋轉軸 181
3.10 習題 185
第4章 路徑發現 189
4.1 路徑發現圖形 190
4.1.1 圖形 190
4.1.2 加權圖形 191
4.1.3 有向加權圖形 194
4.1.4 術語 195
4.1.5 表示方式 195
4.2 迪傑斯特拉算法 196
4.2.1 問題 197
4.2.2 算法 198
4.2.3 偽代碼 202
4.2.4 數據結構和接口 205
4.2.5 迪傑斯特拉算法的性能 206
4.2.6 弱點 207
4.3 A*算法 208
4.3.1 問題 208
4.3.2 算法 208
4.3.3 偽代碼 212
4.3.4 數據結構和接口 216
4.3.5 實現說明 220
4.3.6 算法性能 220
4.3.7 節點數組A*算法 221
4.3.8 選擇啟發式算法 223
4.4 遊戲世界的表示方式 230
4.4.1 圖塊圖形 232
4.4.2 狄利克雷域 234
4.4.3 可見性點 236
4.4.4 導航格線 238
4.4.5 非平移問題 242
4.4.6 成本函式 243
4.4.7 路徑平滑 244
4.5 改進A*算法 246
4.6 分層路徑發現技術 247
4.6.1 分層路徑發現圖形 248
4.6.2 分層圖形上的路徑發現 251
4.6.3 基於排除法的分層路徑發現技術 254
4.6.4 分層結構對路徑發現的奇怪影響 255
4.6.5 實例幾何 257
4.7 路徑發現中的其他思路 263
4.7.1 開放目標路徑發現 263
4.7.2 動態路徑發現 263
4.7.3 其他類型的信息重用 264
4.7.4 低記憶體算法 265
4.7.5 可中斷路徑發現 266
4.7.6 匯集路徑規劃請求 266
4.8 連續時間路徑發現 267
4.8.1 問題 268
4.8.2 算法 269
4.8.3 實現說明 272
4.8.4 性能 273
4.8.5 弱點 273
4.9 關於移動路徑規劃 273
4.9.1 動作 274
4.9.2 移動路徑規劃 275
4.9.3 示例 276
4.9.4 腳步規劃 278
4.10 習題 278
第5章 決策 283
5.1 決策概述 283
5.2 決策樹 284
5.2.1 問題 285
5.2.2 算法 285
5.2.3 偽代碼 290
5.2.4 知識的表示方式 292
5.2.5 實現節點 292
5.2.6 決策樹的性能 293
5.2.7 平衡決策樹 293
5.2.8 超越決策樹 294
5.2.9 隨機決策樹 295
5.3 狀態機 297
5.3.1 問題 299
5.3.2 算法 299
5.3.3 偽代碼 300
5.3.4 數據結構和接口 301
5.3.5 性能 303
5.3.6 實現說明 303
5.3.7 硬編碼的FSM 304
5.3.8 分層狀態機 306
5.3.9 組合決策樹和狀態機 319
5.4 行為樹 321
5.4.1 實現行為樹 328
5.4.2 偽代碼 328
5.4.3 裝飾器 332
5.4.4 並發和計時 338
5.4.5 向行為樹添加數據 347
5.4.6 重用行為樹 351
5.4.7 行為樹的局限性 356
5.5 模糊邏輯 357
5.5.1 討論之前的重要說明 358
5.5.2 模糊邏輯簡介 358
5.5.3 模糊邏輯決策 367
5.5.4 模糊狀態機 376
5.6 馬爾可夫系統 381
5.6.1 馬爾可夫過程 382
5.6.2 馬爾可夫狀態機 384
5.7 面向目標的行為 386
5.7.1 面向目標的行為概述 387
5.7.2 簡單選擇 389
5.7.3 整體效用 391
5.7.4 計時 394
5.7.5 整體效用GOAP 398
5.7.6 使用IDA*的GOAP 403
5.7.7 “散發氣味”的GOB 411
5.8 基於規則的系統 413
5.8.1 問題 413
5.8.2 算法 418
5.8.3 偽代碼 419
5.8.4 數據結構和接口 419
5.8.5 規則仲裁 425
5.8.6 統一 428
5.8.7 Rete算法 430
5.8.8 擴展 439
5.8.9 發展前瞻 443
5.9 黑板架構 443
5.9.1 問題 443
5.9.2 算法 444
5.9.3 偽代碼 445
5.9.4 數據結構和接口 446
5.9.5 性能 449
5.9.6 其他的黑板系統 449
5.10 動作執行 450
5.10.1 動作的類型 450
5.10.2 算法 455
5.10.3 偽代碼 456
5.10.4 數據結構和接口 457
5.10.5 實現說明 459
5.10.6 性能 460
5.10.7 綜述 460
5.11 練習 461
第6章 戰略和戰術AI 465
6.1 航點戰術 466
6.1.1 戰術位置 466
6.1.2 使用戰術位置 474
6.1.3 生成航點的戰術屬性 479
6.1.4 自動生成航點 484
6.1.5 簡化算法 485
6.2 戰術分析 489
6.2.1 表示遊戲關卡 489
6.2.2 簡單的影響地圖 490
6.2.3 地形分析 496
6.2.4 用戰術分析學習 498
6.2.5 戰術分析的結構 500
6.2.6 關於地圖覆蓋 504
6.2.7 卷積濾鏡 509
6.2.8 細胞自動機 518
6.3 戰術性路徑發現 524
6.3.1 成本函式 524
6.3.2 戰術權重和關注事項的混合 525
6.3.3 修改路徑發現啟發式算法 527
6.3.4 路徑發現的戰術圖形 528
6.3.5 使用戰術航點 528
6.4 協調動作 529
6.4.1 多層AI 530
6.4.2 自發合作 536
6.4.3 編寫群體動作的腳本 538
6.4.4 軍事戰術 543
6.5 習題 545
第7章 學習 549
7.1 關於機器學習的基礎知識 549
7.1.1 線上或離線學習 549
7.1.2 行為內學習 550
7.1.3 行為間學習 551
7.1.4 對機器學習套用的警告 551
7.1.5 過度學習 552
7.1.6 混雜的學習算法 552
7.1.7 工作量的平衡 552
7.2 參數修改 553
7.2.1 參數地形 553
7.2.2 爬山算法 555
7.2.3 基本爬山算法的擴展 558
7.2.4 退火技術 561
7.3 動作預測 565
7.3.1 左還是右 565
7.3.2 原始機率 566
7.3.3 字元串匹配 566
7.3.4 N-Gram預測器 567
7.3.5 視窗大小 570
7.3.6 分層N-Gram 572
7.3.7 在格鬥遊戲中的套用 575
7.4 決策學習 575
7.4.1 決策學習的結構 575
7.4.2 應該學習的東西 576
7.4.3 4種技術 576
7.5 樸素貝葉斯分類算法 577
7.5.1 偽代碼 580
7.5.2 實現說明 582
7.6 決策樹學習 582
7.6.1 ID3 583
7.6.2 具有連續屬性的ID3 590
7.6.3 增量決策樹學習 595
7.7 強化學習 599
7.7.1 問題 599
7.7.2 算法 600
7.7.3 偽代碼 603
7.7.4 數據結構和接口 604
7.7.5 實現說明 605
7.7.6 性能 605
7.7.7 適應性調整參數 605
7.7.8 弱點和現實套用 609
7.7.9 強化學習中的其他思路 611
7.8 人工神經網路 613
7.8.1 概述 615
7.8.2 問題 617
7.8.3 算法 618
7.8.4 偽代碼 622
7.8.5 數據結構和接口 624
7.8.6 實現警告 626
7.8.7 性能 626
7.8.8 其他方法 626
7.9 深度學習 630
7.9.1 深度學習的定義 631
7.9.2 數據 632
7.10 習題 634
第8章 程式化內容生成 639
8.1 偽隨機數 641
8.1.1 數值混合和遊戲種子 641
8.1.2 霍爾頓序列 643
8.1.3 葉序的角度 646
8.1.4 泊松圓盤 647
8.2 Lindenmayer系統 651
8.2.1 簡單的L系統 651
8.2.2 將隨機性添加到L系統 655
8.2.3 特定階段的規則 657
8.3 地形生成 659
8.3.1 修飾器和高度圖 659
8.3.2 噪聲 660
8.3.3 佩林噪聲 661
8.3.4 斷層 664
8.3.5 熱侵蝕 666
8.3.6 水力侵蝕 667
8.3.7 高地過濾 672
8.4 地下城與迷宮的生成 676
8.4.1 深度優先的回溯迷宮 677
8.4.2 最小生成樹算法 687
8.4.3 遞歸細分 692
8.4.4 生成和測試 696
8.5 形狀語法 697
8.5.1 運行語法 700
8.5.2 規劃 703
8.6 練習 707
第9章 棋盤遊戲 709
9.1 博弈論 710
9.1.1 遊戲類型 710
9.1.2 博弈樹 712
9.2 極小極大化算法 714
9.2.1 靜態評估函式 714
9.2.2 關於極小極大化 716
9.2.3 使用極小極大化算法 717
9.2.4 負值最大化算法 720
9.2.5 AB修剪 722
9.2.6 AB搜尋視窗 726
9.2.7 負值偵察 727
9.3 置換表和記憶體 730
9.3.1 哈希遊戲狀態 731
9.3.2 哈希表中存儲的內容 733
9.3.3 哈希表實現 734
9.3.4 替換策略 736
9.3.5 完整的置換表 736
9.3.6 置換表的問題 737
9.3.7 使用對手的思考時間 738
9.4 記憶體增強型測試算法 738
9.4.1 實現測試 738
9.4.2 MTD算法 740
9.4.3 偽代碼 742
9.5 蒙特卡洛樹搜尋 743
9.5.1 純蒙特卡洛樹搜尋 743
9.5.2 添加知識 748
9.6 開局庫和其他固定進攻戰術 750
9.6.1 實現開局庫 750
9.6.2 學習開局庫 751
9.6.3 固定進攻戰術庫 751
9.7 進一步最佳化 752
9.7.1 疊代加深 752
9.7.2 可變深度算法 753
9.8 遊戲知識 755
9.8.1 創建靜態評估函式 757
9.8.2 學習靜態評估函式 760
9.9 回合制策略遊戲 764
9.9.1 不可能的樹大小 764
9.9.2 回合制遊戲中的實時AI 765
9.10 習題 766
第3部分 支 持 技 術
第10章 執行管理 769
10.1 調度 769
10.1.1 調度程式 770
10.1.2 可中斷進程 776
10.1.3 負載平衡調度程式 779
10.1.4 分層調度 781
10.1.5 優先權調度 782
10.2 隨時算法 785
10.3 細節層次 786
10.3.1 圖形細節層次 786
10.3.2 關於AI中的細節層次技術 787
10.3.3 調度細節層次 788
10.3.4 行為細節層次 789
10.3.5 群體細節層次 794
10.3.6 總結 797
10.4 習題 797
第11章 世界接口 799
11.1 通信 799
11.1.1 輪詢 800
11.1.2 事件 800
11.1.3 確定使用的方法 801
11.2 事件管理器 802
11.2.1 實現 804
11.2.2 事件播送 807
11.2.3 代理間通信 809
11.3 輪詢站點 809
11.3.1 偽代碼 810
11.3.2 性能 811
11.3.3 實現說明 811
11.3.4 抽象輪詢 811
11.4 感知管理 813
11.4.1 模擬才是王道 813
11.4.2 內部知識和外部知識 814
11.4.3 感知形態 815
11.4.4 區域感知管理器 820
11.4.5 有限元模型感知管理器 828
11.5 習題 835
第12章 工具和內容創建 837
12.1 關於工具鏈 837
12.1.1 工具鏈限制AI 837
12.1.2 AI知識的來源 838
12.2 路徑發現和航點戰術的知識 838
12.2.1 手動創建區域數據 839
12.2.2 自動圖形創建 841
12.2.3 幾何分析 841
12.2.4 數據挖掘 844
12.3 關於移動的知識 847
12.3.1 障礙問題 847
12.3.2 高級調度 848
12.4 關於決策的知識 849
12.4.1 對象類型 849
12.4.2 具體動作 849
12.5 工具鏈 850
12.5.1 集成遊戲引擎 851
12.5.2 自定義數據驅動的編輯器 853
12.5.3 AI設計工具 854
12.5.4 遠程調試 855
12.5.5 外掛程式 856
12.6 習題 857
第13章 遊戲AI編程 859
13.1 實現語言 860
13.1.1 C++ 861
13.1.2 C# 861
13.1.3 Swift 863
13.1.4 Java 864
13.1.5 JavaScript 865
13.2 腳本AI 867
13.2.1 腳本AI的定義 869
13.2.2 優秀腳本語言的基本要件 869
13.2.3 嵌入 871
13.2.4 選擇開源語言 871
13.2.5 語言選擇 872
13.3 創建語言 877
13.3.1 優點 878
13.3.2 缺點 878
13.3.3 創建自定義語言的實際操作 879
13.3.4 工具:Lex和Yacc簡介 883
第4部分 設計遊戲AI
第14章 遊戲AI設計 887
14.1 設計 887
14.1.1 示例 888
14.1.2 評估行為 889
14.1.3 選擇技術 891
14.1.4 一款遊戲的範圍 893
14.2 射擊類遊戲 894
14.2.1 移動和射擊 895
14.2.2 決策 897
14.2.3 感知 898
14.2.4 路徑發現和戰術AI 899
14.2.5 射擊類風格遊戲 900
14.2.6 近戰格鬥類遊戲 901
14.3 駕駛類遊戲 904
14.3.1 移動 905
14.3.2 路徑發現和戰術AI 906
14.3.3 類駕駛遊戲 907
14.4 即時戰略類遊戲 907
14.4.1 路徑發現 908
14.4.2 群體移動 909
14.4.3 戰術和戰略AI 909
14.4.4 決策 910
14.4.5 MOBA 911
14.5 體育類遊戲 912
14.5.1 物理預測 913
14.5.2 戰術套路庫和內容創建 914
14.6 回合制戰略遊戲 914
14.6.1 計時 915
14.6.2 幫助玩家 916
第15章 基於AI的遊戲類型 917
15.1 遊戲角色教學 917
15.1.1 表示動作 918
15.1.2 表示遊戲世界 918
15.1.3 學習機制 919
15.1.4 可預測的心理模型和病理狀態 921
15.2 蜂擁算法和放牧遊戲 922
15.2.1 製造生物 922
15.2.2 為互動調整轉向行為 923
15.2.3 轉向行為的穩定性 924
15.2.4 生態系統設計 925
附 錄
參考資料 929
A.1 圖書、期刊、論文和網站 929
A.2 遊戲 934

相關詞條

熱門詞條

聯絡我們