This project simulates a competitive PvP matchmaking system that models and responds to Player Emotional Variables (PEVs) such as Satisfaction, Tilt, Burnout, and Churn Risk. Built with Python and Django, it tracks per-match, session-level, and all-time performance to evaluate how player psychology evolves over time.
The system uses synthetic player data, psychologically-informed metrics, and dynamic trait-based match simulations. Itโs designed to explore how emotionally-aware matchmaking can improve fairness, retention, and long-term engagement.
- ๐ฏ PEVs like Satisfaction, Tilt, Novelty Need, Percieved Fairness, Competence Satisfaction, Resilience, Burnout Risk, and Churn Risk
- ๐ฏ These PEVs are used to have a wholistic understanding of each player's mental state after every game and session
- ๐งช Match-level, session-level, and long-term stat tracking
- ๐๏ธ Modular PEV calculation engine (
pev.py) using synthetic data - ๐ง Trait-based player simulation (aggression, social play, preference matching)
- ๐ Match and Session simulations to influence PEVS
- ๐ Django models for full player-match-session architecture
Matchmaking systems typically optimize for Skill Based Matchmaking(SBMM) or Engagement Optimized Matchmaking(EOMM). SBMM allows for closer games and higher variability but can often lead to serious burnout. Players are forced to either perform their best or let their winrate suffer. EOMM on the other hand has one goal: to keep the player on the game for as long as possible. This system has been known to lose players' percieved fairness, since many matches have a clear expected winner and loser team.
This project goes further by simulating player emotions over time. It explores how psychological signals can help shape healthier, more engaging matchmaking logic. This is part of a larger effort to rethink how engagement, fairness, and retention are modeled in competitive multiplayer environments. I hope to create a system that prioritizes competence, satisfaction and retention: a system that benefits developers and gamers.
models.pyโ Player, Match, PlayerMatch, and Session structurepev.pyโ PEV formulas for each emotional variableutils.pyโ Synthetic data generation and helper logic
- Front-end dashboard for player/PEV insights
- Session archetypes (rage quitters, grinders, casuals)
- Deep dive into retention prediction using PEV trajectories
git clone https://github.com/Arjun123x/Matchmaking-Project.git
cd Matchmaking-Project
python3 -m venv env
source env/bin/activate
pip install -r requirements.txtCreate a .env file with:
OPENAI_API_KEY=sk-...your-key...
Then run:
python manage.py runserver