Login

russian armor

In depth - scatter and how it works

24 Apr 2020, 14:51 PM
#1
avatar of Hannibal
Senior Moderator Badge

Posts: 2838 | Subs: 2

In depth - scatter and how it works

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
24 Apr 2020, 15:06 PM
#2
avatar of T.R. Stormjäger

Posts: 3588 | Subs: 3

But here’s the big question:

My gun has 80% accuracy vs your vehicle at max range. It misses the accuracy roll, but does the shot still connect due to scatter?


Also, as nice as your calculations are, how the actual fuck does this happen?

24 Apr 2020, 15:10 PM
#3
avatar of Hannibal
Senior Moderator Badge

Posts: 2838 | Subs: 2

But here’s the big question:

My gun has 80% accuracy vs your vehicle at max range. It misses the accuracy roll, but does the shot still connect due to scatter?


First roll is for accuracy, the shot will then always connect. If accuracy fails then the shot will scatter randomly to some point in the area. If it hits the hull of the enemy you still got a hit.
For the sake of the argument, if we assume that the enemy basically covers half of the scatter area, you have a 80+10% chance to hit and 10% chance to miss.

And yes, no idea about this lul-shots that travel across half the map. In the game there seems to be something like a vertical angle of the cannon, but neither the attribute editor nor any other source comment on this. You can also shoot above a target and miss it by that, but these shots happen only once in a couple of games. I think this is more of a glitch than an actual feature, every other stat in the editor seems to be tailored towards the model I explained.
24 Apr 2020, 15:37 PM
#4
avatar of Vipper

Posts: 13150 | Subs: 1

As far as I know scatter angle return a value of length calculated by the distance to target. That could mean that scatter distance left or right is set regardless of distance the projectile travels and will land at that perpendicular distance (unless it collides before). That is why in my sketch the line are parallel.
24 Apr 2020, 15:47 PM
#5
avatar of Hannibal
Senior Moderator Badge

Posts: 2838 | Subs: 2

jump backJump back to quoted post24 Apr 2020, 15:37 PMVipper
As far as I know scatter angle return a value of length calculated by the distance to target. That could mean that scatter distance left or right is set regardless of distance the projectile travels and will land at that perpendicular distance (unless it collides before). That is why in my sketch the line are parallel.

Without knowing exactly if this is true, I also imagined it that way and that's how I calculate it, but then again this article is meant mostly for explanation how it generally works. But it is easier and more intuitive for understanding if we just take the circle sections.
24 Apr 2020, 16:17 PM
#6
avatar of Sander93

Posts: 3164 | Subs: 7

[…]
Hannibal


