Artificial Intelligence for Games (Hardcover)
暫譯: 遊戲中的人工智慧 (精裝版)

Ian Millington

  • 出版商: Morgan Kaufmann
  • 出版日期: 2006-06-21
  • 定價: $1,980
  • 售價: 5.0$990
  • 語言: 英文
  • 頁數: 896
  • 裝訂: Hardcover
  • ISBN: 0124977820
  • ISBN-13: 9780124977822
  • 相關分類: 人工智慧
  • 立即出貨(限量)

買這商品的人也買了...

相關主題

商品描述

Description

Creating robust artificial intelligence is one of the greatest challenges for game developers. The commercial success of a game is often dependent upon the quality of the AI, yet the engineering of AI is often begun late in the development process and is frequently misunderstood. In this book, Ian Millington brings extensive professional experience to the problem of improving the quality of AI in games. A game developer since 1987, he was founder of Mindlathe Ltd., at the time the largest specialist AI company in gaming. Ian shows how to think about AI as an integral part of game play. He describes numerous examples from real games and explores the underlying ideas through detailed case studies. He goes further to introduce many techniques little used by developers today. The book's CD-ROM contains a library of C++ source code and demonstration programs, and provides access to a website with a complete commercial source code library of AI algorithms and techniques.

 

Table of Contents

