League Statistical Analysis

Active Start-up Project

What is League of Legends?

League of Legends (LoL) is an online MOBA currently seeing over 100,000,000 active players per month and is highly competitive. In LoL, players are ranked in an ELO system and every game played effects their ranked standing. This means the drive for any given player to improve is high. However, options for improvement beyond slow and arduous self-reflection are extremely limited (i.e. professional coaching, which can be prohibitively expensive). A player’s ELO tends to plateau without help; often leading to toxic behavior, inactivity, and boredom(you can read more on this from my co-author here).

This results in a player need for tools that can help them improve their game play. A substantial amount of player coaching can be automated by providing an alternative and wallet-friendly source of insight beyond self-reflection. By providing dynamic tools that automatically personalize themselves to the player, we can offer the deeper understanding necessary for improvement and to break free of the tar that’s bound them to their current ELO.

How can we provide these tools?

Our approach employs a wide range of statistical analysis tools, especially machine learning, we are able to analyze previous player behavior and establish behavioral patterns. Using a player’s behavioral patterns we are able to generate insight to help players improve faster. For example, we are able to identify when a player is more frequently killed by a particular type of champion or in a specific area of the map, and provide feedback that can help the player avoid this happening in the future. Feedback may include insights such as where to place a ward to improve sight and avoid ganks, or suggesting alternate paths where players are less likely to be killed.

To achieve this analysis we use the raw data of past and current games as context . The context includes factors such as the player’s lane, allied and enemy team composition, player performance, experience and expertise, and match events including kills/deaths and objectives achieved by the player and their teammates. Analysis of the current game also includes the past performance of allies and enemies, with feedback being tailored to aid decision making for the current game.

Project History:

Initially started as a personal project by Graham Hayes in 2014 while learning to play LoL. He was having difficulty keeping track of champion counter-picking. He was using a site called LoLCounter in order to improve (LoLCounter is a site that suggests champions that do well against the enemy team’s champions). After a short time using LoLCounter he discovered that their data become progressively more stale each patch, and because all of its data is player voted counter-pick suggestions were skewed toward picks for players of average skill.

LoL had also recently released the League API, and he decided to attempt to build an automated counter-pick system. Within a few weeks he had built a prototype system. Still being in school he continued to use his system and slowly expanded it’s functionality, including modules to account for Itemization and player builds.

A number of these tools already exist on the market in simple forms. However, existing tools only report the aggregate statistics of the entire league, they do not account for player behavior and they do not offer tailored insight. This led to our attempt to extract and analyze game context.

What is complete:

  • LSA backbone, with fully implemented scale-able architecture.
  • Analysis pipeline including player data collection and context extraction.
  • Database schema and distributed implementation.
  • Custom debug tools with automated unit testing per module.
  • Basic analytical tools with abstraction layers for maintainability and security, including context detection, lane performance analysis, and personalized champion selection tools.
  • Back-end Website architecture with a customized design ready prepared for implementation.

My Personal Contributions to the project:

    • Augmentation of the context abstraction layer
    • Additional data collection and pre-processing tools
    • Abstractable and scaleable Pre-processed data parsing tools
    • Minor analysis tools design assistance

What needs to be completed:

  • Analytics layer, particularly potential build analysis
  • ETL for data sources(match timelines, item description parsing)
  • Website Integration
    • Front end design implementation
  • Visualization tools including a Model-View-Controller implementation

 

Project tools already developed, and under development: