alfred007 wrote: ↑07 Oct 2018, 18:40

A little bit off-topic: How is accuracy working actually? I found a thread with a discussion what system should be used to calculate accuracy. But in the end, if I understand it right, accuracy is set to 100% except for the long range. For this range, a value is set in the weapons.js file in stats. I've thought a few things about accuracy but before I post it I want to be sure that I understood the current system right.

As far as i remember, the distinction between short range and long range was removed, which is good because it never had any effect on the gameplay and the only valid strategy was to set all tanks to fire at long range. Then, the chance to hit is a physics-based emergent behavior; unlike certain other games, projectiles fly deterministically according to the a simple simulation of a few laws of physics, an actual collision between the projectile and the target is necessary in order to deal direct damage, and the target at which the weapon was fired is not special in any way - any other target may be hit. Finally, the accuracy value affects the initial vector of projectile velocity. Namely, every shot is either accurate or inaccurate. The probability of making an accurate shot is equal to the accuracy stat. If the shot is accurate, the projectile's initial velocity points directly to the target. If the shot is inaccurate, a miss vector is added to the target location. Length of the miss vector is deterministic and roughly proportional to miss chance (i.e., missed shots always target a point on a specific circumference around the target), and direction of miss (polar angle on this circumference) is uniformly random.

The debated change between 2.3 and 3.1 was in fact about that last part - the inaccurate shot behavior. In 2.3, the miss would target one of two points around the tank that make the weapon miss either to the left or to the right; these points were never within the hit box of the tank. This has a downside of having misses look completely unrealistic, but the good thing about it is that it makes game balance much more predictable: you can in fact expect that if the accuracy stat is x%, then the chance to hit any target you're firing at is roughly x%. In 3.1, chance to hit is significantly higher than x%, and significantly depends on the size of the target, and the difference between situations in which the miss radius covers the whole tank of common size and situations in which it doesn't may be dramatic, which puts a lot of value into some poorly predictable accuracy upgrade tiers.

If i'm not mistaken, the chance to hit a non-moving spherical target

in vacuum with a missed shot in 3.1 would be (2/

*π*) arccos (

*r*/

*R*), where

*R* is the miss radius and

*r* is target radius, assuming

*R* >

*r* (otherwise the chance is 100%). It is easy to see that this chance doesn't depend on the distance to the target. Which means that my memories fail me when it comes to remembering why was it debated that the new accuracy system is significantly dependent on distance and knowing the right distance to the target is extremely important.