Browse/Progression & Growth/Skill Rating (MMR/ELO)
Progression & Growth

Skill Rating (MMR/ELO)

Design pattern addressing skill rating (mmr/elo), defining how this system creates engagement and supports the overall game experience.

Low complexity
4 examples
3 patterns

Overview

Skill Rating (MMR/ELO) is a fundamental game mechanic that balances complexity with accessibility to engage diverse audiences. Designers must carefully balance the system's depth against its learning curve, ensuring that new players can engage while experienced players find room for mastery. The key to successful implementation lies in clear communication of rules, fair outcomes, and satisfying feedback for player actions.

Game Examples

First-Person Shooters

First-Person Shooters use this mechanic where players optimize their build to overcome specific obstacles. The mechanic creates natural tension and release cycles, resulting in cooperative synergy.

Turn-Based RPGs

Turn-Based RPGs use this mechanic where players decode hidden patterns to achieve mastery over the system. The system rewards both skill and knowledge, resulting in personal achievement.

Social Deduction Games

Social Deduction Games use this mechanic where players balance risk and reward to build a competitive advantage. Multiple valid strategies exist for different playstyles, resulting in competitive depth.

Rhythm Games

Rhythm Games use this mechanic where players interact with NPCs to optimize their strategy. Multiple valid strategies exist for different playstyles, resulting in skill differentiation.

Pros & Cons

Advantages

  • Scales well from beginner to advanced play
  • Creates meaningful economic decisions for players
  • Easy to understand but difficult to master

Disadvantages

  • May reduce pacing if implemented poorly
  • Can feel punishing if progression is too slow
  • Risk of feature bloat in competitive environments
  • Increases network requirements significantly

Implementation Patterns

Level-Up Handler

Optimized pattern for skill rating (mmr/elo) that minimizes per-frame computation cost.

const skillTree = {
  nodes: [
    { id: "initiate", cost: 2, requires: [], effect: "+10% damage" },
    { id: "journeyman", cost: 2, requires: ["initiate"], effect: "+25% damage, unlock combo" },
    { id: "master_skill", cost: 5, requires: ["journeyman"], effect: "+50% damage, unlock ultimate" },
  ],

  canUnlock(nodeId: string, points: number, unlocked: Set<string>) {
    const node = this.nodes.find(n => n.id === nodeId);
    if (!node || unlocked.has(nodeId)) return false;
    return points >= node.cost
      && node.requires.every(r => unlocked.has(r));
  }
};

Milestone Tracker

Data-driven implementation that loads skill rating (mmr/elo) configuration from external definitions.

class SkillRatingMmreloProcessor {
  rank = 1;
  xp = 0;

  addXP(amount: number) {
    this.xp += amount;
    while (this.xp >= this.xpToNext()) {
      this.xp -= this.xpToNext();
      this.rank++;
      this.onLevelUp();
    }
  }

  xpToNext() {
    return Math.floor(50 * Math.pow(1.15, this.rank - 1));
  }

  onLevelUp() {
    // Grant rewards for level rank
    this.power += 3;
  }
}

Unlock Validator

A modular approach to skill rating (mmr/elo) that separates concerns and enables easy testing.

const skillTree = {
  nodes: [
    { id: "initiate", cost: 1, requires: [], effect: "+10% damage" },
    { id: "power_strike", cost: 3, requires: ["initiate"], effect: "+25% damage, unlock combo" },
    { id: "master_strike", cost: 3, requires: ["power_strike"], effect: "+50% damage, unlock ultimate" },
  ],

  canUnlock(nodeId: string, points: number, unlocked: Set<string>) {
    const node = this.nodes.find(n => n.id === nodeId);
    if (!node || unlocked.has(nodeId)) return false;
    return points >= node.cost
      && node.requires.every(r => unlocked.has(r));
  }
};