top of page

League of Legends Performance vs Time of Day/Week

This is a brief presentation of my analysis, click here for my full iPython notebook.

Motivation

The field of eSports is rapidly taking over the entertainment industry with over 100 million monthly players for League of Legends.

This movement has gotten so serious to the point where universities such as UC Irvine are offering scholarships to top gamers. With this, many gamers are seeking to improve and train for games such as League of Legends similar to how student athletes train to get better at sports.

So how do players improve performance or in gaming terms, "git gud"?

Introduction

Analytics sites such as Mobalytics and OP.GG help users gain insights on how to improve their game play so that they can win more games.

Mobalytics Example

Here, we take a look at a sample summoner on how they perform against similar players in their division.

Here, all skills are equal or above their division except aggression.

Let's take a deeper look on how to improve aggression skill for this summoner.

Here, a user can see their skill breakdown in order to understand where their skills are lacking for 'aggression'.

OP.GG example

Here, we take a look at the win rate of champions in a division. The top 5 champions are highlighted. Playing these champions would most likely help a player win their game with decent performance.

Performance vs Time of Day/Week

Something that isn't answered by many analytic sites is performance versus time of day.

For example, we all have a preferred time of day to do thing such as work, study, and sleep. Perhaps we perform the best during the day, thus we work during that time. Maybe we study in the afternoon since that is when or coffee has kicked in. Also, maybe we sleep during the night since our body's performance is the weakest then.

What about gaming performance? Do we perform the best during the day or night? After work or before work? During work? This quick study uses Riot's API to find out.

Methods

The method we are going to use for this study is requests on Riot's API. For this, we use a developer API key. Limitations to this method is that the API code will expire in a day and also is limited to 100 requests per 2 minutes. Thus, we will limit data to 100 games.

Inputs

Since we want a scalable and reuseable platform, we use Python.

We only need 2 things to proceed the entire script located on my GitHub.

  • Summoner Name

  • API key for Riot's development page

Outputs

Here we get losses vs wins for hour of the day. (0= Midnight, 23 = 11 PM)

Losses vs Wins for Hour of Day (n=100)

This doesn't tell us much, so we use a winrate vs average winrate per time of day graph. (0= Midnight, 23 = 11 PM)

Winrate vs Average Winrate for Hour of Day (n = 100)

Now for the day of week.

Losses vs Wins for Day of Week (n=100)

Winrate vs Average Winrate for Day of Week (n=100)

Conclusion

For this player, here are the best and worst times to play.

The best times for this player to play is 5, 16, 20, and 21. (5 AM, 4 PM, and 8-9 PM.)

They win 10% more games than their average wins.

Best Hours

The worst time for this player to play is 3, 14, 17, and 22. (3 AM, 2 PM, 5 PM, and 10 PM)

They lose 10% more games than their average wins.

Worst Hours

The best days of the week for this player to play is Tuesday and Saturday.

They win 10% more games than their average wins.

Best Days

The worst days of the week for this player to play is Wednesday and Friday.

They lose 10% more games than their average wins.

Worst Days

Discussion

To improve this study, here are some things that could be done.

  • Larger than 100 sample size.

  • Although 100 games seems adequate for this study, more games is always better.

  • To achieve this, we need to apply for a better API key through Riot's development portal.

  • KDA analysis

  • I've implemented a KDA algorithmn in this study but did not use it.

  • League of Legends is a team game. Thus, performance may be affected by teammate's performances.

  • So instead of win rate, we could use KDA instead.

Reusability

Want to reuse my code to predict your own stats?

  1. Fork my iPython notebook from GitHub.

  2. Make a Riot Developer account.

  3. Install Anaconda for Python.

  4. Edit my notebook by replacing "summoner name" and "API code" with your own stock and run!

Featured Posts
Recent Posts
Archive
Search By Tags
No tags yet.
bottom of page