Matchmaking rules

From Gladiabots Wiki
Revision as of 21:03, 16 September 2017 by GFX47 (Talk | contribs)

Jump to: navigation, search

Ranked

The matchmaking system for ranked games in career works like this:

  1. From Alpha 10 Determine the elligible map pool:
    1. Take the player's league map pool
    2. Compute X as the half of the map pool size (rounded down to the nearest integer)
    3. Get the X last played maps
    4. Remove those maps from the map pool
  2. Get the 100 oldest available ranked matches matching these conditions:
    • Opponent's league has to be between your league - 1 and your league + 1
    • If opponent's league is different than yours: league score delta has to be lower than 100 points
  3. Remove matches matching these conditions:
    • Opponent has already been played in the last 5 minutes
  4. At this point, there's 2 possible cases:
    • There are some matches remaining:
      • Sort the remaining matches using these comparison rules:
        1. Opponent with the closest league first
        2. In case of equality: opponent using a different IP first
        3. In case of equality: opponent never met or met the furthest in the past first (considered equal under a 10 minutes delta)
        4. In case of equality: opponent with the closest league score first (considered equal under a 10 points delta)
        5. In case of equality: oldest match first
      • Take the first match of the sorted list and join it
    • There's no match remaining:
      1. Pick a random map from the elligible map pool
      2. Pick a random left/right side
      3. Create a new match using these parameters

Unranked

The matchmaking system for unranked games in career works like this:

  1. From Alpha 10 Determine the elligible map pool:
    1. Take the unranked map pool
    2. Compute X as the half of the map pool size (rounded down to the nearest integer)
    3. Get the X last played maps
    4. Remove those maps from the elligible map pool
  2. Get the 100 oldest available unranked matches
  3. Remove matches matching these conditions:
    • Opponent has already been played in the last 60 seconds
  4. At this point, there's 2 possible cases:
    • There are some matches remaining:
      • Sort the remaining matches using these comparison rules:
        1. Opponent with the closest XP level first
        2. In case of equality: opponent using a different IP first
        3. In case of equality: opponent never met or met the furthest in the past first (considered equal under a 10 minutes delta)
        4. In case of equality: oldest match first
      • Take the first match of the sorted list and join it
    • There's no match remaining:
      1. Pick a random map from the elligible map pool
      2. Pick a random left/right side
      3. Create a new match using these parameters