Ask a question about League or Riot, and we’ll try to answer it. Answers go live every Thursday at 1:30 pm (PT)
Riot Support now has all the info on what’s under the hood, game designers answered a few of your questions around getting into game, and now in the final part of this update, we’ll talk about what we’ve been doing to make matchmaking better in League.
You’ll hear this a lot, but League’s matchmaking should try to balance three things—create fair matches, where appropriate players get their primary position as much as possible, and maintain short queue times. We spent the last two years developing and shipping improvements to matchmaking behind the scenes and we’d like to share some of that data!
One note: since we were able to keep match fairness consistent throughout the year at most skill levels, we’re gonna be focusing on position select and queue times for this update. We heard from you that both of these were in a pretty bad state, so that’s where we wanted to improve, and where we spent most of our development time last year.
First up—position select. Adding autofill was one of the first steps we took to help with the pretty rough launch of the position select/dynamic queue system in 2016. Autofill massively cut queue times, but we heard from you a lot that the rate you were getting autofilled was too high.
With that in mind, we looked at ways we could try to improve autofill rates. We’ve talked about how important it is as a tradeoff to a position select system in League, but that doesn’t mean it couldn’t be tightened up. We spent 2017 trying to prioritize getting your primary position far more and getting autofilled less. These graphs show NA data, but all regions follow roughly the same pattern.
Position Assignment, All Position Combinations, NA, January 2016-2018
(a) Position priority – A change to the algorithm so you’d wait a bit longer but get your primary more often.
(b) Autofill – Autofill introduced for all players.
(c) Autofill primary fix – A config change for primary position rates.
(d) Autofill experiments – We ran some tests for a few different versions of autofill to find one that worked best.
(e) Kidnapping algorithm – This is a change to how we form teams. It’s not as nefarious as it sounds.
(f) Shuffling algorithm – This one tries to ensure you get your primary more.
With changes over the last year, hopefully you’re getting your primary up to 90% of the time, regardless of positions. The graph above shows how frequently players got their primary position, secondary position, or were autofilled last year.
When we originally launched position select, if you chose mid primary and support secondary you’d end up mid in about 1 out of every 10 games—not a great “primary” experience. We’ve been working to change that since early 2016. Even with a position combination where getting your secondary is more likely than other combos (which for most servers is mid/support), we tried to make support much “safer” to take as a second option.
Position Assignment, Mid/Support, NA, January 2016-2018
(a) Position select launch – Players immediately figure out that support secondary probably means “you’re getting support.” The health of the system degenerates.
(b) Position priority – This feature helps temporarily but eventually degenerates again.
(c) Autofill – Autofill launches, and more players are assigned support.
(d) Autofill primary fix – Mid rates pass support for the first time through a config change aimed at primary position rates.
(e) Autofill experiments – We ran some tests for a few different versions of autofill to find one that worked best.
(f) Xayah and Rakan released – The bot lane duo bounced onto the Rift, and Rakan’s popularity pushed mid/support players to get mid way more often (as many more selected support as their primary! #supportmainsunite)
(g) Autofill test – Config change for autofill.
(h) Kidnapping algorithm – This is a change to how we form teams. Seriously, it’s not that bad.
(i) Zoe released – Many more players picking Zoe temporarily lowered the chances of getting mid. This is pretty standard for any new champion.
(j) Start of 2018 season – Which is basically now.
The graph above shows how frequently you get your primary position, secondary position, or are autofilled in the hardest-to-accommodate case: mid primary, support secondary. We figure if the “worst-case scenario” is still performing pretty well, that’s a decent indication that regardless of what you choose, you should still get your primary in a vast majority of games.
Queue times and “Time to Game”
We had a couple of opportunities throughout the year to lower what we call your “time to game.” This includes anything that happens between hitting “Find Match” and getting into the loading screen—champ select duration, dodges, and queue times. Being stuck in an eight-minute champ select and then having someone dodge at the last minute feels rotten, so here’s what champ select looked like in 2017.
Champ Select Duration, All Regions, 2017
(a) 10 bans system launch – Moving from six alternating bans to 10 simultaneous ones shaved over 30 seconds on average from each champ select.
(b) Simultaneous draft picks launch – Making consecutive picks part of the same phase cut a lot more time.
On top of these feature launches, we released some visual improvements to champ select designed at drawing more attention to when it’s your time to act. We saw unintentional dodges (as a result of not locking in) drop from one-out-of-ten to one-out-of-fifteen with these changes.
As for queue times, being stuck in multiple long queues in a row feels rough, and as our team’s name “Get In Game” suggests… we want to get you into game. In 2016, at the highest levels, some players were waiting literally hours just to play a game of League. Not good.
Queue Times, All Regions, 2017
(a) Optimal Operational Parenthesis Solution – Please don’t ask us about this.
(b) Dodge fix – We fixed an edge case where dodges caused players to get stuck in matchmaking.
(c) Kidnapping test – Testing a different kidnapping setup for a month or so…
(d) Kidnapping test off – … and then reverting it to see what impact it had.
(e) Box algorithm – Optimized code for hardware setup to get faster queue pops. Thinking inside the box.
(f) Kidnapping algorithm – This is the same fix mentioned in previous graphs—it also improved time to game.
So compared to the beginning of 2017, queues should feel a lot shorter across the board, only reaching around 4 minutes at worst (with some high-MMR exceptions). Sorry to everyone who takes in-queue toilet breaks.
Alright, just one more graph—let’s rewind a little. As you’ve seen, improving matchmaking is iterative, long-term, and never done. Here are the queue times for the same five days in January (roughly the start of each season) from 2015 to 2018:
Queue Times, All Servers, January 2015-2018
Early 2015: Queue times were okay, but at their worst, they hit around 12+ minutes.
Early 2016: Position select was really inefficient at launch, so some high level players would wait 26 minutes or more just to play one game. Yikes.
Early 2017: Autofill’s introduction, as well as other small fixes, normalized queue times back to 2015 levels.
Early 2018: 2017’s iterative improvements, bug fixes, and config changes have gotten League to the healthiest matchmaking state so far.
So, in short: We know it’s not perfect, but today, you should be in fair matches, with the position that you want more often, as well as not waiting long to get into game. But… what’s next?
Plans for 2018 and beyond
For 2018, we’re considering some crazy ideas. These are in various stages of development ranging from “It’ll probably happen” to “No idea if that’ll actually work.” Here are a few things we’re thinking about.
Super Really Fast Queues?
We’re wondering if it’s possible to have 20 or 30 second queue times for everyone without sacrificing other factors. It might not even be possible, we’re not totally sure yet. But we’ll see if there’s even a small chance of making it happen.
Noob and Smurf MMR
We’ve got a new algorithm that’s gone through a few tests that looks like it could get players to an accurate matchmaking rating much more quickly than right now. As a bonus, this can help with getting smurfs to the right places faster. We’ll let you know when this comes out of testing, assuming it plays out the way we expect.
No design for ranked solves every problem. One of the big ones in today’s system is that games are just as challenging skill-wise no matter what position you end up playing. This sucks when you’re just playing out of your comfort zone and double sucks when you get autofilled. We’re looking at a few different ways of solving those issues without creating a ton of exploits. We’re still brainstorming here, so it’s a perfect time to let us know what you think about this problem.
This is the third post of a three-part update on matchmaking in League! Read the rest below:
Part 1: How does matchmaking work? – A much-needed update to the Riot Support article to better represent how matchmaking works in League in 2018.
Part 2: /dev: Matchmaking Real Talk – Answering some of the tough questions around matchmaking, and hopefully dispelling some myths along the way.
Part 3: /dev: Making Matchmaking Better – Take a look behind the scenes at some of the improvements we’ve been making for the last couple of years.