Warriors-Battle-Simulation is a project made for Software Studio classes at AGH-University of Science and Technology.
Topic: Simulation of a historical battle. Project includes agent-base units model and their formation for a chosen historical age.
Chosen battle: Battle of Karksi
Project was realized in weekly sprints. Summary of each sprint is available here (in Polish).
- Simulation
Simulation
- contains main class and main loopMenu
- here you can change simulation details (Regiments' positions and units count). Contains GUI specificationHandler
- manages allSimulationObjects
lifecycle
- SimulationObjects
SimulationObject
- abstract class, root-parent class for class hierarchy.ArmyUnit
- class containing basic functionalities of 'attacking units'- other classes - self-explanatory
- Statistics
DataCollector
- class responsible for collecting simulation dataScatterPlot
- class responsible for generating charts from simulation data
SimulationOutput contains example simulation output (*.jpeg files and CSV)
$ mvn clean install
$ java -jar target/Warriors-BattleSimulation-1-jar-with-dependencies.jar
At some point plain version of simulation (master
branch) and Karksi specific (Simulation
branch) have diverged. Main differences are:
- FPS count (5 vs 60)
- Explicit data printing after simulation ends (in
Simulation
branch) - parameters changes to get plausible simulation results
That changes are rather small, but we wanted to keep as simulation-specific-free version as possible, so that's why we have split it into 2 separate branches.
- JFreeChart (GNU Lesser General Public Licence)
- RealTutsGML Java Game tutorial - core of the project and GUI stuff
- F. W. Lanchester: Aircraft in Warfare: the Dawn of the Fourth Arm (1916)
- An Agent-Based Model of the Battle of Isandlwana - C. J. Scogings and K. A. Hawick 2012
- An Agent-Based Computational Model for the Battle of Trafalgar - G.Trautteur and R. Virgilio
- Towards a Science of Experimental Complexity: An Artificial-Life Approach to Modeling Warfare. - A. Ilachinski
- An Agent-Based Simulation of the Battle of Kokenhausen- Marcin Waniek
- Petro: a multi-agent model of historical warfare - Marcin Waniek