Medieval Battle Simulation
Introduction
This model simulates a medieval battle between two armies (blue vs red).
Problem definition
The main goal is to find which formations and compositions of units work against which.
Two armies fight each other on a battlefield. An army is composed of several units in a certain formation.
When simulation is started the armies move against each other, killing the units of the opposing army.
When one army has no units left alive it is considered defeated and simulation is over.
There is a limit to how many units an army can have, each unit type has a cost.
Sum of costs cannot be greater than cost limit (600). Furthermore, an army cannot have more than 32 units of the same type.
Method
I am using NetLogo to simulate movement and combat of the units.
I have selected certain scenarios which bring out differences in military strategies.
Each scenario is run 20 times. More runs would ensure higher certainty of results.
Since there is a bit of randomness in play (seeking enemies, random hits), if an army wins by just a small portion of it surviving (e.g. one soldier) I will consider it a tie.
Scenario A
Same composition of units and formations.
A1: line vs line
A2: square vs square
A3: wedge vs wedge
Scenario B
Same composition of units, different formations.
B1: line vs square
B2: line vs wedge
B3: square vs wedge
Scenario C
Knights centric Blue vs Spearmen centric Red
C1: line vs line
C2: square vs square
C3: wedge vs wedge
C4: line vs square
C5: line vs wedge
C6: square vs wedge
Scenario D
Swordsmen centric Blue vs Spearmen centric Red
D1: line vs line
D2: square vs square
D3: wedge vs wedge
D4: line vs square
D5: line vs wedge
D6: square vs wedge
Scenario E
Generic Blue vs Max number of units Red
D1: line vs line
D2: square vs square
D3: wedge vs wedge
D4: line vs square
D5: line vs wedge
D6: square vs wedge
Model
Following is the description of the model and how the units fight.
Soldiers start moving forward (towards the center) in formation.
When one soldier meets an enemy soldier, they exchange hits of certain damage (DMG).
Hits lower health points (HP). When health reaches zero a soldier dies.
If a soldier survives an engagement he seeks nearest enemies.
If a soldier doesn’t meet an enemy till he reaches the center of battlefield he starts to seek nearest enemies.
Soldiers of the same army do not fight each other but are obstacles to one another.
When such collision occurs, the blocked soldier tries to find a different route, if there is none, he waits.
Units
The difference between armies is given by their color.
The damage a unit gives to enemy is a random number between half of its DMG and full DMG.
Spearmen
HP: 5 , DMG: 3, Cost: 10
Swordsmen
HP: 10 , DMG: 2, Cost: 20
Knights
HP: 20 , DMG: 5, Cost: 50
Formations
Line - half of the unit type is north and the other south making a line facing towards the center, each unit type creates a different line
Square - same as line, but there are 2 lines per unit type (6 lines per army)
Wedge - an arrowhead looking formation pointing towards the center, each unit type creates its own wedge
Results
Scenario A
Same composition of units and formations.
A1: line vs line => TIE
A2: square vs square => TIE
A3: wedge vs wedge
Scenario B
Same composition of units, different formations.
B1: line vs square
B2: line vs wedge
B3: square vs wedge
Scenario C
Knights centric Blue vs Spearmen centric Red
C1: line vs line
C2: square vs square
C3: wedge vs wedge
C4: line vs square
C5: line vs wedge
C6: square vs wedge
C7: square vs line
C8: wedge vs square
C9: wedge vs line
Scenario D
Swordsmen centric Blue vs Spearmen centric Red
D1: line vs line
D2: square vs square
D3: wedge vs wedge
D4: line vs square
D5: line vs wedge
D6: square vs wedge
D7: square vs line
D8: wedge vs square
D9: wedge vs line
Scenario E
Generic Blue vs Swordsmen and Knights Red
E1: line vs line
E2: square vs square
E3: wedge vs wedge
E4: line vs square
E5: line vs wedge
E6: square vs wedge
E7: square vs line
E8: wedge vs square
E9: wedge vs line