Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword or section
Like this
4Activity

Table Of Contents

Mathematics
Cartesian Coordinates
Functions and Equations
Exponents and Powers
Triangles
Vectors
Adding and Subtracting Vectors
Multiplying Vectors
Calculating the Magnitude of a Vector
Normalizing Vectors
Resolving Vectors
The Dot Product
A Practical Example of Vector Mathematics
The Vector2D Struct
Local Space and World Space
Physics
Time
Distance
Mass
Position
Velocity
Acceleration
What Exactly Is a Finite State Machine?
Implementing a Finite State Machine
State Transition Tables
Embedded Rules
The West World Project
The BaseGameEntity Class
The Miner Class
The Miner States
The State Design Pattern Revisited
The EnterMineAndDigForNugget State
Making the State Base Class Reusable
Global States and State Blips
Creating a State Machine Class
Introducing Elsa
Adding Messaging Capabilities to Your FSM
The Telegram Structure
Miner Bob and Elsa Communicate
Message Dispatch and Management
The MessageDispatcher Class
Message Handling
Elsa Cooks Dinner
Step One
Step Two
Step Three
Step Four
Step Five
What Is an Autonomous Agent?
The Vehicle Model
Updating the Vehicle Physics
The Steering Behaviors
Seek
Flee
Arrive
Calculating the Steering Force
Wall Avoidance
Interpose
Hide
Path Following
Offset Pursuit
Group Behaviors
Separation
Alignment
Cohesion
Flocking
Combining Steering Behaviors
Weighted Truncated Sum
Weighted Truncated Running Sum with Prioritization
Prioritized Dithering
Ensuring Zero Overlap
Coping with Lots of Vehicles: Spatial Partitioning
Smoothing
The Simple Soccer Environment and Rules
The Soccer Pitch
The Goals
The Soccer Ball
SoccerBall::FuturePosition
SoccerBall::TimeToCoverDistance
Designing the AI
The SoccerTeam Class
The Receiving Player
The Closest Player to the Ball
The Controlling Player
The Supporting Player
SoccerTeam States
Field Players
Field Player Motion
Field Player States
Goalkeepers
Goalkeeper Motion
Goalkeeper States
Key Methods Used by the AI
SoccerTeam::isPassSafeFromAllOpponents
SoccerTeam::isPassSafeFromAllOpponents
SoccerTeam::CanShoot
SoccerTeam::FindPass
SoccerTeam::GetBestPassToReceiver
Making Estimates and Assumptions Work for You
Graphs
A More Formal Description
Trees
Graph Density
Digraphs
Graphs in Game AI
Navigation Graphs
Dependency Graphs
State Graphs
Implementing a Graph Class
The GraphNode Class
The GraphEdge Class
The SparseGraph Class
Graph Search Algorithms
Uninformed Graph Searches
Depth First Search
Breadth First Search
Cost-Based Graph Searches
Edge Relaxation
Shortest Path Trees
Dijkstra’s Algorithm
Dijkstra with a Twist: A*
Just What Is a Scripting Language?
What a Scripting Language Can Do for You
Dialogue Flow
Stage Direction
AI Logic
Scripting in Lua
Setting Up Your Compiler to Work with Lua
Getting Started
Lua Variables
Lua Types
Logical Operators
Conditional Structures
Rock-Paper-Scissors in Lua
Interfacing with C/C++
Accessing Lua Global Variables from within Your C++ Program
Accessing a Lua Table from within Your C++ Program
Accessing a Lua Function from within C++
Exposing a C/C++ Function to Lua
Exposing a C/C++ Class to Lua
Luabind to the Rescue!
Setting Up Luabind
Scopes
Exposing C/C++ Functions Using Luabind
Exposing C/C++ Classes Using Luabind
Creating Classes in Lua Using LuaBind
luabind::object
Creating a Scripted Finite State Machine
How It Works
The States
GoHome
Sleep
GoToMine
Useful URLS
It Doesn’t All Smell of Roses
The Game
Overview of the Game Architecture
The Raven_Game Class
The Raven Map
Raven Weapons
Projectiles
Triggers
TriggerRegion
Trigger
Respawning Triggers
Giver-Triggers
Limited Lifetime Triggers
Sound Notification Triggers
Managing Triggers: The TriggerSystem Class
AI Design Considerations
AI Implementation
Decision Making
Movement
Path Planning
Perception
Target Selection
Weapon Handling
Putting It All Together
Updating the AI Components
Navigation Graph Construction
Tile Based
Points of Visibility
Expanded Geometry
NavMesh
The Raven Navigation Graph
Coarsely Granulated Graphs
Finely Grained Graphs
Adding Items to the Raven Navigation Graph
Using Spatial Partitioning to Speed Up Proximity Queries
Creating a Path Planner Class
Planning a Path to a Position
Planning a Path to an Item Type
Paths as Nodes or Paths as Edges?
An Annotated Edge Class Example
Modifying the Path Planner Class to Accommodate Annotated Edges
Path Smoothing
Path Smoothing Rough but Quick
Path Smoothing Precise but Slow
Methods for Reducing CPU Overhead
Precalculated Paths
Precalculated Costs
Time-Sliced Path Planning
Hierarchical Pathfinding
Getting Out of Sticky Situations
The Return of Eric the Brave
Goal_Composite::ProcessSubgoals
Goal_Composite::RemoveAllSubgoals
Examples of Goals Used by Raven Bots
Goal_Wander
Goal_TraverseEdge
Goal_FollowPath
Goal_MoveToPosition
Goal_AttackTarget
Goal_AttackTarget
Goal Arbitration
Calculating the Desirability of Locating a Health Item
Calculating the Desirability of Locating a Specific Weapon
Calculating the Desirability of Attacking the Target
Calculating the Desirability of Exploring the Map
Spin-offs
Personalities
State Memory
Example One — Automatic Resuming of Interrupted Activities
Example Two — Negotiating Special Path Obstacles
Command Queuing
Using the Queue to Script Behavior
Fuzzy Linguistic Variables
Fuzzy Rules
Designing FLVs for Weapon Selection
Designing the Desirability FLV
Designing the Distance to Target FLV
Designing the Ammo Status FLV
Designing the Rule Set for Weapon Selection
Fuzzy Inference
Rule One
Rule Two
Rule Three
Defuzzification
From Theory to Application: Coding a Fuzzy Logic Module
The FuzzyModule Class
The FuzzySet Base Class
The Triangular Fuzzy Set Class
The Right Shoulder Fuzzy Set Class
Creating a Fuzzy Linguistic Variable Class
Designing Classes for Building Fuzzy Rules
How Raven Uses the Fuzzy Logic Classes
The Combs Method
Fuzzy Inference and the Combs Method
Implementation
Last Words
References
Bugs and Errata
Index
0 of .
Results for:
No results containing your search query
P. 1
Programming Game AI by Example

Programming Game AI by Example

Ratings: (0)|Views: 75 |Likes:
Published by Real Rugia

More info:

Published by: Real Rugia on Jul 31, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/07/2012

pdf

text

original

You're Reading a Free Preview
Pages 11 to 28 are not shown in this preview.
You're Reading a Free Preview
Pages 39 to 57 are not shown in this preview.
You're Reading a Free Preview
Pages 68 to 116 are not shown in this preview.
You're Reading a Free Preview
Pages 127 to 436 are not shown in this preview.
You're Reading a Free Preview
Pages 447 to 521 are not shown in this preview.

Activity (4)

You've already reviewed this. Edit your review.
1 hundred reads
jkl316 liked this
Aury de Sa Leite liked this
Angelo liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->