39
August 31, 2005 Game Developer Conference Europe Killzone’s AI: Dynamic Procedural Tactics Guerrilla Games - 1 Killzone’s AI: Dynamic Procedural Tactics Arjen Beij & Remco Straatman Killzone’s AI: Dynamic Procedural Tactics

Killzone's AI: Dynamic Procedural Tactics

Embed Size (px)

Citation preview

Page 1: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 1

Killzone’s AI: Dynamic Procedural Tactics

Arjen Beij & Remco Straatman

Killzone’s AI: Dynamic Procedural Tactics

Page 2: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 2

Contents Dynamic procedural tactics Position picking Position Evaluation functions Tactical path-finding Suppression Fire World Representation Conclusions

Page 3: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 3

Dynamic Procedural TacticsDynamic procedural tactics = Having the rules and concepts to

dynamically computesolutions to tactical problems

Page 4: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 4

AI TacticsCommon approach Level designer placed hints Triggered scripted behavior

Page 5: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 5

Dynamic Procedural TacticsGame-play benefits Works for any number of players Fights anywhere

Production benefits Reuse of AI behavior Quick level prototyping Roll out improvements game wide

Page 6: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 6

Position Picking Picking a good position

is half the battle in ‘fire & maneuver’ combat

Account for dozens of (dynamic) factors

How to pick that position?

Outside danger zone

Wall Hugging

Nearby Cover

Partial Cover

Proximity

Line of Fire

Preferred Range

Page 7: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 7

Position Evaluation Functions

Determining the most appropriate position Given n potential destinations To compare positions, need a single value

Use position evaluation function Weighted sum Combines basic factors

Page 8: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 8

Example: Picking an Attack Position 1

Example: Picking an attack position Multiple threats

Attack primary threat Cover from other threats preferred

Partial cover from primary Proximity Preferred fighting range

Combine into a single value per position

Page 9: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 9

Example: Picking an Attack Position 2

Initial situation: three threats, some walls and a waypoint graph

Page 10: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 10

Example: Picking an Attack Position 3

Selected nearby waypoints, annotated with proximity (weight 20)

Page 11: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 11

Example: Picking an Attack Position 4

Annotations for LoF to primary threat (40 if partial cover, 20 otherwise)

Page 12: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 12

Example: Picking an Attack Position 5

Annotations for cover from secondary threats (weight 20)

Page 13: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 13

Example: Picking an Attack Position 6

Annotations positions inside preferred fighting range (weight 10)

Page 14: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 14

Example: Picking an Attack Position 7

+Adding up all the annotations yields the most promising attack position

Page 15: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 15

Example: Picking an Attack Position 8

Single threat Multiple threats

Page 16: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 16

Personality:What factors are

important? Action:

What kind of position?

Configurable and Dynamic

Configurable

Dynamic Current situation:Where are the threats?

Squad:Additional constraints

Position evaluation function

Page 17: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 17

Tactical Path-findingShortest paths often aren’t tactically sound

For example:1. Paths traversing friendly lines-of-fire2. Paths ignoring cover from hostile fire3. Paths leaving the AI exposed

unnecessarily

1 2 3

Page 18: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 18

Tactical Path-findingPosition evaluations functions in path finding

In A*, add to the costs of traveling a link: Traversing a friendly lines-of-fire Being under fire from one or more

threats

Page 19: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 19

Example: Tactical Path-finding 1

Costs to travel each waypoint link, and the resulting shortest path.

Page 20: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 20

Example: Tactical Path-finding 2

Link costs now reflect being under fire, and the corresponding tactical path.

Page 21: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 21

Example: Tactical Path-finding 3

B

A

B

A

shortest path versus tactical path

T T

Page 22: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 22

Suppression FireSuppression fire: Fire near hidden threats to pin them down

Not: Firing into the wall behind which the threat

is hiding Firing into locations the threat cannot

reach

Page 23: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 23

Example: Suppression Fire 1

What we want Deny the threat use of good attack

positions By shooting bursts at these positions

How we implement it using position evaluation

Evaluate threat’s attack positions from his perspective

Select those attack positions we can fire into

Page 24: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 24

Example: Suppression Fire 2

A hidden threat (left), attacker (right) and the intended suppression fire.

Page 25: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 25

Example: Suppression Fire 3

Selecting the waypoints in close proximity to the presumed threat position

Page 26: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 26

Example: Suppression Fire 4

Annotations (20, 30) for offering the threat a LoF to the attacker (right).

Page 27: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 27

Example: Suppression Fire 5

Annotation of 20 for positions offering the threat nearby cover from the attacker.

Page 28: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 28

Example: Suppression Fire 6

Selecting those positions with score 40 yields the suppress targets.

Page 29: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 29

Example: Suppression Fire 7

Merging suppression targets that overlap in yaw and pitch.

Page 30: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 30

Example: Suppression Fire 8

The attacker’s view of suppression targets near the hidden threat.

Page 31: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 31

Example: Suppression Fire 9

attacker PoV target PoV

Page 32: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 32

World RepresentationPre-conditions for dynamic procedural

tactics1.Navigation info, with fine enough

resolutionto represent cover locations Waypoints, nav meshes, cells: any will

do

2.Fast Line-of-Sight/Line-of-fire checks

Page 33: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 33

Lines-of-Fire Representation 1

Tactical decisions Involve hundreds of LoF checks Ray casts typically expensive

Use a small pre-computed look-up table Multiple stances, minor movement Pessimistic about cover Polar representation

Killzone’s LoF table for 4000 waypoints: 64KB

Page 34: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 34

Lines-of-Fire Representation 2

Compression:For every waypoint, per radial sector, record the largestdistance from where an attacker within that sector can fire at the waypoint.

Inaccurate, but consistent.

Page 35: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 35

ConclusionsKillzone was released for PS2 late 2004 Tactical position picking Tactical path-finding Suppression by infantry and mounted MGs Indirect fire for hand grenades and tank

shells Single and multiplayer AI

Up to 14 AI characters fighting simultaneously

Page 36: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 36

Conclusions - Killzone’s AIPros Share/reuse behavior across games Quick level prototyping Can be combined with scripting Fights anywhere, anytime, SP or MP

Cons Harder to control in detail Harder to test

Page 37: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 37

Conclusions – Game AIPosition evaluation functions are powerful Robust decisions with many (dynamic)

inputs Different behavior through configuration Many tactics can be implemented through

position evaluation

Dynamic procedural tactics Responsive AI behavior Within reach of many games

Page 38: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 38

Further InfoOff-line Our proceedings paper provides more details, notably on

the terrain representation and grenade handling Lars Lidén, Strategic and Tactical Reasoning with Waypoints

in AI Game Programming Wisdom, Charles River Media, 2002

Paul Tozour, Using a Spatial Database for Runtime Spatial Analysis in AI Game Programming Wisdom 2, Charles River Media, 2003

William van der Sterren, Tactical Path-Finding with A* in Game Programming Gems 3, Charles River Media, 2002

On-line William van der Sterren’s collection of links to on-line

papers at:www.cgf-ai.com/links.html

Page 39: Killzone's AI: Dynamic Procedural Tactics

August 31, 2005Game Developer Conference Europe

Killzone’s AI:Dynamic Procedural Tactics Guerrilla Games - 39

Questions?