CLIENT CLEANUP: Champ Select & End Of Game

We're working on improvements to Champ Select and End Of Game.

Earlier this year, we made a commitment to share bi-monthly updates on the behind-the-scenes work we're doing to improve the performance and reliability of the League of Legends client.

Today's update is the fifth blog in the series. (See the first, the second, the third, and the fourth.)

TL;DR: Now that improving client start up times and improving our architecture is complete, we're finally jumping into Champ Select. We've also taken on End Of Game as a new priority.


Champ Select Begins

Way back when we started this blog series in March, we mentioned two major goals: Improving client bootstrap time and Champ Select responsiveness, in that order. In September, we finally lowered bootstrap time (client start up time) down to 15.5 seconds for 90% of our players and announced work on Champ Select would finally begin.

Here are our first updates.

Champ Select Memory Footprint

We always expected Champ Select to be in a similar need of repair as the rest of the client—ember apps to consolidate, code to optimize, bugs to fix, what have you. Over the course of our deep dive, we uncovered an unexpected type of issue: Champ Select's (and the client's) memory footprint increases each time you run through it in the same play session.

For the 90th percentile, this looks like:

  • The first time you run through Champ Select, the client's memory consumption jumps to 481 MB
  • The second time incurs another jump of 56 MB
  • The third time onward incur smaller jumps of ~ 15MB to 25 MB
  • graphcomms.jpg

Ultimately, as you get more and more games in during a single session, the client becomes more sluggish until a restart is all but required.

The existence of memory leaks in the client is definitely not news and we figured some of this leakage was coming from Champ Select. The size and extent of the leaks we’re seeing, however, requires a shift in our approach. In parallel with our originally-planned efforts, we're now working to implement more specialized developer tools which let us identify and tackle memory leaks across the whole client more efficiently, cutting down the time it takes to deliver improvements.

We did say in parallel, and while progress has been light, we plan on shipping our first small improvements to Champ Select performance in patch 10.23. We’ve improved summoner spell and ward skin selection so they don't create additional ember apps when opened. This leads to a small but measurable reduction in memory usage (~1.6 MB) when players set their spells and ward skins during Champ Select. These were two of the earliest memory leaks we discovered, and fixing them was a great way to put best practices in place to tackle bigger chunks of memory leaks in the near future! We expect more noticeable improvements to ship before the end of year.

Champ Select UX/UI Review

Aside from fixing what's broken, another part of fixing Champ Select is identifying which parts of the experience players care about, and which ones we can pull back on, or even remove, because players don't find them as important. The rationale is that the Champ Select experience is critical to the core game loop and so the less complexity we have in that path, the fewer opportunities there will be for things to go wrong. We've leveraged player survey data to tell us what's important when it comes to the Champ Select User Experience (UX) and User Interface (UI), and are adding in-client metrics to reinforce those surveys with player activity data.

Here are some of our early results, and what we've done or plan to do about them:

  • Players want faster and greater clarity around whether their button clicks went through, especially when it comes to picking and banning champions. We'll improve the speed and reliability of the visual and auditory feedback the interface provides to achieve this clarity.
  • Players don't find the ceremonies around summoner spell and ward skin selection that important. We're removing the associated animations (in addition to fixing the memory leak issue mentioned above).
  • We're adding telemetry to see how often players use certain Champ Select features that are less integral to preparing for the match ahead. If these fall more into the nice-to-have category, we may remove them for the sake of maximizing performance gains.
    • Emote Panel
    • Champion favoriting
    • Missions

Getting into Champ Select

One of the biggest pain points we’ve heard from players is that getting into Champ Select can run into a whole host of problems. Reliability in Champ Select is a must to help players feel they are ready to focus on the game ahead of them. It's critical that we resolve any issues that may interfere with banning champions or locking in your pick. We also don’t want you to have to worry whether the skin, summoner spells or runes you’ve used over hundreds of games are going to change without your knowledge.

As we begin work in this space, the primary goals for our approach are to get players into Champ Select with adequate time to make critical decisions, ensure champion banning and picking are reliable, and have all players get into the game successfully.

End Of Game (EOG)

While not one of our original focus areas when we started the client cleanup campaign, End of Game (everything that happens between pressing "continue" on the Victory/Defeat screen and you being able to interact with the post-game lobby) has since emerged as a frustration point that's nearly on par with bootstrap times and Champ Select responsiveness & reliability. We're focusing on frustrations around two main areas:

  1. Players have reported issues where the client hangs on a "reconnect" button for a while after the game ends instead of immediately transitioning into Honor. We're still investigating the cause of this issue.
  2. Sometimes the client locks up when players transition back into it from the Victory/Defeat screen, leaving them unable to see or interact with the Honor screen or postgame lobby. We have some promising fixes on deck which should go out in patch 10.23.

The Settings & Popups Bug

Amidst the work on Champ Select and End of Game, we've also recently tackled a spike in reports of settings bugs over the past several patches. This includes things like Champ Select not remembering your summoner spells, as well as old popups showing up again (and again and again and again).Tracking down these issues was a journey to say the least. A few teams were independently working to update their backend systems around the same time, creating a bunch of scattered edge cases that combined into a perfect storm of many players experiencing at least one form of settings issue. We've introduced three independent fixes to help alleviate the majority of these issues since the last blog, with the most recent being in patch 10.21.

As we continue to make significant improvements to both Champ Select and End Of Game, we will continue to partner with our internal teams to track and address high player pain bugs if they come up.

That’s our update this time around! We have a lot of work to do through the end of the year, and we would like to thank you for your patience while we try our hardest to continue making the client better for our players every patch!