First of all, special thanks to those who contributed and helped:
- landaire – Reverse engineering
- LPCVOID – Reverse enginnering
- notyourfather – Reverse engineering and Parsing replays
- Monstrofil – Creator of Replay parser
- 901234 – Data mining and proofreading
You must keep in mind that this article is based on reverse engineering and something might be incorrect – yet, I'm convinced this code holds true.
I cannot answer the actual code or process of RE so do not ask me about that. Please.
Those parameters can be found in "gameparams.dat".
Two units exist – BigWorld (hereafter referred to as "BW") and Meter (m). 30
You'll need to convert/unify the units if you want to calculate dispersion yourself.
The following units are based on values in the said file.
: Distance which horizontal dispersion become "idealRadius"
: Horizontal dispersion at "idealDistance"
: minimum horizontal dispersion *technically
: Distance at which horizontal dispersion starts to converge towards 0. Mostly 4000~5000m
- delim: Coefficient that modifies "maxDist"
- radiusOnZero: Coeffient of vertical dispersion at 0m
- radiusOnDelim: Coefficient of vertical dispersion at ("delim" * "maxDist")m
- radiusOnMax: Coefficient of vertical dispersion at max range.
: maximum range when the dispersion ellipse is determined. Affected by anything that modify the range – such as AFT, GFCS2, Spotter, etc.
The values below are not in pgameparams but I'll need them for explanation.
: Distance between the turret and aiming point. (Aiming distance)
: "maxDist" * "delim"
- verticalCoeff: I'll describe later
From this section, I'll use only BW unit unless otherwise specified. Just don't forget to convert meters. (This makes formulas clean by eliminating x30)
You should remember that those dispersions are radius, not diameter. Also, the in-game ships are twice their actual size Therefore, the in-game ellipse has x2 (with lock-on) or x4 (without lock-on) size of the stated formula.
It doesn't really matter unless if you try to collect the shot-coordinates using replay parser.*
|Distance||Horizontal Dispersion |
|If X <= taperDist (Very close combat)||X * (idealRadius – minRadius) / idealDistance + minRadius * (X / taperDist)|
|If taperDist < X||X * (idealRadius – minRadius) / idealDistance + minRadius|
The difference is minRadius which corresponds to the y-intercept of linear functions.
It may look complicated, but the reality is that horizontal dispersion just starts to converge towards 0 under "taperDist".
SUPERCOMPREHENSIBLEPICTURE.PNG(Thanks to notyourfather)
Direction of vertical dispersion
Before we start, I must correct a common misunderstanding.
In this Q&A, Sub_octavian explained how-dispersion-works with
Judging by that picture, it seems as if dispersion ellipse was built vertically on the water.
However, actual ellipse is generated perpendicular to the terminal trajectory.
– How it actually works
Any attemp to estimate vertical dispersion from the landing points on water has failed because of this.
Size of vertical dispersion
The list below represents how verticalCoeff works.
|If X < delimDist (Between 0 to delimDist)||radiusOnZero + (radiusOnDelim – radiusOnZero) * (X / delimDist)|
|If delimDist <= X (Between delimDist to maxDist)||radiusOnDelim + (radiusOnMax – radiusOnDelim) * (X – delimDist) / (maxDist – delimDist)|
This one appears to be confusing too, but what these do is simple – linear interpolation.
The important thing is: Unlike horizontal dispersion, maximum verticalCoeff does not change as the maximum range grows.
In other words, To increase the max range is to improve the vertical dispersion at the same range.
You cannot believe this? OK…
With the replay-parser, you can extract the coordinates for the shells to go through. The set of those points should create the dispersion ellipse.
This is the result of Colbert shooting at 6km, with/without range modifiers. No accuracy mod is installed. At this range, shells lands around 5 degrees. That means dispersion ellipse should be almost perpendicular to the water.
AFT and GFCS2 – max range 19.2km
No range mods – max range 13.8km
|19.2km build||13.8km build||diff|
|Average distance from gun to aiming point ||199.58736928304037||200.1123024666279||0.52493318358 (roughly 15m)|
|verticalCoeff at 6km (in theory)||0.7748125937||0.9217391304||0.77…/0.92… = 0.84059856866 (accuracy increase by 16%)|
|Difference between highest and lowest point of||19.2km build||13.8km build||diff % (19.2build / 13.8build)|
XZ plane is waterline. As you can see, there is no much variation in X and Z coordinates while Y (vertical dispersion) makes obvious difference. Aiming distance had almost no influence since the error was only 15m.
In theory, maximizing the range via any means including a spotter plane will suggest a decrease in vertical dispersion. In the case of the Colbert the dispersion is decreased by 16%, which almost lines up the result of in-game testing.
If you want the data, I have some gifts for you
- All range mods (19.2km), shooting at 6km
Points for the shells to go through. Each row consists of
- No range mods (13.8km), shooting at 6km
Points for the shells to go through.
Source: Original link
© Post "Reverse Engineered: Dispersion Ellipse – including Vertical part!" for game World of Warships.
Top 10 Most Anticipated Video Games of 2020
2020 will have something to satisfy classic and modern gamers alike. To be eligible for the list, the game must be confirmed for 2020, or there should be good reason to expect its release in that year. Therefore, upcoming games with a mere announcement and no discernible release date will not be included.
Top 15 NEW Games of 2020 [FIRST HALF]
2020 has a ton to look forward to...in the video gaming world. Here are fifteen games we're looking forward to in the first half of 2020.