@Lyte and RiotKiddington:

First of all, thanks for being so open with what's going on and gathering feedback from the community.

Overall, I'd say I've noticed an improvement in match balance. But, like others, I've also seen the exact opposite happen on occasion. I think it's beneficial to consider "experience" as a factor in matchmaking on top of elo, but I have a couple of suggestions for improving it further.

Some of this might already be included in the system... I'm just going by what I've gathered in your posts.

**1. Scale Number of Wins Logarithmically (or Similar)**

As you mention yourself, the difference between, say, two players with 1200 wins and 1000 wins is much smaller than between two players with 200 and 100 wins. So, rather than using the straight number of wins, I would first calculate an "experience" factor and use that for adjusting matchmaking instead.

This experience factor should scale up very rapidly towards the lower number of wins range and then taper off quickly, possibly approaching some maximum value.

For example, the formula might look like:

Experience = 20 * ln((WinCount / 10) + 1)

"WinCount" being the number of wins and "ln" being the natural logarithm. The "+ 1" is to avoid taking the natural log of a number < 1 (which would yield a negative for experience). In other words, it forces the result to start at 0 experience for 0 wins and remain in the positive number range.

The division by 10 makes it rise a little flatter, particularly towards the lower win range. The final multiplication by 20 just scales everything to a nicer range to work with. Obviously this is just an example and all the numbers could use tweaking. Also, this does not technically approach a maximum limit, but one could be enforced by, say, treating anything above 2000 wins as 2000 wins.

Anyway, this particular function would result in the following win-to-experience mapping:

0 wins = 0 experience

50 wins = 35.8 experience

100 wins = 48.0 experience

200 wins = 60.9 experience

1000 wins = 92.3 experience

1200 wins = 95.9 experience

2000 wins = 106.1 experience

So, essentially, this exaggerates the difference in low win ranges while flattening the higher win ranges. The difference between 100 and 200 wins is calculated to be about 13 experience points, while the difference between 1000 and 1200 wins is only about 3.6 experience.

Using an experience score like that instead of flat win numbers should yield better results.

__2. Proximity is More Important Than Average__

You said that right now you're looking at just having similar average wins on both teams.

However, as some people have reported, this has led to matchups with win numbers such as:

[2000, 125, 125, 125, 125] VS [500, 500, 500, 500, 500]

While this looks spot on if you average the wins (500 vs 500), in practice it'll likely be an extremely imbalanced match. I would argue that this is because proximity (be it of elo, wins, or experience) is much more important than averages.

Playing with or against players from vastly different skill or experience ranges is neither fun nor does it produce balanced matches. What people want, and what makes for good matches, is for everyone to be a close to each other in terms of skill as possible. Averages really don't matter much at all.

I can only guess at the details of how your matchmaking system works, but I would assume that the basic process is something along the lines of:

1. Generate possible permutations of matches based on queue population

2. Calculate score for each permutation

3. "Approve" (start game for) permutations with the highest / acceptable scores

Extremely simplified, of course, but I imagine that's the general idea? So step 2 in this process would be where, right now, you're giving the score a bit of a boost if the average win number on both teams is similar?

I think that, at the very least, it should also consider standard deviation (or some similar metric for variance) when deciding whether the matchup is a good one. In fact, it should probably lower the score / avoid the match if the variation is too high. Perhaps there's no need to even consider the average directly at all... standard deviation might be the only metric you need?

Anyway, just some ideas. Good luck and keep up the good work.