100 likes | 252 Views
AI and Game Programming. CIS 487/587 Bruce R. Maxim UM-Dearborn. Selected AI Techniques. Deterministic algorithms Heuristic programming Patterns and scripts Finite state machines Production systems Genetic algorithms Neural networks. Deterministic Algorithms. Each clock tick
E N D
AI and Game Programming CIS 487/587 Bruce R. Maxim UM-Dearborn
Selected AI Techniques • Deterministic algorithms • Heuristic programming • Patterns and scripts • Finite state machines • Production systems • Genetic algorithms • Neural networks
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
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 }
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--
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--
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
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
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
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)