or: Why you have been ground-targeting wrong for seven years
Scatter calculations have always been quite obscure and I have noticed that many in the community do not know how they properly work. Vipper has a guide that covers scatter a bit, but also there is not much in-depth information. After focusing a lot on scatter and scatter simulation, I thought it might be neat to share this knowledge. I tried to make it an easy read by using a lot of schemes.
In this post you will learn:
- what the scatter stats mean and how they function
- how scatter is properly calculated
- why your ground targeting has been wrong the whole time
- and how to improve it
To understand scatter, we have to understand four stats of a weapon. These stats are "scatter_ratio", "distance_scatter_max", "scatter_offset" and "scatter_angle" and will now be explained in detail.
In our example, a T34 is ground targeting a point 40 meters in front of it. The question now is: Where will the shots land? You already experienced that the shot can land both short and far, as well as left and right to the targeted spot. So we note that scatter has two components: horizontal scatter, so in the direction of the shot, and angle scatter, which causes the shot to go left or right.
The first thing the game checks is the maximum distance the shot can land far (or short) from the intended spot. This is simply calculated by the distance of the target multiplied with the "scatter_ratio" value. This gives the distance how much shorter or farther the shot can land, so the actual deviation is twice this value.
horizontal_scatter = distance * scatter_ratio
The T34 has a scatter_ratio of 1, so does this mean the shot can land up 40 meters away from the target? Initially, yes. This is where "distance_scatter_max" comes into play: It caps that value. In our example, the T34's horizontal scatter is therefore capped by its distance_scatter_max of 6,9 meters. So why is there then the initial calculation with the scatter ratio? For most tanks and basically all units using a scatter_ratio of 1, the first calculation is meaningless unless you fight in a range closer than the distance_scatter_max value. What is basically done is: We take whatever is smaller - either the distance_scatter_max or the distance * scatter_ratio. As a rule of thumb, all tanks use the value of 1. However, some units like howitzers use scatter_ratios smaller than 1. To sum it up, in our example the T34 has a horizontal scatter of +/- 6,9 meters due to the hard cap.
horizontal_scatter gets capped by distance_scatter_max!
Horizontal scatter scheme (as all schemes not to scale)
Now we already know what half of these obscure values do. But what are the others? First off, we have "scatter_offset". This value pushes the point from which horizontal scatter is calculated further back. It can also pull it closer if it's negative, but it usually is positive. You can approximately imagine it that way: While you ordered your T34 to shoot at a specific spot, your tank will actually target a "ghost point" further away. And this is controlled by scatter_ratio. For the T34, scatter_offset has a value of 0,25. To calculate this "ghost point", which I term "scatter center", the horizontal scatter we calculated in the previous paragraph is multiplied by the scatter_offset.
scatter_center = distance + horizontal_scatter * scatter_offset
Scatter_offset scheme
For us, this means that our targeted point at 40 meters is moved by 6,9 * 0,25 = 2,4 meters to the back and creates the scatter center at 42,4 meters. Around this center, the shot can land 6,9 meters short or far.
Scatter center scheme
We're almost done now! The only missing thing is the scatter_angle and this is pretty straight forward. This the angle of the "cone" in front of the T34, so the actual angle to the left OR to the right is half the scatter angle. For the T34, the scatter_angle value is 7,5°, which means it shoots up to 3,75° left or right.
This gives us the complete scatter area:
You can see the target spot in magenta, scatter center in orange and the potential area where the shot might scatter to in light orange. The exact scatter angle and horizontal scatter are randomly picked and evenly distributed, making every spot in the area equally likely to be hit. However, since the two sections to the left have less area than the two sections to the right, the shot density is higher.
To sum it up, the complete formula to calculate the scatter area and therefore be able to compare units at a given distance (slightly simplified) is:
((distance + (1 + scatter_offset) * distance_scatter_max)^2 - (distance - (1 - scatter_offset) * distance_scatter_max)^2) * pi * (scatter_angle/360)
These stats can be further modified if the shooting unit is moving or if you do not have direct visual on the target (this means the target is in the fog of war). Briefly, both increase the scatter area so you want to avoid it if possible. MMX has summed it up in great and concise detail in his post.
Finally, I promised you one thing: To show that your ground targeting has been off for the last seven years. From what I saw on Twitch, even pro Players do not seem to know this.
Let's imagine a standard situation: You get pushed by a Puma. You immediately turn your AT gun around a sight blocker and surprise the Puma from closer range. The OKW player then pops his "Oh shit!" smoke which breaks sight, but is still in range. The only chance to get it is a ground attack. So you select your AT gun and continuously order it to shoot at the spot where you think the Puma should be. But that's wrong.
Why? You should have clicked at the maximum range behind the Puma, and that is why:
Obviously this example is a bit exaggerated, but: the further away you order your unit to shoot, the better. If the shot lands to the left or right, that's tough luck and you can't do much about it. But if the shot lands short, that's completely on you. Since the horizontal scatter is hard capped, you can make a shot never land short if you just shoot far enough behind the target.
If there are any questions, feel free to ask.
Hannibal