Dynamic tactical position evaluation functions are procedures that use static and dynamic information about the world to make tactical decisions at run-time. By having NPCs use a procedural description of the solution to a tactical decision, the solution can vary depending on the inputs. Using static information about the world as input makes sure the tactics are applicable at any place on the map. Using dynamic inputs makes sure they are applicable in multiple situations.
1. Killzone’s AI:
Dynamic Procedural Tactics
Arjen Beij & Remco Straatman
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 1
2. Contents
Dynamic procedural tactics
Position picking
Position Evaluation functions
Tactical path-finding
Suppression Fire
World Representation
Conclusions
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 2
3. Dynamic Procedural Tactics
Dynamic procedural tactics =
Having the rules and concepts to
dynamically compute
solutions to tactical problems
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 3
4. AI Tactics
Common approach
Level designer placed hints
Triggered scripted behavior
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 4
5. Dynamic Procedural Tactics
Game-play benefits
Works for any number of players
Fights anywhere
Production benefits
Reuse of AI behavior
Quick level prototyping
Roll out improvements game wide
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 5
6. Position Picking Outside
Wall
danger zone
Hugging
Nearby
Picking a good position Partial
Cover
Cover
is half the battle
in ‘fire & maneuver’ combat Line of Fire Proximity
Preferred
Range
Account for dozens of
(dynamic) factors
How to pick that position?
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 6
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
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 7
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
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 8
9. Example: Picking an Attack
Position 2
Initial situation: three threats, some walls and a waypoint graph
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 9
10. Example: Picking an Attack
Position 3
Selected nearby waypoints, annotated with proximity (weight 20)
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 10
11. Example: Picking an Attack
Position 4
Annotations for LoF to primary threat (40 if partial cover, 20 otherwise)
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 11
12. Example: Picking an Attack
Position 5
Annotations for cover from secondary threats (weight 20)
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 12
13. Example: Picking an Attack
Position 6
Annotations positions inside preferred fighting range (weight 10)
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 13
14. Example: Picking an Attack
Position 7
+
Adding up all the annotations yields the most promising attack position
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 14
15. Example: Picking an Attack
Position 8
Single threat Multiple threats
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 15
16. Configurable and Dynamic
Personality:
Configurable Action:
What factors are
What kind of position?
important?
Position evaluation function
Dynamic Current situation: Squad:
Where are the threats? Additional constraints
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 16
17. Tactical Path-finding
Shortest paths often aren’t tactically sound
1 2 3
For example:
1. Paths traversing friendly lines-of-fire
2. Paths ignoring cover from hostile fire
3. Paths leaving the AI exposed unnecessarily
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 17
18. Tactical Path-finding
Position 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
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 18
19. Example: Tactical Path-finding
1
Costs to travel each waypoint link, and the resulting shortest path.
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 19
20. Example: Tactical Path-finding
2
Link costs now reflect being under fire, and the corresponding tactical path.
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 20
21. Example: Tactical Path-finding
3 B B
T T
shortest path versus tactical path
A A
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 21
22. Suppression Fire
Suppression 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
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 22
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
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 23
24. Example: Suppression Fire 2
A hidden threat (left), attacker (right) and the intended suppression fire.
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 24
25. Example: Suppression Fire 3
Selecting the waypoints in close proximity to the presumed threat position
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 25
26. Example: Suppression Fire 4
Annotations (20, 30) for offering the threat a LoF to the attacker (right).
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 26
27. Example: Suppression Fire 5
Annotation of 20 for positions offering the threat nearby cover from the attacker.
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 27
28. Example: Suppression Fire 6
Selecting those positions with score 40 yields the suppress targets.
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 28
29. Example: Suppression Fire 7
Merging suppression targets that overlap in yaw and pitch.
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 29
30. Example: Suppression Fire 8
The attacker’s view of suppression targets near the hidden threat.
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 30
31. Example: Suppression Fire 9
attacker PoV target PoV
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 31
32. World Representation
Pre-conditions for dynamic procedural tactics
1. Navigation info, with fine enough resolution
to represent cover locations
Waypoints, nav meshes, cells: any will do
2. Fast Line-of-Sight/Line-of-fire checks
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 32
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
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 33
34. Lines-of-Fire Representation 2
Compression:
For every waypoint, per radial
sector, record the largest
distance from where an attacker
within that sector can fire at the
waypoint.
Inaccurate, but consistent.
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 34
35. Conclusions
Killzone 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
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 35
36. Conclusions - Killzone’s AI
Pros
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
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 36
37. Conclusions – Game AI
Position 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
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 37
38. Further Info
Off-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
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 38
39. Questions?
August 31, 2005 Killzone’s AI:
Game Developer Conference Europe Dynamic Procedural Tactics Guerrilla Games - 39