Developer Diary: Changes to APFSDS Normalization


One of the most common pieces of feedback we receive from you concerns the cases where you encounter roughly the following situation. You have an enemy in your sights – it’s that tiny pesky Armored Fighting Vehicle or Tank Destroyer that you’ve been hunting down for half of your battle. A Wiesel would be a good example. Now, our Wiesel is heavily damaged and at your mercy – it won’t run away this time!


You fire your gun and... your cutting edge kinetic shell bounces off its paper-thin thing that barely deserves to be called “armor” because it was well-angled. The Wiesel driver laughs in your face and scurries away, knocking out one of your allies in the process while you wait for your gun to reload. Doesn’t that just make you angry?

As for us, we’d like nothing more than for shell penetrations to be predictable. In real life, such a hit would obliterate the Wiesel and we’d like to introduce the same result here. And that’s where a thing called “normalization” comes in.

Shell Impact Normalization is a term for a situation when a kinetic shell hits a target and, before its penetration is calculated (shell penetration value compared to the tank’s effective armor), the shell adjusts its impact angle slightly (usually by several degrees) in favor of the shooter – for example, if you hit a target and your shell impacts with an angle of 30 degrees to the armor surface (60 degrees from vertical), the impact angle is adjusted by several degrees towards the vertical axis and the armor thickness the shell needs to penetrate is reduced by a little.

It’s worth noting that the mechanism is not completely unrealistic – or, at least, it wasn’t for capped shells of the Second World War that basically worked like this (the soft cap allowed the hard core to “bite” into the armor instead of bouncing off). Modern APFSDS shells don’t work like that but we have decided to use the mechanism to address the kinetic shells issue.

Before Update 0.25, the kinetic shell normalization mechanic worked like this: upon impact, a randomized normalization value between 0 and 2 degrees was added to the impact angle. This effectively reduced the thickness the shell had to penetrate as well as a number of ricochets.


For the cases where the firing gun caliber was significantly greater than the nominal armor thickness the shell impacted at, the shell did not ricochet (the overmatch mechanism) but the armor thickness was still effectively calculated from the impact angle, leading to some extreme armor values even for very thin armor impacts that would otherwise ricochet. This led to situations where thin armor impacts under very sharp angles were resolved as non-penetrations and even the randomized 0-2 degree normalization did not help.

In order to address the strange bounces on very thin-armored vehicles, we had to add an additional penetration to armor dependency that would allow players a guaranteed penetration in such cases but, at the same time, if the armor was thicker, this additional coefficient would not be as effective. That is why we’ve decided to introduce progressive normalization using the following equation:

Normalization Angle = (Penetration/(5*Armor Thickness))-2

This equation applies to kinetic shells only. Let’s say a Tier 5 M60A3 fires an M735A1 APFSDS round (400mm of penetration) at a Wiesel 1 TOW (8mm of steel armor). In such a case, the normalization angle will be (400/(5*8))-2 = 8 degrees – in other words, if the M60A3’s shell impacted at 30 degrees from the Wiesel’s armor plane (60 degrees from vertical), its impact angle will automatically be adjusted to 38 degrees (52 degrees from vertical).

This might not seem like much, but 8 degrees makes a huge difference when firing at a target at extreme angles. Counting effective armor – at 81 degrees impact, 8mm makes for approximately 51mm of effective armor. At 89 degrees, however, it’s already 458mm of armor and that’s what can cause a non-penetrating hit even though the armor is very thin compared to the power of the shell.

In real life, the thin 8mm plate would be obliterated but in Armored Warfare, a shell is not a physical object but a point in space, which makes such calculations possible and such adjustments necessary.

We hope that you will enjoy the battlefields without thin armor bounces and will see you on the battlefield!

Go up

Join the action