Jump to content

Approximating probability of range attack hitting a target due to spread


stevenlau
 Share

Recommended Posts

Spread of common infantry - Archer:2.25 Crossbowman:3 Javelineer:4 Slinger:3

Spread means how inaccurate the shooting becomes at 100m from target.  The spread is less when closer than 100m.  For example, it is half at 50m.  Thus, archer and crossbowman are proportionally the same: 2.25 x 60 / 100 = 3 x 45 / 100 = 1.35

A projectile (arrow / stone / javelin) is considered to hit a infantry when it arrives at radius < 1.5m from target (indeed, a circle).  A projectile is considered to hit a calvary when it arrives at the 3m x 6m rectangle of the target (indeed, a rectangle), which is a little larger than the size of two infantry.  Dog is smaller, elephant is larger, charriot is larger.

Now, at the beginning of a shoot, after waiting a short initial prepare time (once only), the future location of the target (because it may be walking) is very often precisely predicted, and the projectile is shot there, at a speed around 70m-100m per second, depending on unit.  It should mathematically hit the target at the exact position when the projectile lands.  Therefore, if the target changed direction during this time, the projectile might miss.

Even if the target did not change direction, the projectile might also miss due to the spread.  The exact spread is given by a pair of independent normal random variable at variance of 1m.  It is then multiplied by the spread.  The result is some sort of 2D normal distribution, but since x and y are independent random variables, the 2D CDF is not circular, but more like a square.  It seems super difficult to mathematically calculate the exact probability of it hitting a target.  Let's get a rough idea by assuming the 1D case.  I don't know how much would it deviate from 2D case, would be great if some mathematician could help.

In the simplified 1D case, I just use some online normal CDF calculator, fixing lower bound at -1.5, upper bound at 1.5, mean at 0, standard deviation at 2.25 x 60 / 100 = 1.35.  Archer hits an infantry at 60m with probability 73.35%.  After an upgrade of spread (-20%), standard deviation = 2.25 x 0.8 x 60 / 100 = 1.08, the probability is 83.51%. 

Crossbowman and slinger hits infantry at 45m with probability 73.35%.  At rank 2 spread -20%, the probability is 83.51%.  Indeed, exactly same as archer at 60m, coincidentally.

Javelineer hits infantry at 30m with probability 78.87%.  At rank 2, the probability is 88.18%.

The best unit would be rank 3 archer plus spread upgrade, at standard deviation = 2.25 x 0.8^3 x 60 / 100, hitting target at 60m with 97%.

Last but not least, when a projectile misses a target, it is not wasted.  It will hit some innocent person standing there.

Reference:

https://gitea.wildfiregames.com/0ad/0ad/src/branch/main/binaries/data/mods/public/simulation/components/Attack.js#L714

Edited by stevenlau
  • Like 1
Link to comment
Share on other sites

  • stevenlau changed the title to Approximating probability of range attack hitting a target due to spread
40 minutes ago, stevenlau said:

Spread of common infantry - Archer:2.25 Crossbowman:3 Javelineer:4 Slinger:3

Spread means how inaccurate the shooting becomes at 100m from target.  The spread is less when closer than 100m.  For example, it is half at 50m.  Thus, archer and crossbowman are proportionally the same: 2.25 x 60 / 100 = 3 x 45 / 100 = 1.35

A projectile (arrow / stone / javelin) is considered to hit a infantry when it arrives at radius < 1.5m from target (indeed, a circle).  A projectile is considered to hit a calvary when it arrives at the 3m x 6m rectangle of the target (indeed, a rectangle), which is a little larger than the size of two infantry.  Dog is smaller, elephant is larger, charriot is larger.

Now, at the beginning of a shoot, after waiting a short initial prepare time (once only), the future location of the target (because it may be walking) is very often precisely predicted, and the projectile is shot there, at a speed around 70m-100m per second, depending on unit.  It should mathematically hit the target at the exact position when the projectile lands.  Therefore, if the target changed direction during this time, the projectile might miss.

Even if the target did not change direction, the projectile might also miss due to the spread.  The exact spread is given by a pair of independent normal random variable at variance of 1m.  It is then multiplied by the spread.  The result is some sort of 2D normal distribution, but since x and y are independent random variables, the 2D CDF is not circular, but more like a square.  It seems super difficult to mathematically calculate the exact probability of it hitting a target.  Let's get a rough idea by assuming the 1D case.  I don't know how much would it deviate from 2D case, would be great if some mathematician could help.

In the simplified 1D case, I just use some online normal CDF calculator, fixing lower bound at -1.5, upper bound at 1.5, mean at 0, standard deviation at 2.25 x 60 / 100 = 1.35.  Archer hits an infantry at 60m with probability 73.35%.  After an upgrade of spread (-20%), standard deviation = 2.25 x 0.8 x 60 / 100 = 1.08, the probability is 83.51%. 

Crossbowman and slinger hits infantry at 45m with probability 73.35%.  At rank 2 spread -20%, the probability is 83.51%.  Indeed, exactly same as archer at 60m, coincidentally.

Javelineer hits infantry at 30m with probability 78.87%.  At rank 2, the probability is 88.18%.

The best unit would be rank 3 archer plus spread upgrade, at standard deviation = 2.25 x 0.8^3 x 60 / 100, hitting target at 60m with 97%.

Last but not least, when a projectile misses a target, it is not wasted.  It will hit some innocent person standing there.

Reference:

https://gitea.wildfiregames.com/0ad/0ad/src/branch/main/binaries/data/mods/public/simulation/components/Attack.js#L714

OP!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...