Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

106
Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions

Transcript of Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Page 1: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Agent Architecture Considerations for Real-Time Planning in Games

Jeff Orkin

Monolith Productions

Page 2: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

F.E.A.R.

Page 3: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Agenda

MotivationProblemsSolutionsWas it worth it?

Page 4: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Agenda

Motivation – Why plan?Problems – Performance!Solutions – Agent architectureWas it worth it?

Page 5: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Why plan in real-time?

Page 6: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Goal-Oriented Behavior

Page 7: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Goal-Oriented Behavior

Problems:Managing dependenciesSharing behaviors

Page 8: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Problem: Dependencies

AttackFromCover

Gotot Attack

Page 9: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Problem: Dependencies

AttackFromCover

Gotot AttackDraw t

Page 10: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Problem: Dependencies

AttackFromCover

Gotot AttackDraw t

Gotot Flipt

Page 11: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Problem: Dependencies

AttackFromCover

Gotot AttackDrawt

Gotot

Flipt

Lightt

Lightt

Reloadt

Page 12: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Problem: Dependencies

tt tt tttt

tttttt tt

Page 13: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Problem: Sharing

No One Lives Forever 2 TRON 2.0

Page 14: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Problem: Sharing

No One Lives Forever 2 TRON 2.0

Page 15: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Problem: Sharing

No One Lives Forever 2 TRON 2.0

Page 16: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

P.D.D.L.

Planning Domain Definition Language Goals

– Desired state

Actions– Preconditions– Effects

Page 17: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

P.D.D.L.

Goal:(define (problem get-paid)

(:domain briefcase-world)(:init (place home) (place office)

(object p) (object d) (object b)(at B home) (at P home) (at D home) (in

P))(:goal (and (at B office) (at D office) (at P home))))

Page 18: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

P.D.D.L.

Action:(:action put-in

:parameters (?x - physob ?l - location):precondition (not (= ?x B)):effect (when (and (at ?x ?l) (at B ?l))

(in ?x)) )

Other actions: take-out, move

Page 19: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

P.D.D.L.

Modular– Goals– Actions

Decoupled Modules Related by symbols– World State– Preconditions– Effects

Applied PDDL’s structure to C++ toolkit in game code.

Page 20: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Monolith Productions

Management

Page 21: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

How to Plan in Real-Time and Keep Your Job

Jeff Orkin

Monolith Productions

Page 22: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.
Page 23: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

The Plan

Goal: KillEnemy

Plan:

Goto (couch)

UseObject (couch)

Goto (coverNode)

AttackFromCover

Page 24: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

AI Performance Guideline: 1.0ms / frame

1 .0 m s

Page 25: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

AI Performance: Off the Chart!

1 .0m s

30 0m s

Page 26: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

AI Performance: Off the Chart!

Preconditions: Visibility

1 .0m s

30 0m s

Page 27: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

AI Performance: Off the Chart!

Preconditions: Visibility Pathfinding

1 .0m s

30 0m s

Page 28: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

AI Performance: Off the Chart!

Preconditions: Visibility Pathfinding Tactical Position

Validity

1 .0m s

30 0m s

Page 29: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Solution

Re-consider Agent ArchitectureDistributed processingCaching

Page 30: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Solution

Re-consider Agent ArchitectureDistributed processingCaching

Inspiration:MIT Media Lab’s C4Robotics

Page 31: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Solution

SensorsWorkingMemory

Planner

BlackboardNav igation

Animation /Movement

Targeting

Weapons

World

World

Page 32: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

What is a soldier?

Page 33: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

What is a soldier?

Page 34: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

What is a soldier?

Page 35: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

What is a soldier?

Sensors: See

Page 36: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

What is a soldier?

Sensors: See Hear

Page 37: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

What is a soldier?

Sensors: See Hear Feel pain

Page 38: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

What is a soldier?

Subsystems: Navigate / Move

Page 39: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

What is a soldier?

Subsystems: Navigate / Move Attention Selection

(Targeting)

Page 40: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

What is a soldier?

Subsystems: Navigate / Move Attention Selection

(Targeting) Weapons

Page 41: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Distributed Processing with Sensors

