630 likes | 643 Views
Explore advanced AI techniques for game development, including probabilistic FSMs, path planning, and unit movement formations. Learn about steering behaviors, flocking, and production rules. Discover how AI adapts and learns in games, influencing player experience. Gain insights on effective AI implementations and enhancing chase/evade algorithms.
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