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.
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.
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:
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.
Thanks for the information.
I'll give the attribute editor a chance.
I tried that as well, but my experience is that they frequently don't match. So you might be lucky and it's up to date, but there's a decent chance it's not.
Is there a possibility to sort RelicCoH2.English a bit or how can I fast identify which row belongs to which unit etc.?
No chance on that afaik.
The "best" way is to delete most of the strings, reload into the game and check which string number is missing on the unit you want to check.
You can also look it up in the attribute editor, but as far as I know these string numbers are often not up to date.
This is a known issue mostly for people in Germany, Czech Republik and I think some other countries in central Europe.
As far as I know that is a server problem by Relic. Unlikely that something will be done about it. The problem comes without any announcement and also goes away the same.
I think your videos are great at their core, but i think you could open a bit more alternative stuff, for examples if enemy gets counters to units you buy or if youd have to change build order.
I thought about this too, but I think the videos are better that way. As short as possible, just get a viable build for new players out so that they have more time for actually playing the game and not constantly thinking about what to get next. Then they also have more time to see how the units perform. The more branches to the decision tree, the less will a new player remember.
The only build I could think of that might work in 1v1 with Tier 2 would probably on be useful against Ostheer as OKW zergs you with too many Volks too quickly. It would be T2 - Con - Con - Con - Maxim - Infirmary - Zis-3/Guards - AT-Nades - T/70.
Cons are played on high level as well. But this is for new players. The meta is not worth that much, what counts is how easy it is to use these units. And SOV T1 leaves quite a lot of gaps, has two micro intense units, expensive main lines which means you get less squads so your map control has to be better. LVs can only be soft countered, snares are more difficult etc etc. T2 is user friendly, and that's what a new player needs to have.
Fantastic work; this will almost certainly be a valuable tool for the community.
This aspect won't be accurate; CoH2's vehicles are scaled a lot, and in completely arbitrary ways. For example, compare the 222 and the T34. In game, the T34 is only slightly larger, whereas in reality, the 222 is 4.8m long, compared to the T34s 6.7m.
Thank you very much.
Yes, I know. This is why I need the in-game sizes. I am pretty sure that my scatter simulation is accurate, the only thing missing are the actual hit boxes to calculate scatter hits.
I have tried to measure a P4 by building sand bags around it, but this is a very weird thing to do. I assume it's pretty imprecise and also not feasible for that amount of vehicles. There must be a better way.
By pressing the link, you will be redirected to download a .zip file from coh2.org. This zip file contains either a Python file or an executable, depending on what you downloaded.
For running the Python file, you will need a version of Python 3 (I am using 3.7 at the time of posting). If you have any security concerns you can also open the file with a standard text editor program and have a look at the code even if you do not have Python installed.
For running the executable, you do not need anything. However, you cannot look at the code as the whole thing is already compiled. It also runs slightly slower than the Python version, but does the same job.
To report the simulation outcomes, DeCoHde 2.0 will create up to three .txt files in its own directory if you chose the targeting or the tank combat sim (options 2 and 3, respectively).
If you want to have a detailed look at what this program can do, check out this post. In short, DeCoHde 2.0 can simulate a shootout between two tanks, as well as simulating one tank shooting at the other (without the target firing back). This can help you to analyse how long it takes to take out an enemy tank, how many shots will hit, bounce, penetrate etc. If you are interested in unit stats, you can also use the "inspect" mode to get them (plus some additional stats that are not used in-game, but needed for the program itself)
If you come across any outdated stats, please post here or write me a PM
This project still needs some help beyond release!
The biggest problem right now is that I do not know the in-game hit box sizes of the tanks. I took the real life size from Wikipedia instead. However, this could mean that scatter shots might not be 100% true to the in-game situation. If you know how to get the in-game hit box sizes, please let me know.
Finally a thanks especially to MMX for discussions and clearing up some stuff on the scatter model, as well as Vipper for providing a mod to prove the used model.
If you have any questions, feel free to ask!
Hannibal
EDIT: Note: Just saw that the Puma's stats are screwed up because I inserted one value at the wrong place.
Don't you think that videos of this type are kind of obsolete at this point in the game's life-cycle?
(this is not to discredit the quality of the video)
Even if the audience is probably very small, Autobahn seems to do it just for the fun of it.
The videos are pretty well made. Very short and concise, cover what, when and why. I think this is all you need to know to get started.
The only thing that could be imprpved without too much effort would be to synchronize what you say and what the video shows you better. Especially in the first video it was a bit off. If you say to buy the AT grenade to make sure you can defend a Luchs or 222, show Cons throwing it etc (can't remember if that was in there like that or not, just an example). If you say to buy a T70 to get your midgame right, don't show it dying. Show it chipping away at infantry. It might die in the end, does not matter, but show it in it's intended role, or fight off a Luchs (although this would probably take too long for the video). With the sweepers you could show them sweeping a mine to keep a T70 in the same shot safe.
Not a huge thing, but this can really improve the conveyed message.