Currently, individual player CSRs are based on wins/losses of the entire team, as stated here. However, this, evidently, is unfair, as players could be placed in poor teams, or have a teammate quit on them. Thus, I believe it should be based on individual K/D ratio (at least in the Slayer playlists). As such, I have devised a simple algorithm with which CSR loss/gain could be calculated, from a game.
Where:
- KD = the player’s K/D ratio in the match. In objective gametypes, this would be replaced by objective captures and capture assists per life, multiplied by about 2-4 (in KotH, it’d be seconds in hill per life, divided by about 10).- AD = the players assists per death. In objective gametypes, this would be replaced by the player’s K/D ratio.- TP = the amount of players on that player’s team at the end of the match.- EP = the amount of players on the enemy team at the end of the match.- PCR = the player’s CSR, expressed as an integer, starting with 1 (Iron I), then 2 (Iron II) and so on, until pro is reached.- TCR = the mean CSR of the player’s team (excluding the player), expressed the same way as above. If all teammates have quit, or there are no teams, it is equal to PCR.- ECR = the mean CSR of the enemy team, expressed the same way as above. If there are no teams, it is the mean CSR of everyone excluding the player whose CSR gain is being calculated.CSR Gain = ((((KD^2) * (((EP - TP) *0.2) + 1)) * 5) - 5) * (((ECR - PCR) * 0.2) + 1) * ((PCR - TCR * 0.1) + 1) * (AD + 0.9)
This would create reasonable results for each situation, and takes into account all major factors.
In a completely fair match (everybody had the same CSR, and nobody quit), where the player got a K/D of 1, this formula would (or at least should) give 0, which reflects that the match is perfectly fair. However, in the far more common unbalanced matches, it should give reasonable results based on the players performance, skill of enemies and teammates, and numbers of both sides.
If a difficulty curve was to be introduced, the same formula could be tweaked slightly, into this:
CSR Gain = (((((KD^(2 + (PCR * 0.1))) * (((EP - TP) *0.2) + 1)) * 5) - 5) * (((ECR - PCR) * 0.2) + 1) * ((PCR - TCR * 0.1) + 1) * (AD + 0.9)) - PCR
This would make it so that the higher the rank you are, the more there is at stake. Performing badly would result in losing a lot, while performing would result in gaining a lot, but not as much as if you had badly to the same extent.
Obviously, some of the static numbers given might (and probably would) need a bit of tweaking. However, even as it is, it should work, and perhaps better than the current one which is based on wins and losses. It would be tailored exactly to the person’s skill, leaving little to anything else. Plus, it would remove the tiresome (but currently valid) argument of ‘My CSR is bad because I keep getting bad teams’.
Any suggestions, comments or improvements?