AI in games Simple steering, Flocking Production rules FSMs, Probabilistic FSMs Path Planning, Search Unit Movement Formations Oct 6, Fall 2005 Game Design 1 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 Oct 6, Fall 2005 Game Design 2 Questions How good should the AI be? Why are people more fun than NPC’s? Will networked games reduce AI? New directions for AI in games? Oct 6, Fall 2005 Game Design 3 Learning/Adaptation Increment doing well aggressiveness if player is – The Computer-Based SATs do this! Levels are a pre-programmed version of adaptation Tuning Stability How might adaptation make play Better or Worse? Oct 6, Fall 2005 Game Design 4 Adaptation vs. Play quality Do you want the monsters in Quake to get better as you get better? Force the user to live with the consequences of his/her actions Can surprise the designer (Creatures) Pit AI creatures against each other to find bugs or tune actions Robotwar Oct 6, Fall 2005 Game Design 5 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 Oct 6, Fall 2005 games have used AI effectively? Game Design 6 Chase/Evade Algorithm Oct 6, Fall 2005 for the predator? Game Design 7 Enhancements to Chase Speed Control – Velocity, Acceleration max/min – Limited turning Radius Randomness – Moves – Patterns Oct 6, Fall 2005 Game Design 8 Enhancements to Chase Anticipation Build a model of user behavior Oct 6, Fall 2005 Game Design 9 Steering Behaviors Pursue Evade Wander Obstacle Avoidance Wall/Path following Queuing Combine behaviors with weights What could go wrong? Oct 6, Fall 2005 Game Design 10 Group Behaviors Lots of background characters to create a feeling of motion Make area appear interesting, rich, populated Oct 6, Fall 2005 Game Design 11 Flocking -- (HalfLife, Unreal) Simple version: Compute trajectory to head towards centroid What Oct 6, Fall 2005 might go wrong? Game Design 12 Group Behaviors Reaction Oct 6, Fall 2005 Craig Reynolds SIGGRAPH 1987 to neighbors -- Spring Forces Game Design 13 What could go wrong? Exactly aligned Repulsive Forces balance out in dead end springs around obstacles Does not handle changes in strategy Oct 6, Fall 2005 Game Design 14 “Perceptual” Models Oct 6, Fall 2005 Game Design 15 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) Oct 6, Fall 2005 Game Design 16 Finite State Machines States: Action to take – Chase – Random Walk – Patrol – Eat Chopping Enough wood Take Wood to closest depot Transitions: – Time – Events – Completion of action Oct 6, Fall 2005 At woods At depot Drop wood: Go back to woods Game Design 17 State Machine Problems Predictable – Sometimes a good thing – If not, use fuzzy or probabilistic state machines Simplistic – Use hierarchies of FSM’s (HalfLife) Oct 6, Fall 2005 Game Design 18 Probabilistic State Machines Personalities – Change probability that character will perform a given action under certain conditions Aggressive Passive Attack 50% 5% Evade 5% 60% Random 10% 10% Flock 20% 20% Pattern 15% 5% Oct 6, Fall 2005 Game Design 19 Probabilistic Example Fire At Enemy Enemy Within Handto-Hand Range 50% Enemy Within Handto-Hand Range 50% Run out of Range Oct 6, Fall 2005 Run Away Far Enough to Take Shot Game Design 20 Probabilistic State Machines Other aspects: – – – – – – – Sight Memory Curiosity Fear Anger Sadness Sociability Modify probabilities on the fly? Oct 6, Fall 2005 Game Design 21 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 Oct 6, Fall 2005 Game Design 22 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 Oct 6, Fall 2005 Game Design 23 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 Oct 6, Fall 2005 Game Design 24 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 Oct 6, Fall 2005 Game Design 25 Breadth-First Search Expand Root node – Expand all Root node’s children • Expand all Root node’s grandchildren Root Root Child1 Root Child2 Problem: Memory size Oct 6, Fall 2005 Child1 GChild1 Game Design GChild2 Child2 GChild3 GChild4 26 Uniform Cost Search Modify Breadth-First by expanding cheapest nodes first Minimize g(n) cost of path so far Root Child2 Child1 GChild1 9 Oct 6, Fall 2005 GChild2 5 GChild3 3 Game Design GChild4 8 27 Depth First Search Always expand the node that is deepest in the tree Root Child1 Root Root Child1 GChild1 Child1 GChild2 GChild1 Oct 6, Fall 2005 Game Design 28 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 Oct 6, Fall 2005 Game Design 29 Iterative Deepening Root Root Child1 Child1 Child2 Root Root Root Child1 Child2 GChild1 Child1 GChild3 GChild1 Oct 6, Fall 2005 GChild4 GChild2 Game Design 30 Bidirectional Search Start 2 Trees – Start one at start point – Start one at goal point Oct 6, Fall 2005 Game Design 31 Avoid Repeating States Mark states you have seen before In path planning: – Mark minimum distance to this node Oct 6, Fall 2005 Game Design 32 Heuristic Search Apply approximate knowledge – Distance measurements to goal – Cost estimates to goal Use the estimate to steer exploration Oct 6, Fall 2005 Game Design 33 Greedy Search Expand cost the node that yields the minimum – Expand the node that is closest to target – Depth first – Minimize the function h(n) the heuristic cost function Not Complete! Local Minima Oct 6, Fall 2005 Game Design 34 A* Search Minimize g(n) sum of costs + h(n) – Cost so far + heuristic to goal Guaranteed to work – If h(n) does not overestimate cost Examples – Euclidean distance Oct 6, Fall 2005 Game Design 35 A* Search Fails when there is no solution – Avoid searching the whole space – Do bi-directional search – Iterative Deepening Oct 6, Fall 2005 Game Design 36 Coordinated Movement Somewhat one NPC more difficult than moving just – Disappearing goal – New obstacles in path – Collisions with other NPCs – Groups of units – Units in formation Oct 6, Fall 2005 Game Design 37 Coordinated Elements Collision detection – Detection of immediate collisions – Near future Perform the usual collision detection optimizations – Spatial hierarchies – Simplified tests – Unit approximations Oct 6, Fall 2005 Game Design 38 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 Oct 6, Fall 2005 Game Design 39 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 Oct 6, Fall 2005 Game Design 40 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 Oct 6, Fall 2005 Game Design 41 Prediction line Given prediction, use next prediction as move Prediction must have dealt with collisions already Oct 6, Fall 2005 Game Design 42 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 Oct 6, Fall 2005 Game Design 43 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 Oct 6, Fall 2005 Game Design 44 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 Oct 6, Fall 2005 Game Design 45 Avoidance Case 2: We’re not moving, other unit is moving – Non-moving unit stays immobile Oct 6, Fall 2005 Game Design 46 Avoidance Case 3: We’re 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! Oct 6, Fall 2005 Game Design 47 Avoidance Case 3: We’re moving, other is not: – Else: Can higher unit push lower along • Push! – Else: Recompute paths! Oct 6, Fall 2005 Game Design 48 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 Oct 6, Fall 2005 Game Design 49 Storage Store predictions in a circular buffer If necessary, interpolate between movement steps Oct 6, Fall 2005 Game Design 50 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 Oct 6, Fall 2005 Blocking Get-To unit Point Predicted Position Game Design 51 Units, Groups, Formations Unit – An individual moving NPC Group – A collection of units Formation – A group with position assignments per group member Oct 6, Fall 2005 Game Design 52 Groups Groups stay together – All units move at same speed – All units follow the same general path – Units arrive at the same time Obstruction Goal Oct 6, Fall 2005 Game Design 53 Groups Need a hierarchical movement system Group structure – Manages its own priorities – Resolves its own collisions – Elects a commander that traces paths, etc • Commander can be an explicit game feature Oct 6, Fall 2005 Game Design 54 Formations Groups with unit layouts – Layouts designed in advance Additional States – Forming – Formed – Broken Only Oct 6, Fall 2005 formed formations can move Game Design 55 Formations Schedule arrival into position – Start at the middle and work outwards – Move one unit at a time into position – Pick the next unit with • Least collisions • Least distance – Formed units have highest priority • Forming units medium priority • Unformed units lowest Oct 6, Fall 2005 Game Design 56 Formations Not so good… 1 1 2 3 4 7 5 9 3 9 2 6 7 8 5 6 8 4 1 2 7 3 5 9 6 Better… Oct 6, Fall 2005 8 Game Design 4 57 Formations: Wheeling Only necessary for non-symmetric formations 1 2 3 4 Break formation here Stop motion temporarily 5 5 Set re-formation point here 4 3 2 Oct 6, Fall 2005 1 Game Design 58 Formations: Obstacles 1 2 1 2 3 3 4 5 Scale formation layout to fit through gaps 1 4 5 Subdivide formation around small obstacles Oct 6, Fall 2005 1 Game Design 2 2 3 4 3 5 4 5 59 Formations Adopt a hierarchy of paths to simplify path-planning problems High-level path considers only large obstacles – Perhaps at lower resolution – Solves problem of gross formation movement – Paths around major terrain features Oct 6, Fall 2005 Game Design 60 Formations Low-level path – Detailed planning within each segment of high-level path – Details of obstacle avoidance Implement stack path hierarchy with path Avoidance Path Low-Level Path1 High-Level Path Oct 6, Fall 2005 High-Level Path Low-Level Path2 Low-Level Path2 High-Level Path High-Level Path Game Design 61 Path Stack Avoidance Path Low-Level Path1 High-Level Path 1 High-Level Path Low-Level Path2 Low-Level Path2 High-Level Path High-Level Path 2 Low-level path Avoidance path Oct 6, Fall 2005 Game Design 62 Compound Collisions Solve collisions pairwise Start with highest priority pair – Then, resolve the next “highest priority pair” now colliding Oct 6, Fall 2005 Game Design 63 General Optimize for 2D if possible Use high-level and low-level pathing Units will overlap! Understand the update loop – It affects unit movement Maintain Oct 6, Fall 2005 a brief collision history Game Design 64 References Used with permission from CS4455 course at GA Tech by Chris Shaw http://www.cc.gatech.edu/classes/AY2005 /cs4455_fall/ Oct 6, Fall 2005 Game Design 65
© Copyright 2026 Paperzz