Player-Skill-Rating-and-ELO-System#175
Merged
Mkalbani merged 2 commits intoMindFlowInteractive:mainfrom Feb 22, 2026
Merged
Conversation
Player-Skill-Rating-and-ELO-System
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Player Skill Rating & ELO System
📌 Overview
This PR introduces a comprehensive ELO-based skill rating system for the MindFlowInteractive quest-service backend.
The feature enables dynamic player ranking based on puzzle difficulty, performance, and activity level, while supporting matchmaking and long-term progression tracking.
The implementation lays the foundation for competitive gameplay, fair matchmaking, and seasonal progression.
✨ Key Features Implemented
✅ ELO Rating Algorithm
Standard ELO calculation adapted for puzzle completion outcomes
Difficulty-weighted rating adjustments for fair progression
Performance-based modifiers (speed, accuracy, retries)
✅ Skill Rating Schema
Player rating storage with metadata (tier, division, last activity)
Rating history tracking for analytics and audits
✅ Dynamic Rating Adjustments
Automatic rating updates on puzzle completion
Difficulty scaling for easy → expert puzzle levels
✅ Rating Decay System
Gradual rating reduction for inactive players
Configurable decay thresholds and intervals
✅ Tier & Division System
Tier segmentation (e.g., Bronze → Challenger)
Division placement within tiers for granular ranking
✅ Seasonal Reset Logic
Soft resets preserving progression while refreshing competition
Historical season tracking for player achievements
✅ Matchmaking Support
Skill-based matchmaking hooks for fair player pairing
Rating range tolerance configuration
✅ Testing Coverage
Unit tests validating ELO calculations
Edge case handling (new players, extreme rating gaps, inactivity)
🧱 Technical Changes
Backend
Designed rating schema and persistence layer
Implemented ELO calculation utilities and rating service
Added rating decay scheduler / cron logic
Integrated rating updates into puzzle completion workflow
Introduced rating history tracking model
Testing
Unit tests for:
ELO formula accuracy
Difficulty weighting
Decay application
Seasonal reset behavior
Closes #155