About the Author CONTENTS LIST OF FIGURES PREFACE ACKNOWLEDGMENTS About the CD-ROM PART I AI AND GAMES 1 INTRODUCTION 1.1 WHAT IS AI? 1.1.1 Academic AI 1.1.2 Game AI 1.2 MY MODEL OF GAME AI 1.2.1 Movement 1.2.2 Decision Making 1.2.3 Strategy 1.2.4 Infrastructure 1.2.5 Agent-Based AI 1.2.6 In the Book 1.3 ALGORITHMS, DATA STRUCTURES, AND REPRESENTATIONS 1.3.1 Algorithms 1.3.2 Representations 1.4 ON THE CD 1.4.1 Programs 1.4.2 Libraries 1.5 LAYOUT OF THE BOOK 2 GAME AI 2.1 THE COMPLEXITY FALLACY 2.1.1 When Simple Things Look Good 2.1.2 When Complex Things Look Bad 2.1.3 The Perception Window 2.1.4 Changes of Behavior 2.2 THE KIND OF AI IN GAMES 2.2.1 Hacks 2.2.2 Heuristics 2.2.3 Algorithms 2.3 SPEED AND MEMORY 2.3.1 Processor Issues 2.3.2 Memory Concerns 2.3.3 PC Constraints 2.3.4 Console Constraints 2.4 THE AI ENGINE 2.4.1 Structure of an AI Engine 2.4.2 Toolchain Concerns 2.4.3 Putting It All Together PART II TECHNIQUES 3 MOVEMENT 3.1 THE BASICS OF MOVEMENT ALGORITHMS 3.1.1 Two-Dimensional Movement 3.1.2 Statics 3.1.3 Kinematics 3.2 KINEMATIC MOVEMENT ALGORITHMS 3.2.1 Seek 3.2.2 Wandering 3.2.3 On the CD 3.3 STEERING BEHAVIORS 3.3.1 Steering Basics 3.3.2 Variable Matching 3.3.3 Seek and Flee 3.3.4 Arrive 3.3.5 Align 3.3.6 Velocity Matching 3.3.7 Delegated Behaviors 3.3.8 Pursue and Evade 3.3.9 Face 3.3.10 Looking Where You're Going 3.3.11 Wander 3.3.12 Path Following 3.3.13 Separation 3.3.14 Collision Avoidance 3.3.15 Obstacle and Wall Avoidance 3.3.16 Summary 3.4 COMBINING STEERING BEHAVIORS 3.4.1 Blending and Arbitration 3.4.2 Weighted Blending 3.4.3 Priorities 3.4.4 Cooperative Arbitration 3.4.5 Steering Pipeline 3.5 PREDICTING PHYSICS 3.5.1 Aiming and Shooting 3.5.2 Projectile Trajectory 3.5.3 The Firing Solution 3.5.4 Projectiles with Drag 3.5.5 Iterative Targeting 3.6 JUMPING 3.6.1 Jump Points 3.6.2 Landing Pads 3.6.3 Hole Fillers 3.7 COORDINATED MOVEMENT 3.7.1 Fixed Formations 3.7.2 Scalable Formations 3.7.3 Emergent Formations 3.7.4 Two-Level Formation Steering 3.7.5 Implementation 3.7.6 Extending to More than Two Levels 3.7.7 Slot Roles and Better Assignment 3.7.8 Slot Assignment 3.7.9 Dynamic Slots and Plays 3.7.10 Tactical Movement 3.8 MOTOR CONTROL 3.8.1 Output Filtering 3.8.2 Capability-Sensitive Steering 3.8.3 Common Actuation Properties 3.9 MOVEMENT IN THE THIRD DIMENSION 3.9.1 Rotation in Three Dimensions 3.9.2 Converting Steering Behaviors to Three Dimensions 3.9.3 Align 3.9.4 Align to Vector 3.9.5 Face 3.9.6 Look Where You're Going 3.9.7 Wander 3.9.8 Faking Rotation Axes 4 PATHFINDING 4.1 THE PATHFINDING GRAPH 4.1.1 Graphs 4.1.2 Weighted Graphs 4.1.3 Directed Weighted Graphs 4.1.4 Terminology 4.1.5 Representation 4.2 DIJKSTRA 4.2.1 The Problem 4.2.2 The Algorithm 4.2.3 Pseudo-Code 4.2.4 Data Structures and Interfaces 4.2.5 Performance of Dijkstra 4.2.6 Weaknesses 4.3 A* 4.3.1 The Problem 4.3.2 The Algorithm 4.3.3 Pseudo-Code 4.3.4 Data Structures and Interfaces 4.3.5 Implementation Notes 4.3.6 Algorithm Performance 4.3.7 Node Array A* 4.3.8 Choosing a Heuristic 4.4 WORLD REPRESENTATIONS 4.4.1 Tile Graphs 4.4.2 Dirichlet Domains 4.4.3 Points of Visibility 4.4.4 Polygonal Meshes 4.4.5 Non-Translational Problems 4.4.6 Cost Functions 4.4.7 Path Smoothing 4.5 IMPROVING ON A* 4.6 HIERARCHICAL PATHFINDING 4.6.1 The Hierarchical Pathfinding Graph 4.6.2 Pathfinding on the Hierarchical Graph 4.6.3 Hierarchical Pathfinding on Exclusions 4.6.4 Strange Effects of Hierarchies on Pathfinding 4.6.5 Instanced Geometry 4.7 OTHER IDEAS IN PATHFINDING 4.7.1 Open Goal Pathfinding 4.7.2 Dynamic Pathfinding 4.7.3 Other Kinds of Information Reuse 4.7.4 Low Memory Algorithms 4.7.5 Interruptible Pathfinding 4.7.6 Pooling Planners 4.8 CONTINUOUS TIME PATHFINDING 4.8.1 The Problem 4.8.2 The Algorithm 4.8.3 Implementation Notes 4.8.4 Performance 4.8.5 Weaknesses 4.9 MOVEMENT PLANNING 4.9.1 Animations 4.9.2 Movement Planning 4.9.3 Example 4.9.4 Footfalls 5 DECISION MAKING 5.1 OVERVIEW OF DECISION MAKING 5.2 DECISION TREES 5.2.1 The Problem 5.2.2 The Algorithm 5.2.3 Pseudo-Code 5.2.4 On the CD 5.2.5 Knowledge Representation 5.2.6 Implementation Nodes 5.2.7 Performance of Decision Trees 5.2.8 Balancing the Tree 5.2.9 Beyond the Tree 5.2.10 Random Decision Trees 5.3 STATE MACHINES 5.3.1 The Problem 5.3.2 The Algorithm 5.3.3 Pseudo-Code 5.3.4 Data Structures and Interfaces 5.3.5 On the CD 5.3.6 Performance 5.3.7 Implementation Notes 5.3.8 Hard-Coded FSM 5.3.9 Hierarchical State Machines 5.3.10 Combining Decision Trees and State Machines 5.4 FUZZY LOGIC 5.4.1 Introduction to Fuzzy Logic 5.4.2 Fuzzy Logic Decision Making 5.4.3 Fuzzy State Machines 5.5 MARKOV SYSTEMS 5.5.1 Markov Processes 5.5.2 Markov State Machine 5.6 GOAL-ORIENTED BEHAVIOR 5.6.1 Goal-Oriented Behavior 5.6.2 Simple Selection 5.6.3 Overall Utility 5.6.4 Timing 5.6.5 Overall Utility GOAP 5.6.6 GOAP with IDA* 5.6.7 Smelly GOB 5.7 RULE-BASED SYSTEMS 5.7.1 The Problem 5.7.2 The Algorithm 5.7.3 Pseudo-Code 5.7.4 Data Structures and Interfaces 5.7.5 Implementation Notes 5.7.6 Rule Arbitration 5.7.7 Unification 5.7.8 Rete 5.7.9 Extensions 5.7.10 Where Next 5.8 BLACKBOARD ARCHITECTURES 5.8.1 The Problem 5.8.2 The Algorithm 5.8.3 Pseudo-Code 5.8.4 Data Structures and Interfaces 5.8.5 Performance 5.8.6 Other Things Are Blackboard Systems 5.9 SCRIPTING 5.9.1 Language Facilities 5.9.2 Embedding 5.9.3 Choosing a Language 5.9.4 A Language Selection 5.9.5 Rolling Your Own 5.9.6 Scripting Languages and Other AI 5.10 ACTION EXECUTION 5.10.1 Types of Action 5.10.2 The Algorithm 5.10.3 Pseudo-Code 5.10.4 Data Structures and Interfaces 5.10.5 Implementation Notes 5.10.6 Performance 5.10.7 Putting It All Together 6 TACTICAL AND STRATEGIC AI 6.1 WAYPOINT TACTICS 6.1.1 Tactical Locations 6.1.2 Using Tactical Locations 6.1.3 Generating the Tactical Properties of a Waypoint 6.1.4 Automatically Generating the Waypoints 6.1.5 The Condensation Algorithm 6.2 TACTICAL ANALYSES 6.2.1 Representing the Game Level 6.2.2 Simple Influence Maps 6.2.3 Terrain Analysis 6.2.4 Learning with Tactical Analyses 6.2.5 A Structure for Tactical Analyses 6.2.6 Map Flooding 6.2.7 Convolution Filters 6.2.8 Cellular Automata 6.3 TACTICAL PATHFINDING 6.3.1 The Cost Function 6.3.2 Tactic Weights and Concern Blending 6.3.3 Modifying the Pathfinding Heuristic 6.3.4 Tactical Graphs for Pathfinding 6.3.5 Using Tactical Waypoints 6.4 COORDINATED ACTION 6.4.1 Multi-Tier AI 6.4.2 Emergent Cooperation 6.4.3 Scripting Group Actions 6.4.4 Military Tactics 7 LEARNING 7.1 LEARNING BASICS 7.1.1 Online or Offline Learning 7.1.2 Intra-Behavior Learning 7.1.3 Inter-Behavior Learning 7.1.4 A Warning 7.1.5 Over-learning 7.1.6 The Zoo of Learning Algorithms 7.1.7 The Balance of Effort 7.2 PARAMETER MODIFICATION 7.2.1 The Parameter Landscape 7.2.2 Hill Climbing 7.2.3 Extensions to Basic Hill Climbing 7.2.4 Annealing 7.3 ACTION PREDICTION 7.3.1 Left or Right 7.3.2 Raw Probability 7.3.3 String Matching 7.3.4 N-Grams 7.3.5 Window Size 7.3.6 Hierarchical N-Grams 7.3.7 Application in Combat 7.4 DECISION LEARNING 7.4.1 Structure of Decision Learning 7.4.2 What Should You Learn? 7.4.3 Three Techniques 7.5 DECISION TREE LEARNING 7.5.1 ID3 7.5.2 ID3 with Continuous Attributes 7.5.3 Incremental Decision Tree Learning 7.6 REINFORCEMENT LEARNING 7.6.1 The Problem 7.6.2 The Algorithm 7.6.3 Pseudo-Code 7.6.4 Data Structures and Interfaces 7.6.5 Implementation Notes 7.6.6 Performance 7.6.7 Tailoring Parameters 7.6.8 Weaknesses and Realistic Applications 7.6.9 Other Ideas in Reinforcement Learning 7.7 ARTIFICIAL NEURAL NETWORKS 7.7.1 Overview 7.7.2 The Problem 7.7.3 The Algorithm 7.7.4 Pseudo-Code 7.7.5 Data Structures and Interfaces 7.7.6 Implementation Caveats 7.7.7 Performance 7.7.8 Other Approaches 8 BOARD GAMES 8.1 GAME THEORY 8.1.1 Types of Games 8.1.2 The Game Tree 8.2 MINIMAXING 8.2.1 The Static Evaluation Function 8.2.2 Minimaxing 8.2.3 The Minimaxing Algorithm 8.2.4 Negamaxing 8.2.5 AB Pruning 8.2.6 The AB Search Window 8.2.7 Negascout 8.3 TRANSPOSITION TABLES AND MEMORY 8.3.1 Hashing Game States 8.3.2 What to Store in the Table 8.3.3 Hash Table Implementation 8.3.4 Replacement Strategies 8.3.5 A Complete Transposition Table 8.3.6 Transposition Table Issues 8.3.7 Using Opponent's Thinking Time 8.4 MEMORY-ENHANCED TEST ALGORITHMS 8.4.1 Implementing Test 8.4.2 The MTD Algorithm 8.4.3 Pseudo-Code 8.5 OPENING BOOKS AND OTHER SET PLAYS 8.5.1 Implementing an Opening Book 8.5.2 Learning for Opening Books 8.5.3 Set Play Books 8.6 FURTHER OPTIMIZATIONS 8.6.1 Iterative Deepening 8.6.2 Variable Depth Approaches 8.7 TURN-BASED STRATEGY GAMES 8.7.1 Impossible Tree Size 8.7.2 Real-Time AI in a Turn-Based Game PART III SUPPORTING TECHNOLOGIES 9 EXECUTION MANAGEMENT 9.1 SCHEDULING 9.1.1 The Scheduler 9.1.2 Interruptible Processes 9.1.3 Load-Balancing Scheduler 9.1.4 Hierarchical Scheduling 9.1.5 Priority Scheduling 9.2 ANYTIME ALGORITHMS 9.3 LEVEL OF DETAIL 9.3.1 Graphics Level of Detail 9.3.2 AI LOD 9.3.3 Scheduling LOD 9.3.4 Behavioral LOD 9.3.5 Group LOD 9.3.6 In Summary 10 WORLD INTERFACING 10.1 COMMUNICATION 10.2 GETTING KNOWLEDGE EFFICIENTLY 10.2.1 Polling 10.2.2 Events 10.2.3 Determining What Approach to Use 10.3 EVENT MANAGERS 10.3.1 Implementation 10.3.2 Event Casting 10.3.3 Inter-Agent Communication 10.4 POLLING STATIONS 10.4.1 Pseudo-Code 10.4.2 Performance 10.4.3 Implementation Notes 10.4.4 Abstract Polling 10.5 SENSE MANAGEMENT 10.5.1 Faking It 10.5.2 What Do I Know? 10.5.3 Sensory Modalities 10.5.4 Region Sense Manager 10.5.5 Finite Element Model Sense Manager 11 TOOLS AND CONTENT CREATION 11.0.1 Toolchains Limit AI 11.0.2 Where AI Knowledge Comes from 11.1 KNOWLEDGE FOR PATHFINDING AND WAYPOINT TACTICS 11.1.1 Manually Creating Region Data 11.1.2 Automatic Graph Creation 11.1.3 Geometric Analysis 11.1.4 Data Mining 11.2 KNOWLEDGE FOR MOVEMENT 11.2.1 Obstacles 11.2.2 High-Level Staging 11.3 KNOWLEDGE FOR DECISION MAKING 11.3.1 Object Types 11.3.2 Concrete Actions 11.4 THE TOOLCHAIN 11.4.1 Data-Driven Editors 11.4.2 AI Design Tools 11.4.3 Remote Debugging 11.4.4 Plug-Ins PART IV DESIGNING GAME AI 12 DESIGNING GAME AI 12.1 THE DESIGN 12.1.1 Example 12.1.2 Evaluating the Behaviors 12.1.3 Selecting Techniques 12.1.4 The Scope of One Game 12.2 SHOOTERS 12.2.1 Movement and Firing 12.2.2 Decision Making 12.2.3 Perception 12.2.4 Pathfinding and Tactical AI 12.2.5 Shooter-Like Games 12.3 DRIVING 12.3.1 Movement 12.3.2 Pathfinding and Tactical AI 12.3.3 Driving-Like Games 12.4 REAL-TIME STRATEGY 12.4.1 Pathfinding 12.4.2 Group Movement 12.4.3 Tactical and Strategic AI 12.4.4 Decision Making 12.5 SPORTS 12.5.1 Physics Prediction 12.5.2 Playbooks and Content Creation 12.6 TURN-BASED STRATEGY GAMES 12.6.1 Timing 12.6.2 Helping the Player 13 AI-BASED GAME GENRES 13.1 TEACHING CHARACTERS 13.1.1 Representing Actions 13.1.2 Representing the World 13.1.3 Learning Mechanism 13.1.4 Predictable Mental Models and Pathological States 13.2 FLOCKING AND HERDING GAMES 13.2.1 Making the Creatures 13.2.2 Tuning Steering for Interactivity 13.2.3 Steering Behavior Stability 13.2.4 Ecosystem Design APPENDIX A REFERENCES A.1 BOOKS, PERIODICALS, AND PAPERS A.2 GAMES INDEX

