1 the use of artificial intelligence in the computer game industry
TRANSCRIPT
1
The Use of Artificial Intelligence in the Computer Game
Industry
The Use of Artificial Intelligence in the Computer Game
Industry
2
IntroductionIntroduction The term A.I. is used broadly in the computer game
industry Games come in many genres and the techniques
employed by the different genres vary widely Will be discussing A.I. for non-player characters (NPCs)
in a first-person or third-person shooterFully rendered 3D environmentPlayer controls a single character
3
IntroductionIntroduction
Won’t be discussing use of AI for:Board games (Chess, Go)Strategy games (Civilization / Age of Empires)Camera control in 3D gamesSimulation games (The Sims, Sim City)Racing games
4
Components of an AI SystemDecision MakingTactical Analysis
Components of an AI SystemDecision MakingTactical Analysis
5
Components of an AI Components of an AI SystemSystemDecision MakingTactical Analysis
Components of an AI Components of an AI SystemSystemDecision MakingTactical Analysis
6
Components of an AI SystemComponents of an AI System
AnimationAnimationResponsible for controlling NPC bodyResponsible for controlling NPC body
MovementMovementResponsible for controlling NPC navigationResponsible for controlling NPC navigation
BehaviorBehaviorResponsible for controlling NPC decision makingResponsible for controlling NPC decision making
7
Components of an AI SystemComponents of an AI System
AnimationAnimationResponsible for controlling NPC bodyResponsible for controlling NPC body
MovementMovementResponsible for controlling NPC movementResponsible for controlling NPC movement
BehaviorBehaviorResponsible for controlling NPC decision makingResponsible for controlling NPC decision making
8
AI Components: AnimationAI Components: Animation
Animation SelectionAnimation Selection Parameterize AnimationParameterize Animation Selected Joint ControlSelected Joint Control Inverse KinematicsInverse Kinematics
9
AI Components: AnimationAI Components: Animation
NPC NPC modelsmodels built by artists built by artists– Use tools such as “3D Studio Max” or “Maya”Use tools such as “3D Studio Max” or “Maya”
Models are are constructed from bones Models are are constructed from bones
Bones are connected by articulated jointsBones are connected by articulated joints
The skeletal system is covered by a mesh of textured The skeletal system is covered by a mesh of textured polygonspolygons
11
AI Components: AnimationAI Components: Animation
Animation sequences are generated by defining how Animation sequences are generated by defining how joints should articulate through timejoints should articulate through time
Walking sequence:Walking sequence:
12
AI Components: AnimationAI Components: Animation
Animation sequences for a model are either:Animation sequences for a model are either:
Hand generated by a computer animatorHand generated by a computer animator
Recorded from real human (or animal) movements Recorded from real human (or animal) movements and applied to a skeletal system (“motion capture”)and applied to a skeletal system (“motion capture”)
15
AI Components: AnimationAI Components: Animation
Animation sequences tend to be:Animation sequences tend to be:
Motion primitives:Motion primitives:– Run, Walk, Jump, Side-step, ClimbRun, Walk, Jump, Side-step, Climb
Transitions Transitions – Start_Walk, Run_To_Jump, Jump_LandStart_Walk, Run_To_Jump, Jump_Land
16
AI Components: AnimationAI Components: Animation
Some animation sequences only take control of Some animation sequences only take control of part of the body:part of the body:
wave_hellowave_hellohand_signal_stophand_signal_stopswing_ice_axeswing_ice_axe
17
AI Components: AnimationAI Components: Animation First step in A.I. Is to select which animation First step in A.I. Is to select which animation
sequence or sequences should be applied to a sequence or sequences should be applied to a modelmodel
Many influences:Many influences:Desired behavior chosen by decision systemDesired behavior chosen by decision systemWhat animation is currently playingWhat animation is currently playingThe current velocity and direction of the NPCThe current velocity and direction of the NPCThe terrain the NPC is standing onThe terrain the NPC is standing on
18
AI Components: AnimationAI Components: Animation
Second step is to parameterize animationsSecond step is to parameterize animationsSpeed up or slow down animationSpeed up or slow down animation– Slow walk, fast walkSlow walk, fast walk– Accelerate / decelerate stop and start of runAccelerate / decelerate stop and start of run– Slow run as approach sharp turnSlow run as approach sharp turn
Blend between animationsBlend between animations– walk-to-runwalk-to-run– 70% normal walk + 30% limp70% normal walk + 30% limp
Layer animationsLayer animations– Mix hand_wave on top of walk animationMix hand_wave on top of walk animation
19
AI Components: AnimationAI Components: Animation Next might add selected Joint ControlNext might add selected Joint Control
Take control of particular jointsTake control of particular joints– Either:Either:
Ignore joint motion in pre-generated animationIgnore joint motion in pre-generated animation Blend with pre-generated joint motionBlend with pre-generated joint motion
Used for:Used for:– Head TurningHead Turning
Looking at a particular object or locationLooking at a particular object or location– Arm aimingArm aiming
Point gun at a locationPoint gun at a location
20
AI Components: AnimationAI Components: Animation
And finally, add inverse kinematicsAnd finally, add inverse kinematicsAlgorithmically determine the joint configuration Algorithmically determine the joint configuration required for an end-effecter (hand or foot) to reach a required for an end-effecter (hand or foot) to reach a particular locationparticular locationUsed for:Used for:– Keep the feet on the ground on uneven terrain or when Keep the feet on the ground on uneven terrain or when
walking up stairswalking up stairs– Reaching hand out to open a door, pick up and objectReaching hand out to open a door, pick up and object
21
AI Components: AnimationAI Components: Animation
Animation SelectionAnimation Selection
Parameterization of AnimationsParameterization of Animations
Selected Joint ControlSelected Joint Control
Inverse KinematicsInverse Kinematics
22
Components of an AI SystemComponents of an AI System
AnimationAnimationResponsible for controlling NPC bodyResponsible for controlling NPC body
MovementMovementResponsible for controlling NPC movementResponsible for controlling NPC movement
BehaviorBehaviorResponsible for controlling NPC decision makingResponsible for controlling NPC decision making
23
Movement: PathfindingMovement: Pathfinding The primary component of a movement system is
pathfinding. Find a route for an NPC to travel from one location in
the world to another. Route depends on:
NPC’s size – Will NPC’s body fit in a given location?
NPC’s navigation ability– Walk, Jump, Climb, Swim
24
Movement: Pathfinding ToolsMovement: Pathfinding Tools
Waypoint Position in a map that is used for navigation Usually placed in world manually by a level designer
Link Connection between two waypoints Often annotated with the required navigation type (Jump, Swim, Climb) For a given NPC, two waypoints are linked when:
The NPC has room enough to move from one node to another without colliding with the world geometryThe NPC has the required navigation ability
Node Graph Data structure holding all waypoints and links Either generated manually by a level designer or automatically by the
computer and annotated by a level designer
26
Movement: Route GenerationMovement: Route Generation A*A* is the preferred pathfinding algorithm for quickly
finding a short path between two waypoints Often modified for other route types:
Fastest Route Shortest route is not often the fastest as it may take an NPC longer
to climb a ladder or swim between two waypoints than to run or walk
Safest Route For tactical reasons an NPC may choose to prefer a longer less
exposed route than a shorter or faster route with no cover
27
Components of an AI SystemComponents of an AI System
AnimationAnimationResponsible for controlling NPC bodyResponsible for controlling NPC body
MovementMovementResponsible for controlling NPC movementResponsible for controlling NPC movement
BehaviorBehaviorResponsible for controlling NPC decision makingResponsible for controlling NPC decision making
28
AI Components: BehaviorAI Components: Behavior
Responsible for deciding what behavior an NPC should express
Each NPC has a think cycle:Sense EnvironmentSelect BehaviorExpress behavior
29
AI Components: BehaviorAI Components: BehaviorSense Environment
– What to I see?– What can I hear / smell?– Includes internal states:
How tired am I? What’s my health?
Select Behavior– Finite State Machine– Decision Tree
Express Behavior– Select appropriate animation sequences
30
Components of an AI SystemDecision MakingDecision MakingTactical Analysis
Components of an AI SystemDecision MakingDecision MakingTactical Analysis
31
Decision Making:Decision Making:Decision Making:Decision Making:
Module that does behavior selection
Example of one such system
OverviewMany of the details and features have been omitted
32
Decision MakingDecision Making:Decision MakingDecision Making:
System consists of three types of objects:
Tasks
Schedules
Conditions
33
Decision MakingDecision Making:Decision MakingDecision Making:
TASKS:TASKS:
Simple things for a NPC to do, such as:Turn to face a location or an object
(TASK_FACE_FRIEND)
Find a path to a location (TASK_FIND_PATH_TO_ENEMY)
Move along a path(TASK_WALK_PATH)
Stop moving(TASK_STOP_MOVING)
34
Decision MakingDecision Making:Decision MakingDecision Making:
Tasks can take arguments:Tasks can take arguments:
Wait for a whileWait for a while(TASK_WAIT)(TASK_WAIT) < Time to wait >< Time to wait >
Play a particular animationPlay a particular animation(TASK_PLAY_ANIMATION)(TASK_PLAY_ANIMATION) < Animation Name >< Animation Name >
Say SomethingSay Something(TASK_SAY_PHRASE)(TASK_SAY_PHRASE) < Phrase >< Phrase >
35
Decision MakingDecision Making:Decision MakingDecision Making:
SCHEDULESSCHEDULES:Named lists of tasks Selected by logic systemPerformed by NPC until:
All tasks have finished One task has failed Schedule has been Interrupted
36
Decision MakingDecision Making:Decision MakingDecision Making:
Examples:Examples:SCHEDULE_GET_WEAPON
– TASK_FIND_WEAPON– TASK_FIND_PATH– TASK_RUN_PATH– TASK_PICKUP_WEAPON
SCHEDULE_FLANK_ATTACK– TASK_FIND_FLANK_POSITION– TASK_FIND_PATH– TASK_RUN_PATH– TASK_RANGE_ATTACK
37
Decision Making:Decision Making:Decision Making:Decision Making:
CONDITONS:CONDITONS:Predicates that are set every time an NPC thinks
Conditions serve two purposes:
Schedule Selection
Schedule Interruption
38
Decision Making:Decision Making:Decision Making:Decision Making:
For example:See an enemy
(CONDITON_SEE_ENEMY)
Hear danger (CONDITON_HEAR_DANGER)
Took heavy damage(CONDITION_HEAVY_DAMAGE)
Enemy blocked by something(CONDITION_ENEMY_OCCLUDED)
39
Decision Making: Decision Making: ConditionsDecision Making: Decision Making: Conditions
Schedule selection is rule based:
If (CONDITION_HEAR_DANGER) and not (CONDITION_HAVE_WEAPON) select schedule (SCHEDULE_GET_WEAPON)
If (CONDITION_HAVE_WEAPON) and (CONDITION_OUT_OF_AMMO) select schedule (SCHEDULE_RELOAD_WEAPON)
40
Decision Making: Decision Making: ConditionsDecision Making: Decision Making: Conditions
Interrupt conditions
Schedules also contain interrupt conditions
Same set of predicates used for schedule selection
If interrupt condition is listed in the schedule, and the condition is true, the schedule will be interrupted
41
Decision Making: Decision Making: ConditionsDecision Making: Decision Making: Conditions
Example:
SCHEDULE_GET_WEAPON TASK_FIND_WEAPON TASK_FIND_PATH TASK_RUN_PATH TASK_PICKUP_WEAPON
CONDITION_HEAVY_DAMAGE CONDITION_ENEMY_DEAD
42
Decision Making: Decision Making: ConditionsDecision Making: Decision Making: Conditions
Task FailureSometimes a task can’t be competed
For example:– (TASK_FIND_WEAPON) when no weapon available– (TASK_FIND_PATH) when no way to get to destination
In such cases the schedule will exit pre-maturely
43
Decision Making: Decision Making: ConditionsDecision Making: Decision Making: Conditions
Fail Schedules:Can specify a fail schedule:
SCHEDULE_GET_WEAPON TASK_SET_FAIL_SCHEDULE SCHEDULE_TAKE_COVER TASK_FIND_WEAPON TASK_FIND_PATH TASK_RUN_PATH TASK_PICKUP_WEAPON
Take cover schedule chosen when any of the tasks fail
44
Decision Making:Decision Making:Decision Making:Decision Making:
NPC Think Cycle:Update predicate values (conditions)
If any conditions interrupt the current schedule, select a new schedule
Perform next task in schedule list
If task fails, go to fail schedule (if defined) or select a new schedule
If all tasks have been completed, select a new schedule
45
Components of an AI SystemDecision MakingDecision MakingTactical Analysis
Components of an AI SystemDecision MakingDecision MakingTactical Analysis
46
Tactical AnalysisTactical Analysis Level designers place waypoints in the
environment for navigation Node graph contains node connectivity
information for a map Waypoints can also be evaluated for their
visibility Information can be used to make tactical
decisions
48
Waypoint Analysis Waypoint Analysis
Limited CPU time Decisions must be made quickly (as few CPU
cycles as possible) Data must stored efficiently Store visibility data in a “bit-string” class
= visibility from node “a”aV
50
Waypoint AnalysisWaypoint Analysis
Danger NodesDetermined by “OR”ing the visibility of all enemy’s (k) nearest nodes
Safe NodesIs its inverse
kj
jjVV
0
V
53
Finding a Safe Attack PositionFinding a Safe Attack Position
While attacking a selected enemy, an NPC shouldn’t expose itself to other enemies
A good attack position will:Provide line-of-site (LOS) to the selected enemyProvide cover from all other enemies
54
Static Waypoint EvaluationStatic Waypoint Evaluation
Unless cheating is employed, NPCs don’t have full knowledge of the world.
May not know where all their enemies are located
Find a good location to wait in for attack Not all positions are created equal
55
Static Waypoint EvaluationStatic Waypoint Evaluation
To find a good set up position:Establish the exposure of all waypoints in a map
Process can be done off line, before game is even started
57
Static Waypoint EvaluationStatic Waypoint Evaluation
A good location is one which:Has high exposure (visibility)– Easy to locate enemies– Easy to establish LOS to attack and enemy
Has areas of low exposure nearby– Can hide easily– Can run for cover easily
59
Pinch PointsPinch Points
Observation of human players reveals that experienced players anticipate the actions of their opponents (Laird 2000)
For example, if an enemy enters a room with only a single exit an experienced player will wait just outside the exit setting up an ambush
Such “pinch points” can be pre-calculated by analyzing the node graph
60
Tactical Analysis: ReviewTactical Analysis: Review
Using the node graph to evaluate map locations:Finding safe and dangerous locationsFinding places from which to attackFinding location to set up sniper positionsFinding pinch points
61
Components of an AI SystemDecision MakingTactical Analysis
Components of an AI SystemDecision MakingTactical Analysis
62
Components of an AI SystemDecision MakingTactical AnalysisConclusionsConclusions
Components of an AI SystemDecision MakingTactical AnalysisConclusionsConclusions
63
Some Unsolved Problems:Some Unsolved Problems:
Automatic generation of waypointsCurrently waypoints placed by hand in levels by level designersPlacement is time consumingRequires editing every time map is changedError proneNo reliable system for automatically placing waypoints
64
Some Unsolved Problems:Some Unsolved Problems:
Generation of dynamic waypointsPre-generated waypoints only work for static mapsCan deal with some moving objects, by turning node connections on/off or re-testing connections in real-timeMaps that are generated dynamically or maps that change significantly during run time are problematic
65
Conclusions:Conclusions: In the computer game industry the term A.I. is used to
cover a broad range of technologies including animation, movement, navigation and behavior.
What is required to make a game entertaining does not always coincide with making the game’s characters “smarter”.
It is world where the illusion of intelligence is far more important then actual intelligence