10/4/2012 Introduction to Artificial Intelligence (AI) � Many applications for AI � Computer vision, natural language processing, speech recognition, search … � But games are some of the more interesting apps Artificial Intelligence � Games need opponents that are challenging, or allies that are helpful � In general, any unit that is credited with acting on own � But human-level intelligence still too hard � But under narrow circumstances can do pretty well (ex: chess and Deep Blue ) � Fortunately, for many games, circumstances often constrained (by game rules) � Artificial Intelligence (around in CS for some time) Where to Learn AI at WPI? AI for CS different than AI for Games � IMGD 3000 � Must be smart, but purposely flawed � Introduction to idea � Loose in fun, challenging way � “Whirlwind” view of techniques � No unintended weaknesses � Basic pathfinding (A*) � No “golden path”, readily exploitable weakness to defeat � Finite State Machines � IMGD 4000 � Must not look “dumb” � Details on basic game AI commonly used in many games � Must perform in real time � Decision trees � Even turn-based games have humans waiting � Hierarchical state machines � Advanced game AI used in more sophisticated games � Often, configurable by designers � Advanced pathfinding � Not hard coded by programmer � Behavior trees � � “Amount” and type of AI for game can vary IMGD 4100 (in 2014) “AI for Interactive Media and Games” � Fuzzy logic � RTS needs global strategy, FPS needs modeling of individual � Goal-driven agent behavior units at “footstep” level � CS 4341 “Artificial Intelligence” � RTS most demanding: 3 full-time AI programmers � Machine learning � Puzzle, street fighting: 1 part-time AI programmer � Planning � Natural language understanding Outline Common Game AI Techniques (1 of 4) � Whirlwind tour of common techniques � Introduction (done) � For each, provide idea and example (where appropriate) � Common AI Techniques (next) � Movement � Flockin g � Promising AI Techniques � Move groups of creatures in natural manner � Each creature follows three simple rules � Pathfinding (A*) � Separation – steer to avoid crowding flock mates � Alignment – steer to average flock heading � Finite State Machines � Cohesion – steer to average position � Example – use for background creatures such as birds or fish. � Summary Modification can use for swarming enemy http://processing.org/learn � Formations ing/topics/flocking.html � Like flocking, but units keep position relative to others � Example – military formation (archers in the back) 1
10/4/2012 Common Game AI Techniques (3 of 4) Common Game AI Techniques (2 of 4) � Behavior organization � Movement (continued) � Emergent behavior � A* pathfinding � Create simple rules result in complex interactions � Cheapest path through environment http://www.youtube.com � Example: game of life, flocking /watch?v=XcuBvj0pw-E � Directed search exploit knowledge about destination to � Command hierarchy intelligently guide search � Deal with AI decisions at different levels � Fastest, widely used � Modeled after military hierarchy (i.e. General does strategy, Foot � Can provide information (i.e. virtual breadcrumbs) so can Soldier does fighting/tactics) follow without recompute � Example: Real-time or turn based strategy games - overall strategy, � Details later! squad tactics, individual fighters � Obstacle avoidance � Manager task assignment � A* good for static terrain, but dynamic such as other players, � When individual units act individually, can perform poorly choke points, etc., cause problems � Instead, have manager make tasks, prioritize, assign to units � Example – same path for 4 units, so get “clogged” in narrow � Example: baseball – 1 st priority to field ball, 2 nd cover first base, 3 rd to opening. Instead, predict collisions so furthest back slow backup fielder, 4 th cover second base. All players try to get ball, then down, avoid narrow bridge, etc. disaster! Manager determines best person for each. If hit towards 1 st and 2 nd , first baseman fields ball, pitcher covers first base, second basemen covers first Outline Common Game AI Techniques (4 of 4) � Influence map � Introduction (done) � 2d representation of “power” in game � Break into cells, where units in each cell are summed � Common AI Techniques (done) up � Units have influence on neighbor cells (typically, � Promising AI Techniques (next) decrease with range) � Insight into location and influence of forces � Pathfinding (A*) � Example – can be used to plan attacks to see where enemy is weak or to fortify defenses. SimCity used � Finite State Machines to show pollution coverage, etc. � Level of Detail AI � Summary � In graphics, polygonal detail less if object far away � Same idea in AI – computation less if won’t be seen � Example – vary update frequency of NPC based on position from player Promising AI Techniques (2 of 3) Promising AI Techniques (1 of 3) � Filtered randomness � Bayesian network � Want randomness to provide unpredictability to AI � A probabilistic graphical model with variables and probable � But even random can look odd sometimes (e.g. if 4 heads in influences a row, player will think something wrong. And, if flip coin � Example - calculate probability of patient having specific disease 100 times, there likely will be streak of 8) given symptoms � Example – AI can infer if player has warplanes, etc. based on what � E.g. spawn at same point 5 times in a row, then bad it sees in production so far � Compare random result to past history and avoid � Can be good to give “human-like” intelligence without cheating or � Fuzzy logic being too dumb � Decision tree learning � Traditional set, object belongs or not � Series of inputs (usually game state) mapped to output (usually � In fuzzy, can have relative membership (e.g. hungry, not thing want to predict) hungry. Or “in-kitchen” or “in-hall” but what if on edge?) � Example – health and ammo � predict bot survival � Cannot be resolved by coin-flip � Modify probabilities based on past behavior � Example – Black and White could stroke (reward) or slap (punish) � Can be used in games – e.g. assess relative threat creature. Creature learned what was good and bad. 2
10/4/2012 Promising AI Techniques (3 of 3) Outline � Genetic algorithms � Search and optimize based on evolutionary principles � Introduction (done) � Good when “right” answer not well-understood � e.g. may not know best combination of AI settings. Use genetic � Common AI Techniques (done) algorithsm to try out � Often expensive, so do offline � Promising AI Techniques (done) � N-Gram statistical prediction � Predict next value in sequence (e.g.- 1818180181 … next will � Pathfinding (A*) (next) probably be 8) � Search backward � values (usually only 2 or 3) � Finite State Machines � Example � Street fighting (punch, kick, low punch…) � Summary � Player does low kick and then low punch. What is next? � Uppercut 10 times (50%), low punch (7 times, 35%), sideswipe (3 times, 15%) � Can predict uppercut or, proportionally pick next (e.g. roll dice) Pathfinding Representing the Space � System needs to understand � Often seems obvious and the level natural in real life � But not full information, only � E.g. Get from point A to B relevant information (e.g. is it � go around lake passable, not water vs. lava vs. � For computer controlled tar…) � Common representations player, may be difficult � 2d Grid � E.g. Going from A to B goes � Each cell passable or impassible through enemy base! � Neighbors automatic via indices � Want to pick “best” path (e.g. 8 neighbors) � Need to do it in real-time � Waypoint graph � Connect passable points � Q: why can’t just figure it � Neighbors flexible (but needs to out ahead of time (i.e. be stored) � Good for arbitrary terrain (e.g. before game starts)? 3d) Finding a Path Consider Simple - Random Trace � Path – a list of cells, points � Agent moves towards goal or nodes that agent must traverse to get to from start � If goal reached, then done to goal � If obstacle � Some paths are better than others � Trace around obstacle clockwise or � measure of quality � Algorithms that guarantee counterclockwise (pick randomly) until free path path called complete towards goal � Some algorithms guarantee � Repeat procedure until goal reached optimal path (best quality) � Others find no path (under � (Humans often do this in mazes) some situations) 3
Recommend
More recommend