Pseudo-parallel Amortize precondition processing across

many frames Allow incremental processing

Page 42: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Distributed Processing with Sensors

More than Vision, Hearing, Touch Tactical analysis Internal desires

Page 43: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Distributed Processing with Sensors

Update:– Every frame – Periodic Polling – Event-driven

Limit total number of expensive sensor updates per frame.

Page 44: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Sensor Example: CoverNode Sensor

Update 3 times / second

E

A

Page 45: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Sensor Example: Cover Node Sensor

Update 3 times / second

E

A

Page 46: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Sensor Example: PassTarget Sensor

Incremental update

AE

Page 47: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Sensor Example: PassTarget Sensor

Incremental update

AE

Page 48: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Sensor Example: PassTarget Sensor

Incremental update

AE

Page 49: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Sensor Example: PassTarget Sensor

Incremental update

AE

Page 50: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Sensor Example: PassTarget Sensor

Incremental update

AE

Page 51: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Sensor Example: PassTarget Sensor

Incremental update

AE

Page 52: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Sensor Example: PassTarget Sensor

Incremental update

AE

Page 53: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Sensor Example: PassTarget Sensor

Incremental update

A

E

Page 54: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Caching

Sensor

Sensor

Sensor

WorkingMemory

Targeting

Planning

Page 55: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Caching: WorkingMemoryFacts

Facts are really beliefs Common representation of all knowledge:

– Character– Object– Node– Disturbance– Task– PathInfo– Desire

Page 56: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Caching: WorkingMemoryFacts

