AI for Computer Games (Or the lack of it…) Outline Uses of AI in computer games Modern computer game “AI” Special techniques Ideas.
Download ReportTranscript AI for Computer Games (Or the lack of it…) Outline Uses of AI in computer games Modern computer game “AI” Special techniques Ideas.
AI for Computer Games (Or the lack of it…) Outline Uses of AI in computer games Modern computer game “AI” Special techniques Ideas for future computer game AI Sources for further information Uses of AI in Computer Games Currently, AI is primarily used for controlling non-playable characters (NPCs) Must be fast! since the game is real-time Many AI running in parallel for each NPC in active play Must be extensible Game AI has little to do with the AI that is studied in academia Game AI Game AI is primarily behavioral, since this is how player’s perceive the intelligence Game AI is not focused on winning – it enhances play and enjoyment “Cheating” is perfectly acceptable so long as the suspension of disbelief is maintained Too much autonomy and unpredictability might be undesirable Game AI: Technical Considerations Usually the AI for the games is added later in the development process Usually, game development starts from scratch, so not much code is reused Currently, standards are forming for AI algorithms to allow them to be plug-in components Game AI for Navigation Realistic navigation is very hard due to the complexity of the environment, the storyline, etc. Game AI has extensively used A* for route finding Destination This is probably the most-used true AI technique Waypoints Start Navigation occurs at multiple scales Once A* finds the general path through waypoints, steering methods can find the path between waypoints These compute the path from a limited perspective Steering applies to individuals or groups Groups have a “group vector” that contribute to individual movements obstacle repelling force from obstacle vector towards waypoint final movement vector Current position Behavior control Most NPC controllers use finite-state machines or decision trees to determine the behavior mode E.g. when hit, switch to defensive mode These are usually implemented via scripts and if/then statements From (Nareyek 2004) Behavior control Once the controller selects the mode, one of several scripted reactions are then used FSMs and Decision Trees can be broken down into simple if/then statements This is a rule-based control system Fast, efficient, and extensible! Farther NPCs may be allocated longer reasoning times for more complex decisions Age of Empires Idea: AI would learn the player’s preferred attacks, locations, defenses, etc. and carry them over between campaigns [never actually implemented] User can tweak AI parameter config files Virtua Fighter 2 & 4 Virtua Fighter 2 opponents could do basic pattern recognition (learn favored moves and sequences) to determine which countermoves to use Virtua Fighter 4 allows you to train a fighter to use your moves and combos, then have them fight for you Creatures 1, 2 & 3 Creatures uses neural nets to learn behaviors over time and genetic algorithm concepts to breed neural nets and creatures This game is an example of Artificial Life Half-life Uses “schedule-driven state machines” to control NPCs’ behavior The NPC’s state determines the schedule of behavior available to it E.g. Multiple NPCs might decide to retreat, but some might crawl, walk, run, etc. Uses flocking and formation rules to control squad behavior. Unreal Unreal has enemy flocking behaviors, similar to Half-life Unreal has a extensive script language that allows the development of AI bots The Unreal Engine is an excellent simulation framework for AI research The Sims Uses “smart terrain” Embeds behavior code in the objects themselves • How to do the behaviors • Conditions for the behaviors An object-oriented approach Allows a VERY extensible environment Racing Games Dirt Track Racing : Uses neural networks to control opponent driving Formula 1 Grand Prix 2 : Opponent driving styles based on real Formula 1 drivers General ideas: Most opponents use pre-stored information on how to approach upcoming track Opponents could be trained based on real drivers with specific styles of driving AI for Computer Graphics Use a probabilistic network to computer the player’s next move to pre-load graphics Use AI to control animations Flocking behavior Swarm behavior Use grammar techniques to generate graphics (e.g. growing trees) Specialized AI: Flocking Boids Boids use a combination of three simple rules to produce complex flocking behavior Separation: avoid colliding with local flockmates and obstacles Alignment: match the average heading and velocity of local flockmates Cohesion: move toward the centroid of local flockmates Each rule contributes a vector to a sum that gives the final movement vector First used commercially in Batman Returns for the bat swarm and penguin animations From http://www.red3d.com/cwr/boids/ Specialized AI: Flocking Boids Boid animations: http://www.vergenet.net/~conrad/java/Boids/ example2.html http://www.vergenet.net/~conrad/java/Boids/ coogee.html http://www.red3d.com/cwr/boids/ Boids are an example of emergent behavior: global behavior that results from local rules Aside: emergent behaviors Ant colony optimization Ants wander randomly Upon finding food, they return to the nest laying pheromones Ants are more likely to follow pheromone trails More ants traveling the path with food reinforces the pheromone trail Used for path-finding, TSP, other optimization problems An example of swarm intelligence http://website.lineone.net/~john.montgomery/demos/ants.html Specialized AI: Growing Trees Grammars can be used to grow trees in computer graphics Not quite AI, but computational linguistics are AI http://chriscoyne.com/cfdg/graphics/ http://www.monkeyengines.co.uk/demo/ Ideas for future game AI Major applications of Game AI Controlling NPCs Adapting difficulty automatically Adapting environment automatically Story generation Really, only the first has been extensively used. The second, perhaps, only a bit. Future directions: Controlling NPCs Genuine “hunting” behavior Faster algorithms to allow for more sophisticated AI Team organization E.g. retreating and getting reinforcements (Half-life) Emotion control Subtle responses Feedback from player’s treatment Future Directions Perception control Detecting interesting features of environment for planning (Age of Empires) Determining which features of environment are accessible Adapting the difficulty automatically Must optimize the player’s experience Can use existing techniques Future directions: Adapting the environment For example, if a player is searching for someone, making small directional sounds to help guide their search at key times Automatic placement of objects to enhance or lessen difficulty Dynamic terrain generation Future Directions: Story Generation Automatic generation of elements to move the player along a story outline The story becomes a series of plot elements (events) linked via the AI Requires natural language understanding and generation Think of the Holodeck from Star Trek Sources for Further Information Creatures – including free downloads http://www.gamewaredevelopment.co.uk/creatures_index.php ACM Queue article on Game AI http://www.ai-center.com/publications/nareyek-acmqueue04.pdf The Game AI site http://www.gameai.com/ Textbook chapter: The role of AI in computer game genres http://ai.eecs.umich.edu/people/laird/papers/book-chapter.htm “Cool Stuff…” Stanley’s Technology Path Planning Laser Terrain Mapping Learning from Human Drivers Adaptive Vision Sebastian Stanley Images and movies taken from Sebastian Thrun’s multimedia website. Junior My research… Knowledge transfer and transfer learning Representation discovery Pattern discovery in temporal data Interactive Artificial Intelligence