Normally I don't make suggestion threads at all, but here's yet another.
Common complaint loads of people have: Matchmaking is bad and makes people do bad things for bad reasons.
How solve?
Looking at these forums, many people come to the impression that most of Hawken's players have rather high MMRs - above 1800 is the norm. In fact, players with over 1800 MMR represent a percentage of total players in the single digits. However, there is certainly an overabundance of players at the high end relative to what should technically be possible with the MMR system.
These players can get MMRs far higher in proportion to the overall system than should be possible, given the number of players in the system. (Not in the hundreds by the way - Shadeness has ~100,000 unique accounts listed in his system, and goes through several thousand every couple of days.) As a result of this mismatch, these higher level players cannot find matches at their skill level easily. They then have to resort to the matchmaker which takes an exceedingly long time to match them, and then ends up placing them in servers FAR below their skill level, resulting in a massive stomp. Alternatively, they can create smurf accounts so they can have a lower MMR account to play matches with.
In order to solve this, I've come up with a really basic system that should draw everyone's MMR closer to a pegged average, while putting a lower ceiling on the extreme ranges of MMR. What should happen under such a system, is players across the board will be more able to find servers that match their skill level, the need to smurf by people at the high end should be heavily reduced, and people should be happier in general.
Note that I am NOT a mathematician nor a statistician, so my math is likely pretty bad, or could be improved by someone who is.
Basically, find an average MMR, and artificially peg the average to that number. 1500 makes perfect sense since in my suggestion, there is 1000 points of leeway on either side of 1500. With the pegged MMR average, the average skill level as calculated by the MMR system is set at 1500, forcing the theoretical average player towards an MMR of 1500. At the end of the day with this system, the average should ALWAYS be within a point or two of 1500.
Next, set hard limits on MMR at 500 and 2500, instead of 500 and 3000 as they currently stand. Then place a soft limit that is significantly more difficult to advance beyond. Right now a soft limit is kind of in place at ~2850, but I don't think there is a real one. This soft limit should be placed at a floating peg - rather than the hard peg that the average is set at. This floating peg should be placed at the 3.5th standard deviation away from the average. (For an explanation of what standard deviation means: [link]) This should make it much harder for players to advance beyond this point, keeping MMRs from rising into the stratosphere as they do now.
Having this soft cap be at a floating point, rather than a hard peg, means that the soft cap will adjust to the playerbase, rather than having a single abusable point. The lower hard limit, in addition to the soft cap means even those who advance beyond the soft cap and hit the ceiling should still have players to match up with, despite being at the very top of the skill level.
Here's an example to explain how the soft cap could work. In this example, the soft cap is currently placed at 2300 MMR. A player has 2299 MMR, and just had a moderately good game. His MMR advances one point as a result of his match, making his MMR 2300. For the sake of an example, in her next match, she performs exactly 3 times better as far as the MMR algorithm is concerned. Before reaching the soft cap, she would have gained 3 MMR. Now that she has reached the soft cap however, she only gains 1 MMR. If said player performed poorly, causing a loss in MMR, she would lose MMR at an equivalently increased rate per unit of poor performance, up until she crosses the soft cap line, where she loses MMR at the normal rate.
Example: Suicax is at 2305 MMR, and has an unusually poor performance. Since he has an MMR greater than the soft cap, his adjusted MMR loss is 15 points. Instead of losing 15 points straight up, Suicax loses the first 5 points, bringing him to 2300 MMR. The remainder of the point loss is no longer accelerated. He instead loses 3.3 MMR for the remainder of the loss, and finishes at 2296.7 MMR.
An alternate example of the way a soft cap could work is as follows. Apply a flat point value increase in the required score of a given match to gain MMR. If, in a way abstracted example, you were to require 50 points above the server average to gain one point of MMR in a round below the soft cap, above the soft cap, the threshold rises, and instead you need 150 points to gain the same increase. If the base threshold for any increase at all was normally placed at the server average, the threshold is now 100 points above average. If you earn less than 100 points above average while above the soft cap threshold, you instead lose MMR as if Average+100 were the average.
For all players who are currently above and below the hard limit, add or subtract from their MMR until they are placed at the hard limit at their respective end of the spectrum. (no one has less than 500 MMR, though.)
Here's where the math starts. For all players above 1500, subtract an amount from their MMR equal to (.5(standard deviation * Z-score)). (Z-score is the term for the amount of standard deviations a given number is away from the average.) For a full equation for those above the average :
FinalMMR = CurrentMMR - (.5(?*z)) (Where ? = standard deviation, and z = Z-score)
Then, do the same thing for MMRs that are below the average, except instead of subtracting from the current MMR, you add to it. The result should be that players farther away from the average are brought closer to average at a sliding rate such that the further away from average you are, the more MMR you lose to get closer to average, while those closest to the average lose comparatively little.
The overall end result of all this should be that overall MMRs across the playerbase are close enough that those at the top can still find servers, and smurfing should be less of a big deal, and everyone overall should have more server options available to them. The addition and subtraction should also be limited enough so as to keep everyone an appropriate distance from the average. (If it is in fact too much pull, just reduce the .5 multiplier by some amount so as to keep a healthy spread.) Having an artificially pegged average will also pull things a bit more towards a nice bell curve, so there will be fewer people way beyond the pale in terms of what MMRs should be possible.
Edit: Since I know it will come up - accounts that are unactive for over 3 months should be removed from the process used to calculate the hard average and the floating points. They can be entered back into the system should the account's user return.
Again, I am not a mathematician nor a statistician. Take the above with as much salt as you please, but this system should be accurate to what I describe, and I think the end result of applying such a system would be a net benefit for people across the playerbase.
If anything is unclear, or if I have missed something, let me know so I can fix it.
If my idea is bad and I should feel bad, tell me about it.
If you are mad that this means now you'll never make it to 3000 MMR: lolskrub.
Edit: Note: I do not think this will resolve all problems with MMR, with smurf accounts, or with high level players having the ability to stomp newbies. Fixing problems like those would require far more stringent measures that would come with negative consequences. I do think that this system will open up the possibility for more players to find more games that are much closer to their skill level. If a player wants to jump into a low level game to stomp them, this won't stop them, just like the current system doesn't. But if you are a 2200+ MMR player, and have trouble finding matches that fit your skill level and give you a fair challenge at present, this system would help you find more of those sweet, sweet, 2 and 3 star servers, more often.
Edited by Saturnine, 10 April 2015 - 09:06 AM.