Page 1
Have Fun Storming the Castle!Siege Battle AI in Total War: Warhammer
Andre ArsenaultLead Battle AI ProgrammerCreative Assembly
Page 5
About This Talk
•
•
•
•
Page 7
What Is a Siege Battle?
Page 8
How Do You Start a Siege Battle?
Page 9
Siege Battle Fundamentals
•
•
•
•
•
•
Page 10
Siege Battle Fundamentals
•
–
–
Page 11
Historical Siege Goals
•
•
•
•
Page 12
Warhammer Siege Goals
•
•
•
•
•
Page 13
BATTLE AI ARCHITECTURE
Page 14
Battle Fundamentals
•
•
•
•
•
Page 15
“Battle AI” for Total War
•
•
–
–
•
Page 16
Battle AI ArchitectureBattle Model
Page 17
Battle AI ArchitectureBattle Model
Page 18
Battle AI ArchitectureBattle Model
Page 19
Battle AI ArchitectureBattle Model
Page 20
Battle AI ArchitectureBattle Model
Page 21
Battle AI ArchitectureBattle Model
Page 22
Battle AI ArchitectureBattle Model
Page 23
Battle AI Architecture
Battle Model
Page 24
Siege Battle AI Architecture
Page 25
AI DATA AND LEVEL DESIGN
Page 26
AI Hints: Settlement Perimeter
Page 27
AI Hints: Deployment Lines
Page 28
AI Hints: Assault Designation
Page 29
AI Hints: Attack Focus
Page 30
Assault Designation Scoring
Page 34
ATTACKING SIEGE AI DETAILS
Page 35
Attacking AI Strategy
Page 36
Attacking AI Strategy
Page 37
Getting Into the City
•
•
•
Page 39
Choosing the Right Tactics
Page 40
Choosing the Right Tactics
Page 41
Gate Assault Tactic
•
•
•
–
–
Page 42
Aside: What Is This Unit?
•
•
•
•
•
•
•
•
•
•
Page 43
Better: How Should the AI Use It?
•
•
•
Page 44
Gate Assault Tactic
•
•
•
–
–
–
Page 45
Gate Assault Tactic
Page 46
Wall Assault Tactic
•
•
•
–
–
Page 47
Wall Assault Tactic
Page 48
Wall Breach Tactic
•
•
•
–
Page 49
Wall Breach Tactic
Page 50
Storm Entry Points Tactic
•
•
•
Page 51
Entry Point Manager
Battle Model
Page 52
Storm Entry Points Tactic
•
•
–
–
•
–
–
Page 53
Settlement Interior
Page 54
How Do the Reserves Fit In?
•
•
Page 55
Reserves Tactic
•
•
Page 57
Reserves Tactic
•
•
Page 58
Coordination Between Tactics
•
–
–
–
Page 59
Coordination Between Tactics
•
–
–
Page 60
Ex 1: Gate Assault Using Ladders
Page 61
Ex 1: Gate Assault Using Ladders
relinquish(units)
return
create new tactic(assault designation)
return
det ermine units to relinquish()
validate(assault designation)
assign(units)
create new ladder group(units)
choose wall target()
returnreturn
Page 62
Ex 2: Wall Assault Docking a Tower
Page 63
Ex 2: Wall Assault Docking a Tower
assign(units, ent ry point)
return
relinquish(units, ent ry point)
assign(units,ent ry point group)
destroy tactic if empt y()
mark entry point accessible()
Page 64
Ex 3: Allocating the Reserves
Page 65
Ex 3: Allocating the Reserves
return
assign(unit , ent ry point)
return
scan for mat ches()
relinquish(unit entry point pairs)
loop for each pair
Page 66
Reinforcements
•
•
•
Page 67
Reinforcements
•
•
•
Page 68
COLLABORATION, ADVICE, CONCLUSIONS
Page 69
Siege AI Team Process
•
•
–
Page 70
Siege AI Team Process
•
•
–
–
•