Скачать презентацию Introduction to Game AI CS 395 Game Design Скачать презентацию Introduction to Game AI CS 395 Game Design

f6805f0c740cfbf863a985b7ba2df5f8.ppt

  • Количество слайдов: 61

Introduction to Game AI CS 395 Game Design Spring 2003 Introduction to Game AI CS 395 Game Design Spring 2003

Expectations on term projects • Designing and implementing a full game from scratch can Expectations on term projects • Designing and implementing a full game from scratch can be too hard • Exceptions: Text-based interactive fiction, arcade games, … • What to do?

Solution One: Leverage – We’re supplying toolkits and resources for some projects • Neverworld Solution One: Leverage – We’re supplying toolkits and resources for some projects • Neverworld 3 • Self-explanatory simulator compiler – There are lots of resources around if you look • Game engines • Graphics frameworks • Games with available source code (e. g. , Free. Civ) – Building on top of such software is strongly recommended.

Solution Two: Extension an existing game • Extensions to existing games can be acceptable Solution Two: Extension an existing game • Extensions to existing games can be acceptable (aka “mods”) – Must involve significant design work, including analysis of tradeoffs and portfolio of experiments generated in the course of design – Must be substantially larger than a typical homework problem

Term Project To Do List • Identify your teammates early • Identify your project Term Project To Do List • Identify your teammates early • Identify your project area early • Request for Proposals will be made very soon (Thursday)

Overview • Why AI is important for games – And why it needs improving Overview • Why AI is important for games – And why it needs improving • Roles for AIs in games – The opponent – Characters – The World • Example credits: – Spatial reasoning in MOO 3 • Thanks to Kevin Dill for screenshots and example – Tactical decision making in first-person shooters • Thanks to John Laird, Mike Van. Lent, for their GDC 2001 tutorial material

Why AI is important for games • Essential to the modeled world – – Why AI is important for games • Essential to the modeled world – – NPC’s of all types: opponents, helpers, extras, … Unrealistic characters reduced immersion Stupid, lame behaviors reduced fun Superhuman behaviors reduced fun • Until recently, given short shrift by developers – Graphics ate almost all the resources – Can’t start developing the AI until the modeled world was ready to run • AI development always late in development cycle • Situation rapidly changing – AI now viewed as helpful in selling the product – Still one of the key constraints on game design

Interview with Soren Johnson, www. gamespy. com Game. Spin: What about the [civ 3] Interview with Soren Johnson, www. gamespy. com Game. Spin: What about the [civ 3] AI? One of the complaints that players have always had about the AI is that it cheats. Does it still cheat? Johnson: The AI has been totally reworked. We started from scratch. We stretched out the difficulty levels. Chieftain is easier than it was in Civ II and Deity is now harder. Does the AI cheat? Yes, but sometimes in favor of the player! Below Prince level it cheats for the player, and above Prince level it cheats against the player. At Prince level there is no cheating. Right now, no one at Firaxis can beat the AI at Deity level, though we certainly expect players to find ways to do so within a few months of the game being released. When we rewrote the AI we threw out the old AI completely. We also looked at some popular tactics like ICS -- infinite city sprawl -- that some players used to beat the AI in Civ II at Deity level. These won't work in Civ III.

AI in game marketing • “It may be hard to believe that the future AI in game marketing • “It may be hard to believe that the future of 21 st century art is represented by a giant bipedal tiger who farts, break dances and flings livestock around when he's bored. ” – Review of Black and White in Salon. com, 4/10/2000 • “The most versatile 3 D Batman yet, with over 500 animated movements, special fighting moves and a multi-functional cape with its own A. I. ” – from www. xbox. com

Game flaws engendered by bad AI • Mindless hordes of opponents – “Life is Game flaws engendered by bad AI • Mindless hordes of opponents – “Life is much, much easier thanks to random numbers” • Rampant cheating by computer opponents • Focus on violence as principle mode of interaction

Roles for AIs in games • The opponent • Characters • The world Roles for AIs in games • The opponent • Characters • The world

The opponent • Emphasis: Outsmarting you • Example: Classic board games • Questions: – The opponent • Emphasis: Outsmarting you • Example: Classic board games • Questions: – What problems do they have to solve? – How do they work?

Opponents in classic board games • Move generator figures out what moves are possible Opponents in classic board games • Move generator figures out what moves are possible • Static evaluator figures out how good each move is, based on changes in board position • Search algorithms look ahead, in a simple form of mental simulation, to figure out the best alternative based counter-moves and counter-moves

Example Current board position Example Current board position

Example 6 18 Your possible moves, as produced by move generator -2 How good Example 6 18 Your possible moves, as produced by move generator -2 How good each move looks in terms of its immediate results, as computed by the static evaluator

Your opponent’s possible countermoves 8 2 Example -100 25 What position these countermoves leave Your opponent’s possible countermoves 8 2 Example -100 25 What position these countermoves leave you in 18 12

