AI and Game Programming CIS 487587 Bruce R
AI and Game Programming CIS 487/587 Bruce R. Maxim UM-Dearborn 1
Selected AI Techniques • • Deterministic algorithms Heuristic programming Patterns and scripts Finite state machines Production systems Genetic algorithms Neural networks 2
Deterministic Algorithms • Each clock tick asteroid_x += asteroid_x_velocity asteroid_y += asteroid_y_velocity • Asteroids follow their course until – off screen – collision occurs – blown up 3
Random Motion fly_x = rand() % 80 fly_y= rand() % 80 while(~done()) { fly_count = 0 fly_x_velocity = -8 + rand() % 16 fly_y_velocity = -8 + rand() % 16 while (++fly_count < 10) { fly_x += fly_x_velocity fly_y += fly_y_velocity } 4
Tracking and Pursuit if (player_x > monster_x) monster_x++ if (player_x < monster_x) monster_x-- if (player_y > monster_y) monster_y++ if (player_y < monster_y) monster_y-5
Tracking and Evasion if (player_x < monster_x) monster_x++ if (player_x > monster_x) monster_x-- if (player_y < monster_y) monster_y++ if (player_y > monster_y) monster_y-6
Patterns and Scripts • • Get keys out of pocket Put key in door Open door Get in car Close door Put key in ignition Turn key to start car 7
Behavioral State Systems • Finite state machines – give them enough states to be interesting (each represents different goals or motives) – lots of inputs (environment attributes and other object states) • Some states may need substates or multi-part actions (e. g. move toward opponent and attack 20% of the time) • Personality of characters and spheres of influence may also be factored in as probabilistic input values to state entry or transitions 8
Memory and Learning • Memory is really just a decision to record a few details – record changes to frames – recording the last few moves • Learning is self-improvement – neural networks – genetic algorithms – numerical approaches (e. g. Samuels & checkers) – structural approaches 9
Deciding Between AI Techniques • Use deterministic techniques for simple behavior (e. g. rocks or missiles) • Add randomness and patterns for smart elements (e. g. birds or spaceships) • Use finite state machines for important game characters • For computer controlled opponents use everything (including memory and learning) 10
- Slides: 10