1 the use of artificial intelligence in the computer game industry

65
1 The Use of Artificial Intelligence in the Computer Game Industry

Upload: victor-campbell

Post on 30-Dec-2015

215 views

Category:

Documents


0 download

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

10

AI Components: AnimationAI Components: Animation

Example:Example:

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”)

13

AI Components: AnimationAI Components: Animation

Motion Capture:Motion Capture:

14

Tom Molet (EGCAS ’96)

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

25

Movement: Node GraphMovement: Node Graph

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

47

Waypoint Analysis Waypoint Analysis

A World With 6 Nodes and 2 Enemies

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

49

Waypoint Analysis Waypoint Analysis

Visibility Matrix

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

51

Waypoint Analysis Waypoint Analysis

Safe and Dangerous Nodes

52

Waypoint AnalysisWaypoint Analysis

Safe and Dangerous Nodes

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

56

Static Waypoint Evaluation Static Waypoint Evaluation

Evaluate Each Node For Visibility

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

58

Static Waypoint Evaluation Static Waypoint Evaluation

Good “Sniping” Positions

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