- Introduction
- A Brief History
- Weapon Performance
- Armor Model
- Armor Overmatch Mechanics
- Data and References
Kursk Simulator: 1943 is a 2D tank gunnery simulator built in Python. The simulator's armor overmatch mechanics (how armor penetration is modeled) are based on a stylized model that was calibrated to closely match historical shell penetration data. Tanks are reduced to simple polygons. The line segments in the polygon chain capture the thickness and angle of the glacis plates, mantlet and other hull surfaces.
The Battle of Kursk was the largest tank battle in history (perhaps the Battle of Brody/Dudno was larger).
Shell penetration data was obtained from Rexford Bird and Livingston's book, World War II Ballistics: Armor and Gunnery. This source provides normalized penetration tables for different shells against RHA, at a perpendicular strike angle, with a 50% success rate. The data tables give millimeters of penetration at different ranges.
In order to map the discrete penetration data onto a continuous function, we estimate each shell's penetration function. The penetration function for shell i takes the following quadratic form:
Pi = αi + β1i x + β2i x2
P is penetration
x is distance, from the gun to target
α is a constant
β1 and β2 are coefficients
These penetration functions are estimated with a simple multiple regression. Using STATA, we regress penetration on distance and distance squared to estimate α, β1 and β2.
Tank 'hitboxes' are a polygon chain which represents the tank in 2D space. Each line segment in the polygon has an associated thickness. These simplified models simulate the thickness and angle of a tank's glacis plates, gun mantlet, and other surfaces. Smaller details such as hatches and ports are not currently modeled.
If a shell hits armor, it will penetrate if its penetration value is greater than the armor's armor value.
Shell's penetration value = f(shell_type, range_to_target)
Armor's armor value = g(thickness, angle_of_incidence)
Penetration ⟺ f > g
This spreadsheet contains the collected data that was used to model the attributes of the tanks and their guns in-game.
Weapon penetration data was collected from the book World War II Ballistics: Armor and Gunnery, which is available from scribd and MediaFire.
Rexford Bird, L., & Livingston, R. D. (2001). World War II Ballistics: Armor and Gunnery. Overmatch Press.
Historical information comes from articles written on German and Soviet tanks at Kursk by the staff of The Tank Museum.