1 / 86

Game Programming (Game AI Technologies)

Game Programming (Game AI Technologies). 2011. Spring. What is AI?. Artificial Intelligence (AI) The computer simulation of intelligent behavior What is Intelligence? Behavior that exhibits great ability to adapt and solve complex problems Produce results that are completely unrealistic

Download Presentation

Game Programming (Game AI Technologies)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.


Presentation Transcript

  1. Game Programming(Game AI Technologies) 2011. Spring

  2. What is AI? • Artificial Intelligence (AI) • The computer simulation of intelligent behavior • What is Intelligence? • Behavior that exhibits great ability to adapt and solve complex problems • Produce results that are completely unrealistic • Behavior that is close to that of human • Humans are not always brilliant Game AIs are not just “problem solving robots” but lifelike entities

  3. Roles of AI in Games • Opponents • Teammates • Strategic Opponents • Support Characters • Autonomous Characters • Commentators • Camera Control • Plot and Story Guides/Directors

  4. AI Entity • AI entity • Agent • A virtual character in the game world • Ex) enemies, NPCs, sidekicks, an animated cow in a field • These are structured in a way similar to our brain • Abstract controller • A structure quite similar to the agent, but each subsystem works on a higher level than an individual • Ex) strategy game  The entity that acts like the master controller of the CPU side of the battle

  5. Goals of AI action game opponent • Provide a challenging opponent • Not always as challenging as a human -- Quake monsters. • What ways should it be subhuman? • Not too challenging. • Should not be superhuman in accuracy, precision, sensing, ... • Should not be too predictable. • Through randomness. • Through multiple, fine-grained responses. • Through adaptation and learning.

  6. Structure of an Intelligent Agent • Sensing: perceive features of the environment. • Thinking: decide what action to take to achieve its goals, given the current situation and its knowledge. • Acting: doing things in the world. • Thinking has to make up for limitations in sensing and acting. • The more accurate the models of sensing and acting, the more realistic the behavior.

  7. Simple Behavior • Random motion • Just roll the dice to pick when and which direction to move • Simple pattern • Follow invisible tracks: Galaxians • Tracking • Pure Pursuit • Move toward agent’s current position • Ex) Head seeking missile • Lead Pursuit • Move to position in front of agent • Collision • Move toward where agent will be • Evasive – opposite of any tracking • Delay in sensing gives different effects

  8. Moving in the World: Path Following • Just try moving toward goal. Goal Source

  9. Problem Goal Source

  10. Create Avoidance Regions Goal Source

  11. Path Finding • A* Algorithm • find a shortest-path between two points on a map • Starting with the base node • Expand nodes using the valid moves • Each expanded node is assigned a “score” • Iterate this process • until these paths prove invalid or one of these paths reach the target

  12. Path Finding • The overall score for a state • f(node) = g(node) + h(node) • f(node): the total score (the sum of g and h) • g(node): the cost to get from the starting node to this node(측정치) • A component that accounts for our past behavior • h(node): the estimated cost to get from this node to the goal(추정치) • A component that estimate our future behavior • The Manhattan distance (4-connected game world) • Manhattan(p1, p2) = | p2.x – p1.x | + | p2.z – p1.z | Ex) p1 (2,2), p2 (1,0)  h = 3 • Euclidean distance (8-connected)

  13. Game AI • Game AI • A* algorithm • Quite smart, but not very realistic • Need to keep a reasonable degree of imperfection built into the AI design • A balance between generating • behavior that is both highly evolved and sophisticated • And behavior that is more or less human Game AIs are not just “problem solving robots” but lifelike entities Comparison between A* and a human path finder

  14. Can be extremely expensive Can be modulated by “think” Finite-state machines Decision trees Neural nets Fuzzy logic Rule-based systems Planning systems Execution Flow of an AI Engine Sense Environment Think Act

  15. Structure of an AI System • Sensing the world (The slowest part of the AI) • All AIs need to be aware of their surroundings • use that information in the reason/analysis phase • What is sensed and how largely depend on the type of game • Ex) an individual enemy in Quake • Where is the player and where is he looking? • What is the geometry of the surroundings? • Which weapons am I using and which is he using? • Ex) master controller in a strategy game (Age of Empires) • What is the balance of power in each subarea of the map? • How much of each type of resource do I have? • What is the breakdown of unit types: infantry, cavalry, … • What is my status in terms of the technology tree? • What is the geometry of the game world?

  16. Structure of an AI System • Memory • Storing AI data is often complex • the concepts being stored are not straightforward • In an individual level AI (the less of a problem) • Store points, orientations • and use numeric values to depict the “state” the AI is in • A master controller • These data structures are nontrivial • Ex) how do we store the balance of power, a path? • Case-by-case solutions Can it remember prior events? For how long? How does it forget?

  17. Structure of an AI System • Analysis/Reasoning Core (= Think) • Uses the sensory data and the memory • to analyze the current configuration • Make a decision • Can be slow or fast depending on the number of alternatives and the sensory data to evaluate • Slow process  Chess playing • Fast process  moving a character in Quake

  18. Structure of an AI System • Action/Output System • Permeate actions and responses • Many games exaggerate the action system • Personality and perceive intelligence was enhanced • The character’s intensions are obvious • Personality is conveyed • Ex) Super Mario Bros (creatures similar AIs)

  19. Game Programming(Action Oriented AI) 2011. Spring

  20. Action Oriented AI • Action Oriented AI • Overview of AI methods used in fast-paced action games. • Action: intelligent activity that involves changes of behavior at a fast speed. • Locomotion behaviors • Ex) a character runs in Mario • Simple aggression or defense • Ex) enemies shooting or ducking in Quake

  21. Object Tracking • Object Tracking • Eye contact (aim at a target: 조준하기) • Given an orientation, a point in space • Computing the best rotation to align the orientation with the point • Solution • 2D Hemiplane Test • 3D Version: Semispaces

  22. Eye Contact: 2D Hemiplane Test • 2D Hemiplane Test • Top-down view, overseeing the X,Z plane point mypos; // position of the AI float myyaw; // yaw angle in radians. I assume top-down view point hispos; // position of the moving target • The line formed by mypos and myyaw X = mypos.x + cos(myyaw) * t Z = mypos.z + sin(myyaw) * t • Solving for t (X – mypos.x)/cos(myyaw) - (Z – mypos.z)/sin(myyaw) = 0 • Which side ? F(X,Z)= (X – mypos.x)/cos(myyaw) - (Z – mypos.z)/sin(myyaw) F(X,Z) > 0 (it lies to one side of the line) F(X,Z) = 0 (it lies exactly on the line) F(X,Z) < 0 (it lies to the opposite side) 3 sub, 2 div, 1 comparison

  23. 3D version: Semispaces • 3D version: Semispaces • Need to work with the pitch and yaw angles • The equation of a unit sphere x = cos(pitch) cos(yaw) y = sin(pitch) z = cos(pitch) sin(yaw) • Use two plane to detect both left-right and the above-below test • Which side? if (vertplane.eval(target)>0) yaw-=0.01; else yaw+=0.01; if (horzplane.eval(target)>0) pitch-=0.01; else pitch+=0.01;

  24. Chasing • Chasing • Moving forward while keeping eye contact with the target • Chase 2D: Constant speed • Depends on the relationship between • our speed, the target’s speed, and our turning ability void chase(point mypos, float myyaw, point hispos) { reaim(mypos, myyaw, hispos); mypos.x = mypos.x + cos(myyaw) * speed; mypos.z = mypos.z + sin(myyaw) * speed; } aiming and advancing

  25. Chasing • Predictive chasing • Not aim at the target directly • but try to anticipate his movement and guess his intensions • Tree step approach (instead of aiming and advancing) • Calculate a projected position • Aim at that position • Advance • void chase(point mypos, float myyaw, point hispos,point prevpos) • { • point vec=hispos-prevpos; // vec is the 1-frame position difference • vec=vec*N; // we project N frames into the future • point futurepos=hispos+vec; // and build the future projection • reaim(mypos,myyaw,futurepos); • mypos.x = mypos.x + cos(myyaw) * speed; • mypos.z = mypos.z + sin(myyaw) * speed; • }

  26. Evasion • Evasion • The opposite of chasing • In stead of trying to decrease the distance to the target • Try to maximize it void evade(point mypos, float myyaw, point hispos) { reaim(mypos, myyaw, hispos); negated mypos.x = mypos.x + cos(myyaw) * speed; mypos.z = mypos.z + sin(myyaw) * speed; }

  27. Patrolling • Patrolling • Store a set of waypoints that will determine the path followed by the AI • Two configurations (waypoints) • Cyclic: W1 W2 W3 W4 W5 W1 W2 W3 W4 W5 … • Ping-pong: W1 W2 W3 W4 W5 W4 W3 W2 W1 W2 … • Implementation • Two state finite machine • Advance toward the next waypoint • Update next waypoint • Adding a third state • Chase behavior • Triggered by using a view cone for the AI • Ex) Commandos

  28. Hiding and Taking Cover • Hiding and Taking Cover • AIs to run for cover and remain unnoticed by the player • Taking cover • Find a good hiding spot • Move there quickly (= chase routine) • Three data items • Position and orientation of the player • Our position and orientation • The geometry of the level

  29. Hiding and Taking Cover • Actual algorithm • Finding the closest object to the AI’s location • Using the scene graph • Computing a hiding position for that object • Shoot one ray from the player position to the barycenter of object • Compute a point along the ray that’s actually behind the object • Ex) Medal of Honor

  30. Shooting • Shooting • Infinite-Speed Targeting • Very high speed compared to the speed of the target (virtually zero) • Aligned with the target at the moment of shooting • Abuse infinite-speed weapon (Ex: laser gun) • Unbalance your game • Solution • The firing rate: very low • The ammunition: limited • The weapon: hard to get

  31. Shooting • Real-World Targeting • Shoots projectiles at a limited speed • Shooting fast moving target is harder than shooting one that stand still • Finite-speed devices (sniper-type AI) • The Still Shooter • Only shoots whenever the enemy is standing still for a certain period of time • Disadvantage : Shooter will have very few opportunities to actually shoot • The Tracker • Shoot moving target • Compute the distance from the sniper to the target • Use projectile velocity • Predict where the target will be Single-shot firing devices

  32. Shooting • Machine Guns • Fast firing rates at the cost of inferior precision • Target not people but areas • hardly ever moved • Did not have a lot of autonomy • Short firing burst

  33. Putting It All Together • Putting It All Together • Blend these simple behaviors into a AI system • Parallel automata • AI synchronization • Parallel automata • The locomotion AI • Control locomotion • Chasing, evading, patrolling, hiding • The gunner AI • Evaluate the firing opportunities • Targeting and shooting down enemies

  34. Putting It All Together • AI Synchronization • Using shared memory • Ex) group of enemy (half-life) • Synchronization become more complex • more sophisticated interaction • Better use artificial life techniques

  35. Action Based Game • Platform Games • Platform/jump’n run games • Ex) Mario or Jak and Daxter • AIs are not very complex • Easily coded using finite-state machine • Chasers • Get activated whenever the player is within a certain range • The turret • A fixed entity that rotates, and when aiming at the player, shoots at him • Examples • Gorilla (in Jak and Daxter) • Chase the player and kill on contact • Make game too boring  add chest-hitting routine • Weak point  can attack the gorilla whenever he is hitting his chest • Bosses • Not much different than basic chaser • Complex, long-spanning choreographies • Ex) Jak and Daxter: The boss flower • Fixed to the ground • Spawn small spider  become chaser

  36. Action Based Game • Shooters • A bit more complex than platform • because the illusion of realistic combat must be conveyed • Usually built around FSMs • Need a logical way to layout the scenario • Use a graph structure with graph nodes for every room/zone • Group behavior (Ex: Half-Life)

  37. Action Based Game • Fighting Games • State machine • States: attack, stand, retreat, advance, block, duck, jump • Compute the distance to the player • Decide which behavior to trigger • Adding a timer  dose not stay in the same state forever • Predictive AI • Enemy learn to detect action sequences as he fights us • FSM plus correlation approach • Higher-difficulty enemies • State-space search • Build a graph with all the movement possibilities • Search optimal move sequence • Tabulated representation • A table with a simple attack moves and their associated damage • Ex) Distance = 3 meters, high kick, jump, punch, Damage = 5

  38. Action Based Game • Racing Titles • Implemented by Rule based system • If we are behind another vehicle and moving ->faster advance • If we are in front of another vehicle and moving slower -> block his way • Else -> follow the track • Advance behavior • Using prerecorded trajectory • Plug-in • Analyze the track and generate the ideal trajectory

  39. GameAI(Finite State Machines)

  40. Finite State Machines • Finite State Machines (FSMs) • Also called deterministic finite automata (DFA) or state machine or automata • Definition • A set of states • Represent the scenarios or configurations the AI can be immersed in • A set of transitions • Conditions that connect two states in a directed way • Advantages • Intuitive to understand, Easy to code • Perform well, and represent a broad range of behaviors

  41. Give him a born HENGRY QUIET After 4 hours Finite State Machines • Example • A dog is HUNGRY • If you give him a bone, he will not be hungry anymore • He’ll be QUIET after eating the bone • And he’ll become hungry after four hours of being quiet • States (using circles)  1 and 3 • Transitions (using lines) 2 and 4

  42. Attack E, -D E E -E E D Chase S, -E, -D Wander -E, -S, -D S -S D D -E S Code … … Action (callback) performed when a transition occurs Example FSM Events: E=Enemy Seen S=Sound Heard D=Die Problem: No transition from attack to chase Spawn D

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

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

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

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

  47. 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=2e • Number of arcs can grow even faster: a=s2 • Hard to encode complex memories

  48. Decision Trees

  49. Classification Problems • Task: • Classify “objects” as one of a discrete set of “categories” • Input: set of facts about the object to be classified • Is today sunny, overcast, or rainy • Is the temperature today hot, mild, or cold • Is the humidity today high or normal • Output: the category this object fits into • Should I play tennis today or not? • Put today into the play-tennis category or the no-tennis category

More Related