Inspiration

The current websites for League of Legends focus on your statistics at a game by game level and not performance across games. We wanted to come with a project that would display your "tiltedness" by looking at your own in-game performances to prove that your level of skill is consistent regardless of losses. Now, you actually have proof that you are tiltproof! Plus, we give some health tips to get un-tilted or keep your winstreak going!

What it does

Using a machine learning model that takes in data on your past ranked games in the same day, we can see if you are likely to win your next game based on your past performance, or in other words how tilted you are, from a scale of 1(not tilted) to 5(mega tilted). We also display graphs of in-game stats across your last 5 ranked games & roles so you can see where you are trending in performance. Finally, we hand out some fun health & wellness tips to avoid the tilt and stay focused! Some examples:

  • Tilt Level 1: "People fear what they cannot understand. You AREN'T tilted? Stay that way by taking a few minutes between each game to mentally prepare!"
  • Tilt Level 2: "Master yourself, master the enemy. Seems like you've got that down! Look away from your screen to give your eyes a break, don't wanna become blind like Lee Sin!"
  • Tilt Level 3: "ok...like Rammus, you are just rolling along, with a few unsavory bumps. Drink tons of water and eat enough to keep you fueled for a win!"
  • Tilt Level 4: "Gems are truly, truly, truly outrageous. Especially tilted ones! Get your shine back by taking a shower to freshen up and wake up those muscles!"
  • Tilt Level 5: "Hmm, fortune doesn't favor fools (or the tilted). Today might not be your day, but you'll get 'em next time! Take the rest of the day off and come back to the rift tomorrow!"

Inputs to our model include:

  • Time-series features based on the user's past 5 games
  • KDA related features: KDA, largest killing spree, longest time alive
  • Opponent deltas: Gold Per Minute Diff, XP Per Minute Diff, CS Per Minute Diff
  • Match-related features: gold earned, largest killing spree, wards placed
  • Label: win/loss (binary classification)

Graphs show statistics and the trend lines for :

  • KDA
  • Total Damage Dealt to Champion Per Minute
  • Gold Earned Per Minute
  • Total Minions Killed Per Minute (CS Per Minute)

How We built it

  • We built a robust scraping data pipeline that was integrated with Riot API that will fetch a plethora of time-series signals from players' match history
  • Post processing the time-series data into a machine-readable format
  • We trained a Multi-layered Perceptron model to predict on the binary label of winning by looking at signals from the previous 5 games from the user
  • We built our frontend using React.js and hosted the site at: https://tiltproof-host.herokuapp.com/
  • Our backend was developed using Flask. Our endpoints are hosted at: https://tiltproof-backend.herokuapp.com/
  • We conducted data analysis to gain deep insights into the player's past performance and where they are trending using ggplot2

Challenges We ran into

  • We had to deal with Riot API keys. Riot auto generates encrypted summonerid and accountids. These values change over time. Thus, we constantly had to re-scrape out data during development Constantly refreshing the keys and dealing with error codes had us implement a way to cycle the keys to avoid the rate limit.
  • The graphs generated are a ggplot object we couldn't just pass directly to the frontend. We had to host these static files from our backend to be retrieved correctly from the frontend.
  • We had to solve memory issues in the backend when using Heroku.

Accomplishments that We're proud of

  • Making the product dynamic so that it will take in any NA summoner that has a ranked history for the day.

What We learned

  • Building robust data pipelines capable of crazy error-handling
  • Patience. Is. Virtue. Collecting data was a pain!
  • How to work with Riot API
  • How to connect a React.js frontend to a Flask backend
  • How to work as a team and be efficient with our time

What's next for TiltPROOF

  • Add additional graphs that break down performance by champion.
  • Add links to resources about health and wellness for gamers.
  • Expand to additional games like Valorant or Dota2.
  • Possible marketing strategy, ex: offering discounts/coupons to super tilted users to brighten their day
  • More robust error handling

Search these names to try it out!

You must input an NA summoner who has played ranked games today. Some summoners that have played ranked games today are:

  • SoloRenektonOnly
  • KEITH EXOTIC
  • EDM Phantom
  • Yushenggg

Feel to look for your friends who are grinding out the last day of the season today!

Also, our files are stored in 2 repos due to Heroku in order to create a backend server. https://github.com/angsabrina/LiquidHacks2020_Tiltproof https://github.com/angsabrina/Tiltproof_Backend

Press Search, please give it 30 seconds - 1 min to load!

Built With

Share this project:

Updates