Great post. I guess this (the scatter_offset) explains why tanks seem to overshoot more often than any of the other three directions. Any idea why they added this (the "ghost point")? To get more scatter hits on vehicles (because overshots will still connect due to the vehicle's height)?

On the topic of scatter, it might also be interesting to dissect how much influence the scatter values have when shooting at infantry versus shooting at tanks. For example, giving the heavy tanks smaller scatter to let them hit infantry more reliably has resulted in them also being a lot more accurate against vehicles. I wonder whether or not it would've been better to use different scatter values based on the target that is being engaged, or to introduce a modifier of some sort.


24 Apr 2020, 16:35 PM
#7
avatar of Hannibal
Senior Moderator Badge

Posts: 2838 | Subs: 2



Great post. I guess this (the scatter_offset) explains why tanks seem to overshoot more often than any of the other three directions. Any idea why they added this (the "ghost point")? To get more scatter hits on vehicles (because overshots will still connect due to the vehicle's height)?

On the topic of scatter, it might also be very interesting to dissect how much influence the scatter values have when shooting at infantry versus shooting at tanks. For example, giving the heavy tanks smaller scatter has resulted in them also being a lot more accurate against vehicles. It would be an interesting discussion whether or not it would've been better to use different scatter values based on the target that is being engaged, or to introduce a modifier of some sort. Not that we could change anything for CoH2 at this point, but in the case Relic ever decides to make a CoH3, as part of the lessons learned.



Thanks!

I have no idea why scatter_offset exists. A theory could be that one: Vehicles will shoot as soon as a part of the target is in range. So if you target the front edge of an angled tank, your chances to scatter hit it are quite slim. Maybe the offset corrects for that. Also a slight offset will likely help vs infantry, since usually the front model is targeted. So a slight overshot will land in the middle of the squad. And yes, you are right: While it is possible to really make a tank shoot above another one, it practically never happens.

I can imaagine that scatter_offset can act as a means to balance a unit differently vs infantry and vehicles. Extremely high offset values will cause large overshots, giving more effective range, but it also means that scatter shots will hit vehicles more often. Contrary, the vehicle will hit infantry less often, but this obviously depends on the unit spacing.

I have written a program to basically simulate scatter shots vs vehicles, but it lacks the in-game hit box sizes. So although scatter shots are simulated correctly, the result is not 100% true to the game as long as I can't fix this. It's hard to make general rules about scatter values and how it will affect AI and AT performance differently. In general I would say lower angle scatter will mostly help vs vehicles (especially small ones), while lower distance_scatter_max should probably increase AI performance more than AT. But this is just guesswork if I am honest.
24 Apr 2020, 16:38 PM
#8
avatar of Vipper

Posts: 13150 | Subs: 1

Scatter off set is there to fix the issue of moving vehicles.

If the units are moving away from the projectile many shot would fall sort.

The only reason I think of increasing the number of hits with lowering scatter off set would be stationary vehicles and via AOE penetration. I would expect that the probability to hit moving vehicles would actually have been reduced.
24 Apr 2020, 16:47 PM
#9
avatar of Sander93

Posts: 3164 | Subs: 7

And yes, you are right: While it is possible to really make a tank shoot above another one, it practically never happens

I meant that overshots (technically flying higher than undershots) will always connect with vehicles because their hitboxes are very tall. In the same way that the IL-2 or the Sturmtiger rockets will connect with vehicles even if they visually overshoot it. So the same overshot that would fly past infantry and hit somewhere behind them will connect with a vehicle, increasing the chances for scatter hits.


jump backJump back to quoted post24 Apr 2020, 16:38 PMVipper
Scatter off set is there to fix the issue of moving vehicles.

If the units are moving away from the projectile many shot would fall sort.

That makes sense.
24 Apr 2020, 16:56 PM
#10
avatar of Hannibal
Senior Moderator Badge

Posts: 2838 | Subs: 2


I meant that overshots (technically flying higher than undershots) will always connect with vehicles because their hitboxes are very tall. In the same way that the IL-2 or the Sturmtiger rockets will connect with vehicles even if they visually overshoot it. So the same overshot that would fly past infantry and hit somewhere behind them will connect with a vehicle, increasing the chances for scatter hits.


Yes that's also what I meant.
Overshots on tank will always hit (only super rare exceptions).
24 Apr 2020, 16:58 PM
#11
avatar of Vipper

Posts: 13150 | Subs: 1


I meant that overshots (technically flying higher than undershots) will always connect with vehicles because their hitboxes are very tall. In the same way that the IL-2 or the Sturmtiger rockets will connect with vehicles even if they visually overshoot it. So the same overshot that would fly past infantry and hit somewhere behind them will connect with a vehicle, increasing the chances for scatter hits.

I am not sure if ST actually collides with hit boxes it probably uses AOE to hit vehicles.
24 Apr 2020, 17:02 PM
#12
avatar of Sander93

Posts: 3164 | Subs: 7

jump backJump back to quoted post24 Apr 2020, 16:58 PMVipper
I am not sure if ST actually collides with hit boxes it probably uses AOE to hit vehicles.


The Sturmtiger rocket collides with hitboxes, because it will collide even with infantry models that are in the way when you aim the rocket a significant amount past the target (so when it should technically fly over them). It's one of the ways to make the Sturmtiger hit way more reliably. Because that way if it undershoots it hits where you wanted it to hit, but if goes towards your aimed spot or overshoots then in either case the collision means you get a full hit anyway.
24 Apr 2020, 17:18 PM
#13
avatar of Vipper

Posts: 13150 | Subs: 1



The Sturmtiger rocket collides with hitboxes, because it will collide even with infantry models that are in the way when you aim the rocket a significant amount past the target (so when it should technically fly over them). It's one of the ways to make the Sturmtiger hit way more reliably. Because that way if it undershoots it hits where you wanted it to hit, but if goes towards your aimed spot or overshoots then in either case the collision means you get a full hit anyway.

I am pretty sure that infatry entities are different from vehicle hitboxes and ballistic weapons do not collide them.

I did some test and ST does collide with vehicles so my precious post is inaccurate. Oddly priest and sexton also.
24 Apr 2020, 17:20 PM
#14
avatar of Hannibal
Senior Moderator Badge

Posts: 2838 | Subs: 2

jump backJump back to quoted post24 Apr 2020, 17:18 PMVipper

I am pretty sure that infatry entities are different from vehicle hitboxes and ballistic weapons do not collide them.

MMX has also run simulations and concluded that infantry models have a hit box of about 0,5 meters. Not sure about the height though.
24 Apr 2020, 17:26 PM
#15
avatar of Vipper

Posts: 13150 | Subs: 1


MMX has also run simulations and concluded that infantry models have a hit box of about 0,5 meters. Not sure about the height though.

The probably have a "box" weather that can cause the explosion of ballistic projectile (or any projectile) is another issue.
24 Apr 2020, 17:30 PM
#16
avatar of Sander93

Posts: 3164 | Subs: 7

jump backJump back to quoted post24 Apr 2020, 17:18 PMVipper
I did some test and ST does collide with vehicles so my precious post is inaccurate. Oddly priest and sexton also.


Yeah I was just about to post these



It also easily collides with team weapons in the same manner. Infantry is harder to hit but I'm pretty sure I've seen it happen.
24 Apr 2020, 17:34 PM
#17
avatar of Vipper

Posts: 13150 | Subs: 1



...Infantry is harder to hit but I'm pretty sure I've seen it happen.


When I test firing a zis thru a crowd of entities it did not collide with them once. It would be really odd if ST projectile did collide with them.
MMX
24 Apr 2020, 17:41 PM
#18
avatar of MMX

Posts: 999 | Subs: 1

[...]


Great guide, as usual! I was actually planning on doing something like this but you beat me to it.

Some points you might want to consider adding:
  • FoW scatter: Units firing into the FoW suffer a penalty that increases the area of the scatter cone in which shots may land. This is basically a multiplier (for most units 1.25, or 25%, but for certain units this is significantly larger, e.g 2.5 for the ISU-152) that acts on distance_scatter_ratio and scatter_angle, but not on distance_scatter_max. Hence, for most tanks the scatter cone only gets wider when firing into the FoW due to distance_scatter_max still acting as a hard cap, but not longer. Also, distance_scatter_ratio also appears to be capped at 1 (obviously, since for values greater 1 a shot fired in front of the tank could in theory scatter behind it), but some tanks like the SU-76 or the ISU-152 can be affected by this.
  • Moving scatter: This one is another modifier that in contrast to FoW scatter increases both angular and horizontal scatter, by doubling distance_scatter_ratio (again still capped at 1), distance_scatter_max and scatter_angle. Hence, stopping before a shot not only increases the chance to hit due to higher accuracy, but also by greatly decreasing scatter.
  • Veterancy: While scatter reduction through Vet was removed for all Tiger variants in the latest patch, quite a few other units, such as the King Tiger, PzIV J or T-70 will still gain a bonus to scatter when vetting up. This again acts on distance_scatter_ratio, distance_scatter_max and scatter_angle and thus greatly reduces the area of the resulting scatter cone. Very powerful especially against infantry, but obviously also increasing the odds to connect that lucky scatter shot at max range.


MMX
24 Apr 2020, 17:47 PM
#19
avatar of MMX

Posts: 999 | Subs: 1

jump backJump back to quoted post24 Apr 2020, 17:34 PMVipper


When I test firing a zis thru a crowd of entities it did not collide with them once. It would be really odd if ST projectile did collide with them.


This is also what I've observed for all projectile based weapons I've tested so far. However, a look into the editor revealed that projectiles have a setting to enable collision with infantry, which might be the case for the ST rocket.
24 Apr 2020, 17:53 PM
#20
avatar of Hannibal
Senior Moderator Badge

Posts: 2838 | Subs: 2

jump backJump back to quoted post24 Apr 2020, 17:41 PMMMX


Great guide, as usual! I was actually planning on doing something like this but you beat me to it.

Some points you might want to consider adding:
  • FoW scatter: Units firing into the FoW suffer a penalty that increases the area of the scatter cone in which shots may land. This is basically a multiplier (for most units 1.25, or 25%, but for certain units this is significantly larger, e.g 2.5 for the ISU-152) that acts on distance_scatter_ratio and scatter_angle, but not on distance_scatter_max. Hence, for most tanks the scatter cone only gets wider when firing into the FoW due to distance_scatter_max still acting as a hard cap, but not longer. Also, distance_scatter_ratio also appears to be capped at 1 (obviously, since for values greater 1 a shot fired in front of the tank could in theory scatter behind it), but some tanks like the SU-76 or the ISU-152 can be affected by this.
  • Moving scatter: This one is another modifier that in contrast to FoW scatter increases both angular and horizontal scatter, by doubling distance_scatter_ratio (again still capped at 1), distance_scatter_max and scatter_angle. Hence, stopping before a shot not only increases the chance to hit due to higher accuracy, but also by greatly decreasing scatter.
  • Veterancy: While scatter reduction through Vet was removed for all Tiger variants in the latest patch, quite a few other units, such as the King Tiger, PzIV J or T-70 will still gain a bonus to scatter when vetting up. This again acts on distance_scatter_ratio, distance_scatter_max and scatter_angle and thus greatly reduces the area of the resulting scatter cone. Very powerful especially against infantry, but obviously also increasing the odds to connect that lucky scatter shot at max range.



Thanks for the info! I thought about adding a quick side note but forgot. I will just link your post, there's all the info one could need about this.
1 user is browsing this thread: 1 guest

Ladders Top 10

  • #
    Steam Alias
    W
    L
    %
    Streak
Data provided by Relic Relic Entertainment

Replay highlight

VS
  • Oberkommando West flag Oziligath
  • The British Forces flag T.R. Sidewinder
uploaded by Oziligath

Board Info

216 users are online: 216 guests
40 posts in the last 24h
200 posts in the last week
807 posts in the last month
Registered members: 34918
Welcome our newest member, Leitzels
Most online: 1221 users on 25 Feb 2020, 12:03 PM