630 likes | 690 Views
AI in games. Simple steering, Flocking Production rules FSMs, Probabilistic FSMs Path Planning, Search Unit Movement Formations. AI in video games. 5-10% of CPU for Realtime 25-50% of CPU for Turn-based Chase/Escape behaviors Group behaviors Finite State machines Adaptation/Learning.
E N D
AI in games Simple steering, Flocking Production rules FSMs, Probabilistic FSMs Path Planning, Search Unit Movement Formations IAT 410
AI in video games • 5-10% of CPU for Realtime • 25-50% of CPU for Turn-based • Chase/Escape behaviors • Group behaviors • Finite State machines • Adaptation/Learning IAT 410
Learning/Adaptation • Increment aggressiveness if player is doing well • The Computer-Based SATs do this! • Levels are a pre-programmed version of adaptation • Tuning • Stability • How might adaptation make play Better or Worse? IAT 410
What is good AI? • Perceived by user as challenging • Cruel, but fair! • User is surprised by the game • but later understands why • Feeling that reality will provide answers • able to make progress solving problem • What games have used AI effectively? IAT 410
Chase/Evade • Algorithm for the predator? IAT 410
Enhancements to Chase • Speed Control • Velocity, Acceleration max/min • Limited turning Radius • Randomness • Moves • Patterns IAT 410
Enhancements to Chase • Anticipation • Build a model of user behavior IAT 410
Steering Behaviors • Pursue • Evade • Wander • Obstacle Avoidance • Wall/Path following • Queuing • Combine behaviors with weights • What could go wrong? IAT 410
Group Behaviors • Lots of background characters to create a feeling of motion • Make area appear interesting, rich, populated IAT 410
Flocking -- (HalfLife, Unreal) • What might go wrong? Simple version: Compute trajectory to head towards centroid IAT 410
Group Behaviors Craig Reynolds SIGGRAPH 1987 • Reaction to neighbors -- Spring Forces IAT 410
What could go wrong? • Repulsive springs around obstacles • Does not handle changes in strategy Forces balance out in dead end Exactly aligned IAT 410
“Perceptual” Models IAT 410
Production Rules If( enemy in sight ) fire If( big enemy in sight ) run away If( --- ) ---- • Selecting among multiple valid rules • Priority weighting for rules or sensor events • Random selection • No state (in pure form) IAT 410
Finite State Machines • States: Action to take • Chase • Random Walk • Patrol • Eat • Transitions: • Time • Events • Completion of action At woods Chopping Enough wood Take Wood to closest depot At depot Drop wood: Go back to woods IAT 410
State Machine Problems • Predictable • Sometimes a good thing • If not, use fuzzy or probabilistic state machines • Simplistic • Use hierarchies of FSM’s (HalfLife) IAT 410
Probabilistic State Machines • Personalities • Change probability that character will perform a given action under certain conditions IAT 410
Probabilistic Example Enemy Within Hand- to-Hand Range 50% Fire At Enemy Enemy Within Hand- to-Hand Range 50% Run Away Far Enough to Take Shot Run out of Range IAT 410
Probabilistic State Machines • Other aspects: • Sight • Memory • Curiosity • Fear • Anger • Sadness • Sociability • Modify probabilities on the fly? IAT 410
Planning • Part of intelligence is the ability to plan • Move to a goal • A Goal State • Represent the world as a set of States • Each configuration is a separate state • Change state by applying Operators • An Operator changes configuration from one state to another state IAT 410
Path Planning • States: • Location of Agent/NPC in space • Discretized space • Tiles in a tile-based game • Floor locations in 3D • Voxels • Operator • Move from one discrete location to next IAT 410
Path Planning Algorithms • Must Search the state space to move NPC to goal state • Computational Issues: • Completeness • Will it find an answer if one exists? • Time complexity • Space complexity • Optimality • Will it find the best solution IAT 410
Search Strategies • Blind search • No domain knowledge. • Only goal state is known • Heuristic search • Domain knowledge represented by heuristic rules • Heuristics drive low-level decisions IAT 410
Breadth-First Search • Expand Root node • Expand all Root node’s children • Expand all Root node’s grandchildren • Problem: Memory size Root Root Root Child2 Child1 Child2 Child1 GChild2 GChild1 GChild4 GChild3 IAT 410
Uniform Cost Search • Modify Breadth-First by expanding cheapest nodes first • Minimize g(n) cost of path so far Root Child2 Child1 GChild4 8 GChild2 5 GChild3 3 GChild1 9 IAT 410
Depth First Search • Always expand the node that is deepest in the tree Root Root Child1 Child1 Root GChild2 GChild1 Child1 GChild1 IAT 410
Depth First Variants • Depth first with cutoff C • Don’t expand a node if the path to root > C • Iterative Deepening • Start the cutoff C=1 • Increment the cutoff after completing all depth first probes for C IAT 410
Iterative Deepening Root Root Child2 Child1 Child1 Root Root Root Child1 Child2 Child1 GChild1 GChild4 GChild3 GChild2 GChild1 IAT 410
Bidirectional Search • Start 2 Trees • Start one at start point • Start one at goal point IAT 410
Avoid Repeating States • Mark states you have seen before • In path planning: • Mark minimum distance to this node IAT 410
Heuristic Search • Apply approximate knowledge • Distance measurements to goal • Cost estimates to goal • Use the estimate to steer exploration IAT 410
Greedy Search • Expand the node that yields the minimum cost • Expand the node that is closest to target • Depth first • Minimize the function h(n) the heuristic cost function • Not Complete! • Local Minima IAT 410
A* Search • Minimize sum of costs • g(n) + h(n) • Cost so far + heuristic to goal • Guaranteed to work • If h(n) does not overestimate cost • Examples • Euclidean distance IAT 410
A* Search • Fails when there is no solution • Avoid searching the whole space • Do bi-directional search • Iterative Deepening IAT 410
Coordinated Movement • Somewhat more difficult than moving just one NPC • Disappearing goal • New obstacles in path • Collisions with other NPCs • Groups of units • Units in formation IAT 410
Coordinated Elements • Collision detection • Detection of immediate collisions • Near future • Perform the usual collision detection optimizations • Spatial hierarchies • Simplified tests • Unit approximations IAT 410
Collision Detection • Levels of collision • Hard radius (small) • Must not have 2 units overlap hard radius • Soft radius (large) • Soft overlap not preferred, but acceptable IAT 410
Collision Detection • With movement, need to avoid problems with bad temporal samples • Sample frequently • Detect collisions with extruded units • Use a movement line • Detect distance from Line segment IAT 410
Unit Line • Unit line follows path • Can implement minimum turn radius • Gives mechanism for position prediction • Connected line segments • Time stamps per segment • Orientation per segment • Acceleration per segment IAT 410
Prediction line • Given prediction, use next prediction as move • Prediction must have dealt with collisions already IAT 410
Collision Avoidance Planning • Don’t search a new path at each collision • Adopt a Priority Structure • Higher priority items move • Lower priority items wait or get out of the way • Case-based reasoning to perform local path reordering • Pairwise comparison IAT 410
Collision Resolution Summary • Favor: • High priority NPCs over Low Priority • Moving over non-moving • Lower Priority NPCs • Back out of the way • Stop to allow others to pass • General • Resolve all high-priority collisions first IAT 410
Avoidance • Case 1: Both units standing • Lower priority unit does nothing itself • Higher unit • Finds which unit will move • Tells that unit to resolve hard collision by shortest move IAT 410
Avoidance • Case 2: I’m not moving, other unit is moving • Non-moving unit stays immobile IAT 410
Avoidance • Case 3: I’m moving, other is not: • If lower priority immobile unit can get out of the way: • Lower unit gets out of way • Higher unit moves past lower to get to collision free point • Else If we can avoid other unit • Avoid it! IAT 410
Avoidance • Case 3: I’m moving, other is not: • Else: Can higher unit push lower along • Push! • Else: Recompute paths! IAT 410
Avoidance • Case 4: Both units moving • Lower unit does nothing • If hard collision inevitable and we are high unit • Tell lower unit to pause • Else: If we are high unit • Slow lower unit down and compute collision-free path IAT 410
Storage • Store predictions in a circular buffer • If necessary, interpolate between movement steps IAT 410
Planning • Prediction implies • A plan for future moves • Once a collision has been resolved • Record the decision that was made • Base future movement plans on this Blocking unit Get-To Point Predicted Position IAT 410
Units, Groups, Formations • Unit • An individual moving NPC • Group • A collection of units • Formation • A group with position assignments per group member IAT 410