Overwatch player recommendation system using Django and OWAPI
The application is a recommendation system for players of the online multiplayer game, “Overwatch”. Users can search for their Battletag (unique Player ID), view their profile and view a list of players that are least similar and most similar to them, and view their profiles. Users can also view the top hero (playable characters) recommendations for them as well as the players with the top amount of hours for every hero (as of February 2017). Used technologies include; Overwatch API (OWAPI), PHP, MySQL, Python, Django.
A recommendation system is an information filtering system that attempts to predict the preference or rating that a user would give an item; examples of this would be people you may know on Facebook or suggested albums for you on Spotify. The aim of this project is to create a recommendation system for players of the game “Overwatch”. Overwatch is an online multiplayer team game where players compete in teams of six to complete different objectives. In these matches players can chose from a range of different heroes to play as, players can change heroes at any time to try and combat the enemy team. Players have a number of heroes they can play well and put a lot of time into these heroes. What the recommendation system aims to do, is to give users a list of players that they could potentially synergise with based on their preferences of heroes. The application was coded using Python inside the Django web framework and connects to a MySQL database. It uses live player data from the the unofficial Overwatch API.
The aim of the project was to provide Overwatch players with recommendations based on the amount of hours they spent on different heroes. As such a number of different recommendation algorithms were tested to find out which one performed the calculations faster and how the quality of recommendation compared. It was observed that the Pearson Correlation provided the best results and in the fastest time. Euclidean distance provided a quick response but did not provide adequate recommendations for players. Cosine similarity was also tested but it was much slower to perform the necessary equations.