Rift Rewind: AI-Powered League of Legends Year-in-Review

Inspiration

Every year, millions of users eagerly await Spotify Wrapped to see their personalized listening statistics. I wanted to bring that same excitement and sense of accomplishment to the League of Legends community. Players invest hundreds of hours into improving their skills, but they rarely get a chance to step back and see the full picture of their growth, habits, and achievements throughout the year.

What it does

Rift Rewind is a Discord bot that generates personalized year-end recaps for League of Legends players. Simply type !wrapped [username]#[tag] and the bot:

  • Fetches all 2025 matches from Riot's API
  • Analyzes win rates, top champions, main roles, and KDA statistics
  • Uses AWS Bedrock AI (Claude 3 Haiku) to generate personalized coaching insights
  • Delivers encouraging feedback on playstyle strengths and specific improvement areas
  • Caches data in DynamoDB for instant repeat lookups

How I built it

Technical Architecture:

  • Frontend: Discord.py bot framework for seamless user interaction
  • Data Layer: Riot Games API for match history and detailed game statistics
  • Caching: AWS DynamoDB stores processed match data, reducing API calls by 100% on repeat queries
  • AI Engine: AWS Bedrock (Claude 3 Haiku) analyzes aggregated statistics and generates personalized coaching narratives
  • Infrastructure: Python 3.11 with async processing for handling concurrent requests

Data Pipeline:

  1. User submits Discord command
  2. Bot fetches match IDs from Riot API (with 2025 timestamp filtering)
  3. Match details are retrieved and cached in DynamoDB
  4. Statistics are aggregated (champions, roles, KDA, win rates)
  5. Data is sent to AWS Bedrock with carefully crafted prompts
  6. AI generates personalized insights focusing on strengths and growth areas
  7. Results are formatted into Discord embeds and delivered to the user

Challenges I ran into

Rate Limiting: Riot's API restricts requests to 100 per 2 minutes. For players with 500+ matches, this could mean 10+ minute wait times. I implemented intelligent caching with DynamoDB, reducing subsequent lookups to milliseconds and minimizing API calls.

Prompt Engineering: Getting AI to generate genuinely helpful coaching advice (rather than generic feedback) required extensive iteration. I structured prompts to include specific statistics and request actionable recommendations, resulting in personalized insights that players actually find valuable.

Data Processing at Scale: Extracting meaningful patterns from raw match data required careful aggregation across multiple dimensions (champions, roles, time periods) while maintaining performance.

Async Architecture: Managing concurrent API calls, database operations, and Discord interactions required proper async/await patterns to prevent blocking and ensure responsive user experience.

Accomplishments that I'm proud of

  • Built a fully functional AI-powered application in under 2 weeks
  • Successfully integrated 3 AWS services (Bedrock, DynamoDB, CloudWatch) with external APIs
  • Achieved 100% cache hit rate on repeat queries, making the bot lightning-fast for returning users
  • Created AI prompts that generate genuinely encouraging and actionable coaching insights
  • Designed a clean, intuitive Discord interface that makes complex data accessible

What I learned

  • AWS Bedrock Integration: How to structure prompts for optimal AI responses and manage inference costs
  • DynamoDB Best Practices: Effective key design for caching strategies and fast lookups
  • API Rate Limiting: Strategies for handling external API constraints with pagination and intelligent caching
  • Async Python: Proper patterns for concurrent operations in bot frameworks
  • User Experience Design: How to present complex statistics in digestible, meaningful ways

What's next for Rift Rewind

  • Monthly Breakdowns: Show progression trends across the year
  • Champion-Specific Tips: Deeper AI analysis for each champion played
  • Comparative Analytics: Compare performance to rank averages
  • Team Analysis: Generate insights for premade groups
  • Multi-Game Support: Expand to TFT and Valorant
  • Web Dashboard: Shareable wrapped summaries with visualizations

Built With

Share this project:

Updates