1.06k likes | 1.21k Views
Agent Architecture Considerations for Real-Time Planning in Games. Jeff Orkin Monolith Productions. F.E.A.R. Agenda. Motivation Problems Solutions Was it worth it?. Agenda. Motivation – Why plan? Problems – Performance! Solutions – Agent architecture Was it worth it?.
E N D
Agent Architecture Considerations for Real-Time Planning in Games Jeff Orkin Monolith Productions
Agenda • Motivation • Problems • Solutions • Was it worth it?
Agenda • Motivation – Why plan? • Problems – Performance! • Solutions – Agent architecture • Was it worth it?
Goal-Oriented Behavior Problems: • Managing dependencies • Sharing behaviors
No One Lives Forever 2 TRON 2.0 Problem: Sharing
No One Lives Forever 2 TRON 2.0 Problem: Sharing
No One Lives Forever 2 TRON 2.0 Problem: Sharing
P.D.D.L. • Planning Domain Definition Language • Goals • Desired state • Actions • Preconditions • Effects
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))))
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
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.
Monolith Productions Management
How to Plan in Real-Time and Keep Your Job Jeff Orkin Monolith Productions
The Plan Goal: KillEnemy Plan: Goto (couch) UseObject (couch) Goto (coverNode) AttackFromCover
Preconditions: Visibility AI Performance: Off the Chart!
Preconditions: Visibility Pathfinding AI Performance: Off the Chart!
Preconditions: Visibility Pathfinding Tactical Position Validity AI Performance: Off the Chart!
Solution Re-consider Agent Architecture • Distributed processing • Caching
Solution Re-consider Agent Architecture • Distributed processing • Caching Inspiration: • MIT Media Lab’s C4 • Robotics
Sensors: See What is a soldier?
Sensors: See Hear What is a soldier?
Sensors: See Hear Feel pain What is a soldier?
Subsystems: Navigate / Move What is a soldier?
Subsystems: Navigate / Move Attention Selection (Targeting) What is a soldier?
Subsystems: Navigate / Move Attention Selection (Targeting) Weapons What is a soldier?
Distributed Processing with Sensors • Pseudo-parallel • Amortize precondition processing across many frames • Allow incremental processing
Distributed Processing with Sensors • More than Vision, Hearing, Touch • Tactical analysis • Internal desires
Distributed Processing with Sensors • Update: • Every frame • Periodic Polling • Event-driven • Limit total number of expensive sensor updates per frame.
Sensor Example: CoverNode Sensor • Update 3 times / second
Sensor Example: Cover Node Sensor • Update 3 times / second
Sensor Example: PassTarget Sensor • Incremental update
Sensor Example: PassTarget Sensor • Incremental update
Sensor Example: PassTarget Sensor • Incremental update
Sensor Example: PassTarget Sensor • Incremental update
Sensor Example: PassTarget Sensor • Incremental update