Valodata is a personal project I made in summer 2022. I developed it alone and it was the subject of my summer internship of my fourth year at Rubika SupInfoGame.
Valodata is a data analysis project based on Valorant, the tactical FPS of Riot Games. Since I started to play the game, all statistics the game can offer have always held my attention. I asked myself if there was any way I could access it programmatically. The goal of this project is to develop a system that can fetch player data from Valorant to produce diverse analysis, reports and dashboards.
As my first complex data analysis project, I had to learn many things to achieve my objectives.
To fetch the data, Riot provides an official API but this one is not accessible for personal projects like mine. To bypass this restriction, I choose to use the in-game API which is not an official API supported by Riot for third-party developers, but it provides me all the information I need.
Using Python and asyncio, the Python asynchronous programming library, I made an algorithm that authenticates to Riot services then fetches account UUIDs from the regional player leaderboard and matches history to fetch match UUID.
From account UUID, I can access the skill level of each player, and from match UUID, I can access all data of any match: date, game duration, team composition, round played, economy state, plant/defuse event, kills event…
As soon as I fetch new data, I push it into a MySQL 8 database that I also made myself. From the API, a simple match is represented in a JSON file that could go over 30.000 lines once formatted. My program has to parse those large files before sending useful data into the database.
Due to a lack of time, I couldn’t make an analysis of my data, and the fetching algorithm wasn’t flawless. It was fast to me, I was able to fetch 1000 matches per hour, however I found later on some I/O bounds in the program making it slower than it could have been.
I learn so many things with this simple project and it has convinced me to push forward in data analysis in games.