Rift Salesman - Riot Games API Challenge #2 Entry
by Michael Du (NA: A Heavy Feather) and Richard Du (NA: Esipher)
This project aims to highlight changes in player usage of items affected by the AP Item Patch. In this patch, changes were made to the following: Archangel's Staff, Athene's Unholy Grail, Liandry's Torment, Luden's Echo, Morellonomicon, Nashor's Tooth, Rabadon's Deathcap, Rod of Ages, Rylai's Crystal Sceptre, Void Staff, Will of the Ancients, Zhonya's Hourglass.
Note: A few other items were affected as well but either build into one of the items listed above or have a post-buy condition to be met (Seraph's Embrace) and thus were not included in the analysis.
The project uses a dataset of 10,000 matches played on patch version 5.11 (before item changes) and another 10,000 matches played on patch version 5.14 (after item changes). There was a seperate set for both normal and ranked games as well as corresponding sets for each region—this project uses the North America region datasets. The selection of match IDs were provided by Riot Games.
The main focus of the data analysis is centered around the popularity and success rate of each item both before and after the changes hit. We looked at how many times each item was purchased, which champions purchased what, and what priority level the purchase was (example: if a champion buys Rod of Ages it is primarily a first buy).
A Python script was used to fetch match data using the Riot API with the match IDs provided. The match data was parsed mainly for the timeline to look for item purchase events which were logged if the item purchased was one of the AP items mentioned above. Information gathered at this point was which AP item was purchased, whether or not the purchaser's team won, which champion the purchaser was playing, and how many AP items the player purchased before the current purchase. The data went into two JSON objects: itemsJSON and champsJSON.
itemsJSON held an object for each AP item with its total purchase count, number of wins, and an array representing purchase and win counts at each priority level.
champsJSON held an object for each champion that purchased an AP item and recorded purchase count and number of wins for each item per champion.
Python (for data retrieval and data processing)