SWAT and FFA Tweaks
We made a tweak last week to matchmaking in SWAT and FFA that is live now. The first part of this is almost verbatim from the blog post, followed by more details for the curious.
Some of our higher-skilled players had been struggling to find matches in SWAT and FFA at all because their skill is so high. Although we try to not allow imbalanced matches, we also don’t want to exclude players entirely because of their skill. We want to allow even the highest-skilled players a chance at playing without erroring out of the search.
Usually when this happens we adjust the matchmaker to allow the search to expand just enough to let people play again. This has the downside that as soon as the population shifts, they can’t play again, and must wait for us to re-evaluate and expand the search again. I would prefer if we never have periods of time where certain players just can’t match. I’d like us to fall back on eventually matchmaking anyone after making a best effort for the fairest matches.
This time, instead of letting the search expand just a little bit longer, we now let it expand long enough that no matter how good players get, they will eventually be guaranteed a match without having to restart their search over and over. This also means that the matchmaker will try for a longer period of time than today before it “gives up” and allows anything within the max gap.
Lower-skilled players will potentially see higher-skilled players in their matches more often with the change. If players search Focused, however, they won’t see high-skilled players until waiting 2-3 minutes, making it an unusual occurrence in the middle tiers where most players are
Allowing the search to expand over a longer period should be a good compromise that both allows everyone to play, and still gives the fairest matches available in the playlist at the time of the search.
For those curious about exactly what the change is, here’s a little more detail. Note that I’m giving exact numbers here because I know that’s fun for some of us. But keep in mind they can change scale at any time when needed, so they’re not, like, canon or anything. Just illustrative with a real example.
- The matchmaker ignores rating values above a certain level. Very few players exceed that level, so this is more like a simplifying step. - The matchmaker first tries to find a match within 0.2 of the average skill of the party. A 0.2 gap would give the better team a 53% chance of winning. So this is relatively fair. - The matchmaker expands this gap every 5 seconds. For the first 5 seconds, we try for 0.2. In SWAT this grows by 0.15 per second over 2.5 minutes. From 0.2 up to 4.68 by the end of 2.5 minutes. In FFA, skill is more spread out than SWAT, so while it starts at 0.2, it expands by 0.25 every 5 seconds. The maximum expansion for both covers half the distribution of players. So top players can match down to the middle. Likewise, bottom players can match up to the middle. - The matchmaker tries for another 2.5 minutes (5 minutes total tops) to try and find someone within the playlist max gap (4.68 for SWAT, 7.84 for FFA). For you stats folks out there, this is 4 standard deviations worth of expanding.
The difference between this and before is that originally, we only expanded for 40 seconds on all playlists, and never allowed a gap greater than 1.0. This results in fairly tight matchmaking, but it also prevents too many people from being able to play Halo, which I don’t think is acceptable.
This tries to ensure anyone can match within 5 minutes.
One other detail that influences all this is whether players search Focused or not. If you aren’t searching Focused, someone that has waited longer than you have can pull you in to any match that THEY are allowed. This means this can happen:
- High-skilled player waits for 2.5 minutes - Mid-skilled player starts searching Balanced. - They match immediately.
If you find yourself matching fast into imbalanced matches and would prefer to wait it out and give matchmaker a chance to find something tighter, search Focused instead.
If this works out OK, I’ll consider it for other lists. I’m also seeing if we we can increase the wait times even farther out than 5 minutes so I can slow down the expansion on more competitive lists like HCS. This would let normal folks still match quickly, and have the higher-skilled folks wait for a nice long period of time for another high-skilled team to come along.
Keep in mind that in all of these scenarios, the matchmaker still chooses the best match possible from those available at the time. So even when it stops expanding, it will choose a closer match over a farther one from the final list of players it looks at.
A Way to Increase Playlist Quality
Recent stats we’ve analyzed confirm something we’ve always expected. One of the strongest indicators of match quality for a given playlist is its current population. When the population goes up, so does quality, as population goes down, quality always goes down.
So ideally, we should keep as much of the population together as possible to give higher quality matchmaking to everyone.
For example, when we take a playlist, and split it between Ranked and Social, matchmaking quality ALWAYS goes down. We’ve never seen it improve doing this. Basically, the benefits of separating the two are almost always overcome by the reduced match quality. This is even more apparent in skilled playlists because the more important skill is to the gameplay, the higher the population you need for quality matchmaking.
One option I have some experience with in other games to alleviate this is instead of splitting a Ranked list, let players choose Ranked or Social, but matchmake them together. Those that match Social don’t have their Ranks or stats affected. The result is higher quality matchmaking for everyone. We can even adjust the MMR of Social players so we don’t put them on your team if they aren’t in “try hard” mode.
We could also have some lists be Ranked or Social only (e.g. HCS vs. Action Sack) when appropriate.
Downsides I’ve heard:
- “I don’t want someone on my team who doesn’t care if they win or lose.” Besides the fact that people tend to still care even if they are playing Social, we could consider never putting Ranked and Social players on the same team. - “Although Social players usually lean back and relax, sometimes they lean forward, resulting in them playing much better than expected and making the match imbalanced” I’ve heard this complaint, but rarely seen it happen in practice. Player performance doesn’t vary enough in stats to support this. - “Ranked teams can convince Social ones to throw the game for free wins in Ranked” In games I’ve seen this option in, I haven’t noticed this having a large impact. But, to reduce the impact of this effect, we could make some playlists Ranked-only (e.g. HCS).
Anyways, this is an option I’m looking at in the future because it has greatly improved matchmaking quality in my experience. Let me know what you think.