Talk:Proposals/Obsolete Proposals/Stats, Experience and Mission Count in 2.5-dev


Most of the data for this is available at the following URL:

Calculating Accuracy

Accuracy and weapon skills, don't improve effective accuracy enough. The below chart shows the accuracy (as displayed in % chance to hit when aiming) of various weapons with various stats (45/40 = 45 weapon stat / 40 accuracy).

  • 20/20 = average rookie
  • 45/40 = low vet
  • 60/50 = high vet
  • 80/60 = superstar (unexpected, definitely not more than 1 or 2 per game)


The gain between an average rookie and a high vet is just not enough, I think. Especially not between an average rookie and a low vet. I'd like to see a high vet achieve the accuracy gains of a superstar, maybe even a little more. But its not easy to figure this out. The chart is based on % chance to hit, but this is probably not even related to the calculations done to actually fire the weapon, which are more complicated.

The following description of the math from DarkRain is useful:

accuracy = 1 - (accuracy_ability / 100 + weapon_skill / 100) / 2
(which equals to: take the average of both, divide it by 100 and then rest that from one)
first for parabolic throws (grenades and such):
first, the angle (pitch, yaw, roll) for a perfect throw to the intended target is calculated, then   it is modified this way: 
pitch += <random number  between -1 and 1> * 2 * (spread1 * (0.5 + 1 * accuracy))
yaw += <another random number between -1 and 1> * 2 * (spread2 * (0.5 + 1 * accuracy))

now for straight shots (bullets, beams, knives, anything travelling in a straight line):
again the pitch, yaw, roll angles for a perfect shot is calculated, and then modified:
first get two Gaussian distributed random numbers with median at 0 and standard deviation of 1,   let them be gauss1 and gauss2, 
then calculate a secondary injury multiplier (this one was here before wounds were implemented and  I haven't touched it):
if HP / maxHP < 0.5 injurymultiplier2 = 1 + 0.2 * ((1 / (HP / maxHP + 0.5)) - 1) * 100 / mind
else injurymultiplier2 = 1
pitch += gauss1 * (spread1 * ((0.5 + 1 * accuracy) * injurymultiplier2))
yaw += gauss2 * (spread2 * ((0.5 + 1 * accuracy) * injurymultiplier2))
if the shooter is crouched, each of the above two is additionally multiplied by the crouch factor  from the fireDef

Speed Growth Mechanisms

I'm not really a fan of how speed is improved. It encourages tedious maxing out movement wherever possible, even using the last 4 or 6 TU of each soldier. Maybe that's fine and not a big deal, but I wonder if we should consider some alternatives. Here are two: --H-hour 00:02, 19 March 2013 (SAST)

  • Large Movements: Give a soldier bonus points for moving with more than 75% of his TU in a turn. We could also give a lot of bonus for using 75% of his TU and getting a kill in the same turn. This would not eliminate the tedious maxing, but would at least eliminate all the using up of any tiny excess TU. This may be more difficult to track and code, though, and would be less reliable for balancing stat gain.
    • This is too complicate and impossible to explain to the player. I like the cumulative aproach much more. --ShipIt 07:53, 19 March 2013 (CET)
  • Cumulative Growth: Like HP, we could just make this one a function of all the total XP accumulated elsewhere.

Stat Maximum

  • I am in favour of this. The gain is too slow atm. But I still think there should be a limit to what stats a human physically can reach. This limit should depend on the starting value instead being an absolute number, to reflect the physical conditions of the soldier. --ShipIt 08:49, 19 March 2013 (SAST)
    • With a maximum number set it should be possible to tweak the values in a way to make it possible to get to the max within ~30 missions. --ShipIt 10:24, 19 March 2013 (SAST)
      • Stats will max at 100, but I don't think this is what you want. I'm not entirely sure I agree with you on this. If soldiers hit an absolute max cap regularly, this could create too much of a disincentive to keep the soldier at home, as further experience would be wasted on them. It would also probably render meaningless the bragging rights you get with your top soldier (remember when you and I traded screenshots of our top soldiers?) if the player ends up with several soldiers all topped out around the same numbers. HOWEVER, I would be in favor of tapering the experience curve more, so that after a certain amount of stat gain the soldier must get a lot more exp for further development. This would still provide that incentive to spread the exp around but would be a softer limit, allowing top soldiers to still develop some (albeit slowly) and players to play how they want (note that some skills, like strength, will really not be able to get to 100 even if they go in ~60 missions). If you look at the first graph below, the equation I've proposed is the orange line. I like how this equation tapers early -- the first 2,500 exp gives twice as much of a stat boost as the next 2,500 exp. But it really straightens out around 5,000. Maybe DarkRain knows some math that would taper the post-5,000 more so that it flattens out a bit? Or maybe we just use some code that calculates the bonus for the first 5,000 exp differently from the second 5,000 exp? What do you think about this? --H-hour 14:22, 19 March 2013 (SAST)
        • Note: with the system I describe the soft max will be different based on initial stats. --H-hour 14:22, 19 March 2013 (SAST)

Useful Graphs