商品描述(中文翻譯)

**描述**

創造穩健的人工智慧是遊戲開發者面臨的最大挑戰之一。遊戲的商業成功往往依賴於 AI 的質量,但 AI 的工程設計通常在開發過程中較晚開始,且經常被誤解。在這本書中,Ian Millington 將其豐富的專業經驗帶入改善遊戲中 AI 質量的問題。自 1987 年以來,他一直是遊戲開發者,並創立了 Mindlathe Ltd.,當時是遊戲領域最大的專業 AI 公司。Ian 展示了如何將 AI 視為遊戲玩法的不可或缺的一部分。他描述了來自真實遊戲的眾多範例,並通過詳細的案例研究探討其背後的理念。他進一步介紹了許多當今開發者鮮少使用的技術。本書的 CD-ROM 包含 C++ 源代碼和演示程序的庫,並提供訪問一個完整的商業 AI 算法和技術源代碼庫的網站。

**目錄**

關於作者 內容 目錄圖 前言 致謝 關於 CD-ROM 第一部分 AI 與遊戲 1 引言 1.1 什麼是 AI? 1.1.1 學術 AI 1.1.2 遊戲 AI 1.2 我的遊戲 AI 模型 1.2.1 移動 1.2.2 決策 1.2.3 策略 1.2.4 基礎設施 1.2.5 基於代理的 AI 1.2.6 本書中的內容 1.3 算法、數據結構和表示 1.3.1 算法 1.3.2 表示 1.4 在 CD 上 1.4.1 程序 1.4.2 庫 1.5 本書的佈局 2 遊戲 AI 2.1 複雜性謬誤 2.1.1 當簡單的東西看起來很好 2.1.2 當複雜的東西看起來不好 2.1.3 感知窗口 2.1.4 行為的變化 2.2 遊戲中的 AI 類型 2.2.1 鉆研 2.2.2 啟發式 2.2.3 算法 2.3 速度與記憶體 2.3.1 處理器問題 2.3.2 記憶體問題 2.3.3 PC 限制 2.3.4 主機限制 2.4 AI 引擎 2.4.1 AI 引擎的結構 2.4.2 工具鏈問題 2.4.3 整合所有內容 第二部分 技術 3 移動 3.1 移動算法的基本原理 3.1.1 二維移動 3.1.2 靜態 3.1.3 運動學 3.2 運動學移動算法 3.2.1 尋找 3.2.2 漫遊 3.2.3 在 CD 上 3.3 轉向行為 3.3.1 轉向基本原理 3.3.2 變量匹配 3.3.3 尋找與逃避 3.3.4 到達 3.3.5 對齊 3.3.6 速度匹配 3.3.7 委派行為 3.3.8 追逐與逃避 3.3.9 面對 3.3.10 看著你要去的地方 3.3.11 漫遊 3.3.12 路徑跟隨 3.3.13 分離 3.3.14 碰撞避免 3.3.15 障礙物和牆壁避免 3.3.16 總結 3.4 結合轉向行為 3.4.1 混合與仲裁 3.4.2 加權混合 3.4.3 優先級 3.4.4 協作仲裁 3.4.5 轉向管道 3.5 預測物理 3.5.1 瞄準與射擊 3.5.2 彈道軌跡 3.5.3 開火解決方案 3.5.4 受阻的彈丸 3.5.5 迭代瞄準 3.6 跳躍 3.6.1 跳躍點 3.6.2 降落墊 3.6.3 孔填充 3.7 協調移動 3.7.1 固定編隊 3.7.2 可擴展編隊 3.7.3 自發編隊 3.7.4 雙層編隊轉向 3.7.5 實現 3.7.6 擴展到多於兩層 3.7.7 插槽角色與更好的分配 3.7.8 插槽分配 3.7.9 動態插槽與行動 3.7.10 戰術移動 3.8 馬達控制 3.8.1 輸出過濾 3.8.2 能力敏感轉向 3.8.3 常見的驅動屬性 3.9 第三維的移動 3.9.1 三維旋轉 3.9.2 將轉向行為轉換為三維 3.9.3 對齊 3.9.4 對齊到向量 3.9.5 面對 3.9.6 看著你要去的地方 3.9.7 漫遊 3.9.8 假裝旋轉軸 4 路徑尋找 4.1 路徑尋找圖 4.1.1 圖 4.1.2 加權圖 4.1.3 有向加權圖 4.1.4 術語 4.1.5 表示 4.2 Dijkstra 4.2.1 問題 4.2.2 算法 4.2.3 假代碼 4.2.4 數據結構與介面 4.2.5 Dijkstra 的性能 4.2.6 弱點 4.3 A* 4.3.1 問題 4.3.2 算法 4.3.3 假代碼 4.3.4 數據結構與介面 4.3.5 實現註釋 4.3.6 算法性能 4.3.7 節點數組 A* 4.3.8 選擇啟發式 4.4 世界表示 4.4.1 瓦片圖 4.4.2 Dirichlet 領域 4.4.3 可見性點 4.4.4 多邊形網格 4.4.5 非平移問題 4.4.6 成本函數 4.4.7 路徑平滑 4.5 改進 A* 4.6 分層路徑尋找 4.6.1 分層路徑尋找圖 4.6.2 在分層圖上的路徑尋找 4.6.3 在排除上的分層路徑尋找 4.6.4 分層對路徑尋找的奇怪影響 4.6.5 實例幾何 4.7 路徑尋找中的其他想法 4.7.1 開放目標路徑尋找 4.7.2 動態路徑尋找 4.7.3 其他類型的信息重用 4.7.4 低記憶體算法 4.7.5 可中斷的路徑尋找 4.7.6 池規劃者 4.8 連續時間路徑尋找 4.8.1 問題 4.8.2 算法 4.8.3 實現註釋 4.8.4 性能 4.8.5 弱點 4.9 移動規劃 4.9.1 動畫 4.9.2 移動規劃 4.9.3 範例 4.9.4 足跡 5 決策 5.1 決策概述 5.2 決策樹 5.2.1 問題 5.2.2 算法 5.2.3 假代碼 5.2.4 在 CD 上 5.2.5 知識表示 5.2.6 實現節點 5.2.7 決策樹的性能 5.2.8 平衡樹 5.2.9 超越樹 5.2.10 隨機決策樹 5.3 狀態機 5.3.1 問題 5.3.2 算法 5.3.3 假代碼 5.3.4 數據結構與介面 5.3.5 在 CD 上 5.3.6 性能 5.3.7 實現註釋 5.3.8 硬編碼 FSM 5.3.9 分層狀態機 5.3.10 結合決策樹與狀態機 5.4 模糊邏輯 5.4.1 模糊邏輯簡介 5.4.2 模糊邏輯決策 5.4.3 模糊狀態機 5.5 馬可夫系統 5.5.1 馬可夫過程 5.5.2 馬可夫狀態機 5.6 目標導向行為 5.6.1 目標導向行為 5.6.2 簡單選擇 5.6.3 整體效用 5.6.4 時機 5.6.5 整體效用 GOAP 5.6.6 帶有 IDA* 的 GOAP 5.6.7 噁心的 GOB 5.7 基於規則的系統 5.7.1 問題 5.7.2 算法 5.7.3 假代碼 5.7.4 數據結構與介面 5.7.5 實現註釋 5.7.6 規則仲裁 5.7.7 統一 5.7.8 Rete 5.7.9 擴展 5.7.10 下一步 5.8 黑板架構 5.8.1 問題 5.8.2 算法 5.8.3 假代碼 5.8.4 數據結構與介面 5.8.5 性能 5.8.6 其他東西是黑板系統 5.9 腳本 5.9.1 語言功能 5.9.2 嵌入 5.9.3 選擇語言 5.9.4 語言選擇 5.9.5 自行開發 5.9.6 腳本語言與其他 AI 5.10 行動執行 5.10.1 行動類型 5.10.2 算法 5.10.3 假代碼 5.10.4 數據結構與介面 5.10.5 實現註釋 5.10.6 性能 5.10.7 整合所有內容 6 戰術與策略 AI 6.1 路徑點戰術 6.1.1 戰術位置 6.1.2 使用戰術位置 6.1.3 生成路徑點的戰術屬性 6.1.4 自動生成路徑點 6.1.5 縮減算法 6.2 戰術分析 6.2.1 表示遊戲關卡 6.2.2 簡單影響圖 6.2.3 地形分析 6.2.4 通過戰術分析學習 6.2.5 戰術分析的結構 6.2.6 地圖淹沒 6.2.7 卷積濾波器 6.2.8 細胞自動機 6.3 戰術路徑尋找 6.3.1 成本函數 6.3.2 戰術權重與關注混合 6.3.3 修改路徑尋找啟發式 6.3.4 用於路徑尋找的戰術圖 6.3.5 使用戰術路徑點 6.4 協調行動 6.4.1 多層 AI 6.4.2 自發合作 6.4.3 腳本群體行動 6.4.4 軍事戰術 7 學習 7.1 學習基礎 7.1.1 在線或離線學習 7.1.2 行為內學習 7.1.3 行為間學習 7.1.4 警告 7.1.5 過度學習 7.1.6 學習算法的動物園 7.1.7 努力的平衡 7.2 參數修改 7.2.1 參數景觀 7.2.2 爬坡 7.2.3 基本爬坡的擴展 7.2.4 退火 7.3 行動預測 7.3.1 左或右 7.3.2 原始概率 7.3.3 字串匹配 7.3.4 N-grams 7.3.5 窗口大小 7.3.6 分層 N-grams 7.3.7 在戰鬥中的應用 7.4 決策學習 7.4.1 決策學習的結構 7.4.2 你應該學習什麼? 7.4.3 三種技術 7.5 決策樹學習 7.5.1 ID3 7.5.2 帶有連續屬性的 ID3 7.5.3 增量決策樹學習 7.6 強化學習 7.6.1 問題 7.6.2 算法 7.6.3 假代碼 7.6.4 數據結構與介面 7.6.5 實現註釋 7.6.6 性能 7.6.7 調整參數 7.6.8 弱點與現實應用 7.6.9 強化學習中的其他想法 7.7 人工神經網絡 7.7.1 概述 7.7.2 問題 7.7.3 算法 7.7.4 假代碼 7.7.5 數據結構與介面 7.7.6 實現注意事項 7.7.7 性能 7.7.8 其他方法 8 桌上遊戲 8.1 遊戲理論 8.1.1 遊戲類型 8.1.2 遊戲樹 8.2 最小化 8.2.1 靜態評估函數 8.2.2 最小化 8.2.3 最小化算法 8.2.4 反向最小化 8.2.5 AB 剪枝 8.2.6 AB 搜索窗口 8.2.7 反向搜索 8.3 轉置表與記憶體 8.3.1 哈希遊戲狀態 8.3.2 在表中存儲什麼 8.3.3 哈希表實現 8.3.4 替換策略 8.3.5 完整的轉置表 8.3.6 轉置表問題 8.3.7 使用對手的思考時間 8.4 記憶增強測試算法 8.4.1 實現測試 8.4.2 MTD 算法 8.4.3 假代碼 8.5 開局書籍與其他設置玩法 8.5.1 實現開局書籍 8.5.2 開局書籍的學習 8.5.3 設置玩法書籍 8.6 進一步優化 8.6.1 迭代加深 8.6.2 可變深度方法 8.7 回合制策略遊戲 8.7.1 不可能的樹大小 8.7.2 回合制遊戲中的即時 AI 第三部分 支持技術 9 執行管理 9.1 調度 9.1.1 調度器 9.1.2 可中斷的過程 9.1.3 負載平衡調度器 9.1.4 分層調度 9.1.5 優先級調度 9.2 隨時算法 9.3 詳細級別 9.3.1 圖形詳細級別 9.3.2 AI LOD 9.3.3 調度 LOD 9.3.4 行為 LOD 9.3.5 群體 LOD 9.3.6 總結 10 世界介面 10.1 通信 10.2 高效獲取知識 10.2.1 輪詢 10.2.2 事件 10.2.3 確定使用何種方法 10.3 事件管理器 10.3.1 實現 10.3.2 事件廣播 10.3.3 代理間通信 10.4 輪詢站 10.4.1 假代碼 10.4.2 性能 10.4.3 實現註釋 10.4.4 抽象輪詢 10.5 感知管理 10.5.1 假裝 10.5.2 我知道什麼? 10.5.3 感官模態 10.5.4 區域感知管理器 10.5.5 有限元素模型感知管理器 11 工具與內容創建 11.0.1 工具鏈限制 AI 11.0.2 AI 知識的來源 11.1 路徑尋找與路徑點戰術的知識 11.1.1 手動創建區域數據 11.1.2 自動圖形創建 11.1.3 幾何分析 11.1.4 數據挖掘 11.2 移動的知識 11.2.1 障礙物 11.2.2 高級分級 11.3 決策的知識 11.3.1 物件類型 11.3.2 具體行動 11.4 工具鏈 11.4.1 數據驅動編輯器 11.4.2 AI 設計工具 11.4.3 遠程調試 11.4.4 插件 第四部分 設計遊戲 AI 12 設計遊戲 AI 12.1 設計 12.1.1 範例 12.1.2 評估行為 12.1.3 選擇技術 12.1.4 一個遊戲的範圍 12.2 射擊遊戲 12.2.1 移動與射擊 12.2.2 決策 12.2.3 感知 12.2.4 路徑尋找與戰術 AI 12.2.5 類似射擊的遊戲 12.3 駕駛 12.3.1 移動 12.3.2 路徑尋找與戰術 AI 12.3.3 類似駕駛的遊戲 12.4 即時策略 12.4.1 路徑尋找 12.4.2 群體移動 12.4.3 戰術