This process can be continued until resources run out Example Use minimax to estimate This process can be continued until resources run out Example Use minimax to estimate your best move

Minimax Example Run static evaluator on leaves 8 -10 3 5 -98 210 108 Minimax Example Run static evaluator on leaves 8 -10 3 5 -98 210 108 22 -12 18 -40

Minimax Example Propagate scores upward by taking max when your turn 8 8 -10 Minimax Example Propagate scores upward by taking max when your turn 8 8 -10 5 3 5 -98 210 108 18 22 22 -12 18 -40

Propagate scores upward taking min when opponent’s turn Minimax Example -98 5 8 8 Propagate scores upward taking min when opponent’s turn Minimax Example -98 5 8 8 -10 5 3 5 18 -98 210 108 18 22 22 -12 18 -40

Select best option based on deeper estimate Minimax Example -98 5 8 8 -10 Select best option based on deeper estimate Minimax Example -98 5 8 8 -10 5 3 5 18 -98 210 108 18 22 22 -12 18 -40

Search issues • Lots of techniques for more efficient search – Alpha-beta pruning, “book” Search issues • Lots of techniques for more efficient search – Alpha-beta pruning, “book” openings, stability measures, conspiracy numbers • Basic problem is still exponential – Search and brute force only go so far – Q: Why did Deep Blue win? • Knowledge/search tradeoff – Simon & Chase experiments: Chess experts use spatial memory for board positions – Standard patterns as encoding lessons from experience/deeper search?

Opponents in turn-based strategy games • Examples: Many strategy war games, Civilizationstyle games • Opponents in turn-based strategy games • Examples: Many strategy war games, Civilizationstyle games • What problems do they have to solve? • How are they similar to, and different from, board games?

nu. Sketch Battlespace nu. Sketch Battlespace

Comic Graphs provide visualization of alternatives, support for AAR Comic Graphs provide visualization of alternatives, support for AAR

Example from MOO 3 Where should you put your next colony? Colony Enemy Colony Example from MOO 3 Where should you put your next colony? Colony Enemy Colony Homeworld

Understanding your terrain is key Colony Inside your empire Enemy Colony Homeworld Understanding your terrain is key Colony Inside your empire Enemy Colony Homeworld

Understanding borders prioritizes threats Good choice for blocking threats Colony Enemy Colony Homeworld Understanding borders prioritizes threats Good choice for blocking threats Colony Enemy Colony Homeworld

Multiple ways to deal with threats Colony Enemy Colony Homeworld Multiple ways to deal with threats Colony Enemy Colony Homeworld

Example: e. TDG 10 Map Example: e. TDG 10 Map

SR Regions for e. TDG 10 map (handsketched) SR Regions for e. TDG 10 map (handsketched)

Hard constraints from SR regions Hard constraints from SR regions

Voronoi diagram for free space Voronoi diagram for free space

Junctions provide seeds for open regions Junctions provide seeds for open regions

Regions extended from seeds Regions extended from seeds

Edges outside regions form corridor seeds Edges outside regions form corridor seeds

Combined results for e. TDG 10 Combined results for e. TDG 10

The coordination problem Telling your brigades to attack Scum Division will generally lead to The coordination problem Telling your brigades to attack Scum Division will generally lead to them all being slaughtered

The coordination problem Lack of coordination will lead them down same path, each being The coordination problem Lack of coordination will lead them down same path, each being wiped out one at a time, even though a coordinated attack would have succeeded What if they had a richer, non-local understanding of space?

The coordination problem Visually identify paths (mobility corridors, avenues of approach) as part of The coordination problem Visually identify paths (mobility corridors, avenues of approach) as part of terrain analysis Enable player to communicate intent via sketching and language, specifying paths and synchronization

Richer spatial reasoning will lead to better opponents Richer spatial reasoning will lead to better opponents

Richer spatial reasoning will lead to better opponents Funnel for focusing combat power Narrow Richer spatial reasoning will lead to better opponents Funnel for focusing combat power Narrow route with no side ways out

Characters • Examples: First-person shooters, adventure/action games • What problems do they have to Characters • Examples: First-person shooters, adventure/action games • What problems do they have to solve?

The World • Common trick: Share AI computations between computer characters – Pathfinding and The World • Common trick: Share AI computations between computer characters – Pathfinding and navigation – Awareness of player actions and alignment – Strategic thinking • Examples: More than you might think

Types of Behavior to Capture • • • Wander randomly if don’t see or Types of Behavior to Capture • • • Wander randomly if don’t see or hear an enemy. When see enemy, attack When hear an enemy, chase enemy When die, respawn When health is low and see an enemy, retreat • Extensions: – When see power-ups during wandering, collect them.

Execution Flow of an AI Engine Sense Finite-state machines G Decision trees A M Execution Flow of an AI Engine Sense Finite-state machines G Decision trees A M Think E Neural nets ? Fuzzy logic Rule-based systems Planning systems Act

