Since ideas of a global statistics system have been thrown around, I decided to experiment with a formula for calculating the "skill index" that would be very usefull for such a system.
Essentially, your "skill" is determined and modified not just by your kills and eliminations, but by WHOM you eliminated and whom you were eliminated by.
I conducted the following simulation with 8 imaginary "players" whom i constructed. Each player was giving a specific skill level (not to be confused with the skill index we are attempting to calculate). This skill level ranged from 1.0 -> 10.0, and basically all that it is used for is determining the probability that player A was able to successfully kill player B when attempted.
Here are the created players, sorted by skill level
Player Name | Skill Level |
Mr. Elite | 10.0 |
Stewie | 8.0 |
Bart_Man | 7.0 |
Mr. Mediocre | 5.0 |
Homer | 3.0 |
Johny NotSoGood | 2.0 |
Johny's Twin | 2.0 |
super newbie | 1.0 |
Now, here's the simulation I conducted with the aformentioned players:
- All players begin with 1500 default skill rating
- For each player in the list, attempt to kill another (randomly chosen player) using the pre-defined skill levels to help with the probability of such an event.
- If kill is successfull, modify both the eliminator's/eliminated's skill rating.
- Move to next player in list.
- Repeate the above proccess X times.
Now, here's the psuedo-code for the formula i'm using to adjust skill ratings:
if (kill = true) ->
[add_amount = (1 + 1*round(skill(whoWasKilled)/skill(Me))and then, to avoid a linear increase/decrease in skill over an extended period of time:
if (cur.skill_rating > 1500.0) add_amount *= 1500.0/(1500.0+abs(cur.skill_rating - 1500.0))This is then added to the current players skill:
players.skill_rating += add_amountThis exact same process is used for when someone is eliminated, except obviously inverted (and subtracted).
Now, to the results of the simulation (sorted by kills, not simulated rating), first using a small simulation length value of 500, which would be comparable to ~ 1 maps worth.
Player Name | Skill Rating | Total Kills | Total Deaths | K/D Ratio |
Mr. Elite | 1577 | 50 | 9 | 5.55556 |
Stewie | 1564 | 50 | 12 | 4.16667 |
Bart_Man | 1558 | 49 | 18 | 2.72222 |
Mr. Mediocre | 1527 | 29 | 17 | 1.70588 |
Johny NotSoGood | 1453 | 21 | 46 | 0.456522 |
Johny's Twin | 1469 | 21 | 37 | 0.567568 |
Homer | 1466 | 19 | 40 | 0.475 |
super newbie | 1390 | 6 | 66 | 0.0909091 |
Now, for a larger simulation (value = 5000)
Player Name | Skill Rating | Total Kills | Total Deaths | K/D Ratio |
Mr. Elite | 2128 | 554 | 96 | 5.77083 |
Stewie | 1979 | 474 | 152 | 3.11842 |
Bart_Man | 1964 | 470 | 160 | 2.9375 |
Mr. Mediocre | 1709 | 387 | 258 | 1.5 |
Johny's Twin | 1188 | 204 | 415 | 0.491566 |
Homer | 1186 | 247 | 455 | 0.542857 |
Johny NotSoGood | 1166 | 185 | 422 | 0.438389 |
super newbie | 691 | 50 | 613 | 0.0815661 |
simulation length = 50000
Player Name | Skill Rating | Total Kills | Total Deaths | K/D Ratio |
Mr. Elite | 3542 | 5530 | 997 | 5.54664 |
Stewie | 3043 | 4858 | 1424 | 3.41152 |
Bart_Man | 2873 | 4686 | 1681 | 2.78763 |
Mr. Mediocre | 1532 | 3950 | 2584 | 1.52864 |
Homer | 647 | 2380 | 4295 | 0.554133 |
Johny NotSoGood | 608 | 2108 | 4419 | 0.477031 |
Johny's Twin | 549 | 1998 | 4398 | 0.454297 |
super newbie | 108 | 546 | 6258 | 0.0872483 |
..and finally, simulation length= 100000
note how Mr. Mediocre has had little volatility in his ranking, as well as how the extremes have been "capped" by the formula. Also, this kind of simulation assumes that the inherent skill level of the player never changes, which is clearly different (basically what i'm attempting to say is that with real human data, there would be more fluctuations/less-spread).
Player Name | Skill Rating | Total Kills | Total Deaths | K/D Ratio |
Mr. Elite | 3636 | 11107 | 1972 | 5.63235 |
Stewie | 3202 | 9784 | 2730 | 3.58388 |
Bart_Man | 2893 | 9479 | 3400 | 2.78794 |
Mr. Mediocre | 1622 | 7790 | 5250 | 1.48381 |
Homer | 810 | 4581 | 8533 | 0.536857 |
Johny NotSoGood | 565 | 4146 | 8898 | 0.465947 |
Johny's Twin | 544 | 4109 | 8881 | 0.462673 |
super newbie | 44 | 1123 | 12455 | 0.0901646 |
Here is an example of a much more even spread, the skill level ranges from 4.5 -> 5.5 (sim. length = 100000)
Player Name | Skill Rating | Total Kills | Total Deaths | K/D Ratio |
Mr. Mediocre | 1510 | 5792 | 5455 | 1.06178 |
Johny NotSoGood | 1509 | 5600 | 5575 | 1.00448 |
Stewie | 1505 | 5154 | 6009 | 0.857713 |
Mr. Elite | 1505 | 6297 | 5037 | 1.25015 |
Johny's Twin | 1500 | 6051 | 5201 | 1.16343 |
super newbie | 1496 | 5023 | 6227 | 0.806648 |
Bart_Man | 1496 | 5431 | 5756 | 0.943537 |
Homer | 1484 | 5545 | 5633 | 0.984378 |