WorkingMemoryFact {

Attribute<Vector3D> PositionAttribute<Vector3D> DirectionAttribute<StimulusType> StimulusAttribute<HANDLE> ObjectAttribute<DesireType> Desire

// 16 attributes total...}

Page 57: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Caching: WorkingMemoryFacts

Attribute<Type>{

Type Valuefloat fConfidence

}

Page 58: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Caching: WorkingMemoryFacts

SeeEnemy Sensor: Stimulus Confidence

C = 0.0

C = 0.0

Page 59: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Caching: WorkingMemoryFacts

SeeEnemy Sensor: Stimulus Confidence

C = 1.0

C = 1.0

Page 60: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Caching: WorkingMemoryFacts

SeeEnemy Sensor: Stimulus Confidence

C = 1.0

C = 0.63

Page 61: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Caching: WorkingMemoryFacts

SeeEnemy Sensor: Stimulus Confidence

C = 1.0

C = 0.0

Page 62: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Caching: WorkingMemoryFacts

CoverNode Sensor: Position Confidence

E

A

C=0.2

C=0.1C=0.4 C=0.9

C=0.8

Page 63: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

The Planning Process

Page 64: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

The Planning Process

P

Page 65: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

The Planning Process

P

Page 66: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

The Planning Process

P

Page 67: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

The Plan

Goal: KillEnemy

Plan:

Goto (couch)

UseObject (couch)

Goto (coverNode)

AttackFromCover

Page 68: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

The Plan

Plan:

Goto (couch)

UseObject (couch)

Goto (coverNode)

AttackFromCover

Goal: KillEnemy

Page 69: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

The Planning Process

Goal: KillEnemy

Satisfaction: ???

Page 70: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Symbols

Simple representation of World State: Array of symbols Fixed number of symbols Symbol = Key, Value pair Union of 4 byte values (int, float, HANDLE, etc)

Page 71: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Symbols

Simple representation of agent’s World State: Array of symbols Fixed number of symbols Symbol = Key, Value pair Union of 4 byte values (int, float, HANDLE, etc)

Examples: kWeaponArmed = TRUE kUsedObject = hSomeObject

Page 72: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Symbols

Goal: KillEnemy

Satisfaction: kTargetIsDead = TRUE

Page 73: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Symbols

Agent-centric representation

Character XStim Conf = 0.6

Character YStim Conf = 1.0

Character ZStim Conf = 0.0

Working Memory

Targeting

Blackboard

T arget =Character Y

Page 74: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Symbols

Agent-centric representation– kTargetIsDead– Subsystem handles target selection.– Select from Character Facts in WorkingMemory.– Less symbols to evaluate during plan formulation.

Page 75: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

The Plan

Plan:

Goto (couch)

UseObject (couch)

Goto (coverNode)

AttackFromCover

Goal: KillEnemy

Page 76: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Actions

AttackUse

Object

DrawW eapon Look At

Goto

Reload

Idle

Page 77: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Actions

Action Preconditions & Effects: Represented with same array of symbols Value may be constant or variable

Page 78: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Actions

Attack

Attackfrom

Vehicle

Attackfrom

Cov er

E: kT argetIsDead = T RUE

Page 79: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Actions

Attack

Attackfrom

Vehicle

Attackfrom

Cov er

E: kT argetIsDead = T RUE

Cost = 5Cost = 3

Cost = 1

Page 80: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Context Preconditions

Context preconditions Filter function of arbitrary code

– Am I riding a vehicle?– Does a path exist?– Is object visible?– Is valid cover available?

Symbolic preconditions are only used when we want the planner to chain a preceding action.

Page 81: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Context Preconditions

A: AttackFromCover

bool ValidateContextPreconditions()

{

// Is target visible?

...

// Does a valid node

// exist?

}

Character X

Working Memory

Character Z

Character Y

CoverNode576

CoverNode34

CoverNode29

Page 82: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Context Preconditions

Query QQ.Type = kFact_NodeQ.Node = kNode_Cover

Fact* pFact = FindFactMax( Q, kAtt_Position )

Finds the WMFact with highest confidence in some attribute.

If returns NULL, no valid cover exists.

Page 83: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

The Plan

Plan:

Goto (couch)

UseObject (couch)

Goto (coverNode)

AttackFromCover

Goal: KillEnemy

Page 84: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Variables

G: KillEnemyS: kTargetIsDead = TRUE

A: AttackFromCoverE: kTargetIsDead = TRUE

Page 85: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Variables

G: KillEnemyS: kTargetIsDead = TRUE

A: AttackFromCoverE: kTargetIsDead = TRUE

P: kWeaponArmed = TRUE

kWeaponLoaded = TRUE

kAtObject = ???

Page 86: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Variables

A: AttackFromCoverE: kTargetIsDead = TRUE

P: kWeaponArmed = TRUE

kWeaponLoaded = TRUE

kAtObject = FindFactMax( Q, kAtt_Position )

Page 87: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Variables

A: GotoE: kAtObject = Parent.kAtObject

Page 88: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Variables

A: AttackFromCoverP: kAtObject =

A: GotoE: kAtObject =

FindFactMax( Q, kAtt_Position )

Parent.kAtObject

Page 89: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Variables

KillEnemyAttackFromCover

Goto

Page 90: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

The Plan

Plan:

Goto (couch)

UseObject (couch)

Goto (coverNode)

AttackFromCover

Goal: KillEnemy

Page 91: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Variables

A: Goto

E: kAtObject = Parent.kAtObject

Page 92: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Planning Process: Variables

A: GotoE: kAtObject =

P: kUsedObject =

Parent.kAtObject

GetDependency( Parent.kAtObject )

Page 93: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

The Plan

Plan:

Goto (couch)

UseObject (couch)

Goto (coverNode)

AttackFromCover

Goal: KillEnemy

Page 94: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Was It Worth It?

Page 95: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Was It Worth It?

Did we handle? Managing dependencies Sharing behaviors

Additional benefit: Replanning

Page 96: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Replanning

PA

Page 97: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Replanning

PA

Page 98: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Replanning

P A

Page 99: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Replanning

P A

Page 100: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Replanning

P A

Page 101: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Parting Thoughts

Warcraft (1994)

Page 102: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Parting Thoughts

Star Wars (1987)

Page 103: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Parting Thoughts

F.E.A.R. (2005)

Page 104: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Parting Thoughts

2D 3D

Pre-rendered Real-time rendered

graphics graphics

Page 105: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Parting Thoughts

Scripts, FSMs Planning

Pre-rendered Real-time simulated

reasoning & behavior reasoning & behavior

What new types of gameplay are possible?!

Page 106: Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions.

Questions?

Jeff Orkin

Monolith Productions

http://www.jorkin.com