Conflicting Goals for AI in Games Goal Driven Knowledge Intensive Low CPU & Memory Conflicting Goals for AI in Games Goal Driven Knowledge Intensive Low CPU & Memory Usage Reactive Human Characteristics Fast & Easy Development

Complexity • Complexity of Execution – How fast does it run as more knowledge Complexity • Complexity of Execution – How fast does it run as more knowledge is added? – How much memory is required as more knowledge is added? • Complexity of Specification – How hard is it to write the code? – As more “knowledge” is added, how much more code needs to be added?

Expressiveness of Specification • What can easily be written? • Propositional: – Statements about Expressiveness of Specification • What can easily be written? • Propositional: – Statements about specific objects in the world – no variables – Jim is in room 7, Jim has the rocket launcher, the rocket launcher does splash damage. – Go to room 8 if you are in room 7 through door 14. • Predicate Logic: – – – Allows general statement – using variables All rooms have doors All splash damage weapons can be used around corners All rocket launchers do splash damage Go to a room connected to the current room.

Example FSM Events: Attack E, -D E=Enemy Seen S=Sound Heard E E -E E Example FSM Events: Attack E, -D E=Enemy Seen S=Sound Heard E E -E E Wander -E, -S, -D D=Die D Chase S, -E, -D S -S D D -E Code … S Spawn D … Action (callback) performed when a transition occurs

Example FSM Events: Attack E, -D E=Enemy Seen S=Sound Heard E E -E E Example FSM Events: Attack E, -D E=Enemy Seen S=Sound Heard E E -E E Wander -E, -S, -D D=Die D Chase S, -E, -D S -S D D -E S Spawn D Problem: No transition from attack to chase

Example FSM - Better Attack E, -D, -S S Attack-S E, -D, S -S Example FSM - Better Attack E, -D, -S S Attack-S E, -D, S -S E D E -E -E E Wander -E, -S, -D D Chase S, -E, -D S -S D D -E S Spawn D Events: E=Enemy Seen S=Sound Heard D=Die

Example FSM with Retreat Attack-E E, -D, -S, -L Attack-ES E, -D, S, -L Example FSM with Retreat Attack-E E, -D, -S, -L Attack-ES E, -D, S, -L S -S L Retreat-S -E, -D, S, L L -L E Events: -E Wander-L -E, -D, -S, L L E E -L -L E L Retreat-ES E, -D, S, L -S -L S -E Wander -E E -E, -D, -S, -L D D Spawn D (-E, -S, -L) S Chase -E, -D, S, -L Retreat-E E, -D, -S, L E=Enemy Seen S=Sound Heard D=Die L=Low Health Each feature with N values can require N times as many states

Hierarchical FSM • Expand a state into its own FSM Attack E/-E Wander Pick-up Hierarchical FSM • Expand a state into its own FSM Attack E/-E Wander Pick-up Powerup S/-S Chase Start Turn Right Go-through Door Die Spawn

Non-Deterministic Hierarchical FSM (Markov Model) Wander No enemy Attack Approach Aim & Slide Right Non-Deterministic Hierarchical FSM (Markov Model) Wander No enemy Attack Approach Aim & Slide Right & Shoot . 3 Aim & Slide Left & Shoot . 3. 4 . 3. 3 Start . 4 Aim & Jump & Shoot Die Start

Implementation • • Compile into an array of state-name, event state-name : = array[state-name, Implementation • • Compile into an array of state-name, event state-name : = array[state-name, event] state Uses state-name to call execution logic Add buffers to queue up events in case get simultaneous events • Hierarchical • Create array for every FSM • Have stack of states • Classify events according to stack • Update state which is sensitive to current event

FSM Evaluation • Advantages: – Very fast – one array access – Can be FSM Evaluation • Advantages: – Very fast – one array access – Can be compiled into compact data structure • Dynamic memory: current state • Static memory: state diagram – array implementation – Can create tools so non-programmer can build behavior – Non-deterministic FSM can make behavior unpredictable • Disadvantages: – Number of states can grow very fast • Exponentially with number of events: s=2 e – Number of arcs can grow even faster: a=s 2 – Propositional representation • Difficult to put in “pick up the better powerup”, attack the closest enemy

References • Web references: – www. gamasutra. com/features/19970601/build_brains_into_games. htm – csr. uvic. ca/~mmania/machines/intro. htm References • Web references: – www. gamasutra. com/features/19970601/build_brains_into_games. htm – csr. uvic. ca/~mmania/machines/intro. htm – www. erlang/se/documentation/doc 4. 7. 3/doc/design_principles/fsm. html – www. microconsultants. com/tips/fsmartcl. htm – http: //www. qrg. nwu. edu/papers/Files/How_QSR_can_improve_str ategy_game_AIs_A 3 ISS_2001. PDF • Deloura, Game Programming Gems, Charles River Media, 2000, Section 3. 0 & 3. 1, pp. 221 -248.