Inspiration

I am a software engineer and a heavy league player that always dreamed to be good in League since I am a Korean and a lot of my friends are good at it. But the real life is cruel, I am not a very good player and always just stays in Gold or Plat tier most of the time. However, when I discovered that I have a opportunity to build a platform like this to improve gaming skill, I was wondering why not give it a try! It could help me to improve my gaming skills and also at the same time help others to find out what to improve from their previous games! Who knows that maybe my application can make the next Faker or Chovy...

What it does

By entering your Riot ID in the landing page and wait for 1 - 3 mins, the server will retrieve the game data from your last 300 games and feed that data into LLM model for analysis and you will get a detailed feedback on your performance and what you can improve on based on these data.

How we built it

The website is built fully on JavaScript which uses React and tailwindcss in the front end and Express.js in the back end. The flow of the website it like this: the user will input their Riot ID (username and tagline) and we will get the puuid of the user by that information. We then use that puuid to get the match information of the user and the website goes into the loading state until it gets information. Then we use Amazon bedrock that is set up to feed that information to the model that we selected with a system prompt to get the result that we want and output it in a json format. We then use that json string to render the result that we want to the result page.

Challenges we ran into

I thought that their will be a Riot API for us to get the batch information of the user for a year summary end game result but later I found out that we do not have that endpoint so we needed to fetch game result one by one and there is a limit of 100 request per 2 minutes so I can only at most request 96 game results for analysis. I figured that later I can integrate S3 buckets for this problem where if the user first calls an agent, we can first store 96 match results of the user and later we can monitor the user to run some background task to retrieve more information since this is an active user so we can get more information about the user. Also there is another problem where the data fetching is too slow and also we are waiting too long for the model response. I came up with the solution to reduce the games that we retrieve and also early finish for the function if it meets 429 exception (rate limit). Also, I tried different models for the best performance-response time balance and later we can test with more and more models to see if we can boost the performance.

Accomplishments that we're proud of

Before this hackathon, I always worked with other people to come up with a website or projects but this is the first time that I did all the design and server so I am proud of myself. But the biggest accomplishment that I think I have done is that I developed something that I really have passion in which is gaming industry and especially League of Legends. And with this base, I think I can also expand this website into different league games and the feeling that I am helping other league players to boost their performance is what makes me feel good too.

What we learned

I learned that after finishing a project, there are always rooms for upgrading the project as there are always new technology coming up. I also learned that LLM can do so much things and can handle unstructured data better than human do so I also learned how to co-operate with these models and I think this can also help my performance in my career as a software engineer later too.

What's next for Rift-rewind

I think there are still so much to change. For example I think I can still optimize more for data fetching and LLM prompting, response speed because I am still not satisfied with it. I can also integrate more AWS tools like storing data in S3 buckets and using agent with knowledge base on these data. And instead of fetching data myself I can also use the lambda function to do this and store the data into S3 bucket. However I will need more time to play with AWS since this was my first time using AWS tools.

Share this project:

Updates