Inspiration
Popular LoL analytics sites provide statistical analysis of your games but it doesn't really tell you specifically what to improve on. We want to come up with a unique and fun coaching app that will motivate players to climb the ladder with their favorite champions.
What it does
League Coach fetches the player's recent games' stats and compares it to players of that same role and champion of a higher rank. The compared stats will be displayed to you and a generative AI summary will tell you what things you could do to improve (such as cs) in a way as if the champion is actually talking directly to you and giving you tips!
How we built it
The application's backend consists of two major components, the stats fetching process, and the AI agent coaching process.
For the stats fetching process, we mainly utilized a combination of Riot APIs to fetch a player’s stats from recent matches (get puuid from game name and tagline, get match id from puuid, and get match data from match id). The querying player's stats will then be compared to the average stats of players playing that same role and champion of a higher rank. We have to pre-fetch this large sample of player data from to all ranks and save them to S3 to be used as our dataset since it is too slow to fetch a huge number of player data at runtime. We then query the data for the stats needed for comparison and compare the player's stats with the one with higher rank. Finally, the difference is displayed back to the user and they will see their performance in different compared to their target rank.
The stats differences are also sent to the bedrock AI agent where it will respond with coaching tips back to the player. This AI agent is preconfigured with instructions on how process the data and respond back to the user. These instructions include how to interpret the stats differences json, how to match the tone of the champion speech and personality when responding, the format and contents of the response etc.
(Check out image gallery for Architecture graphic)
Challenges we ran into
- API rate limits made it hard to gather a big enough dataset ahead of time. We sped it up by using multiple api-keys for processing multiple batches in parallel.
- We have little experience with front-end development, but the tutorials helped us get started a lot.
- The hard part was coming up with an original idea for GenAI integration. Basic stats summary would probably be a theme common to all the other participants.
Accomplishments that we're proud of
We’re proud to have built an end-to-end application — even as a prototype — based on a unique and original idea since none of us had the experience of creating such an app, let alone one integrated with AI agents. We believe it could pave the way for more personalized coaching experiences in the future of League of Legends, especially for new and casual players who just got into the game.
What we learned
- Some parts of the application (in our case, the dataset collection and aggregation) should be done ahead of time since it will take too long at runtime and would not be practical.
- We should have been better at time management - We all had to deal with our work, personal life, and/or studies while doing this project and ended up cramming last minute.
What's next for League Coach
We would definitely want to improve on the kind of stats that we can gather. Maybe look into the lane matchups and suggest the most winning builds. And of course, get some feedback from Riot and ask them how would they have done things differently with this idea.
Built With
- amazon-web-services
- bedrock
- lambda
- node.js
- pandas
- python
- riotapi
- s3
Log in or sign up for Devpost to join the conversation.