Difference between revisions of "Matchmaking rules"

From Gladiabots Wiki
Jump to: navigation, search
Line 8: Line 8:
  
 
# Determine the eligible map pool:
 
# Determine the eligible map pool:
#* Take the {{#tip-text: player's league | The different ranked leagues use their own maps pools.}} [[Maps|map pool]]
+
#* Take the {{Tooltip|player's league|The different ranked leagues use their own maps pools.}} [[Maps|map pool]]
#* Compute <code>X</code> as the {{#tip-text: half | rounded down to the nearest integer}} of the map pool size
+
#* Compute <code>X</code> as the {{Tooltip|half|rounded down to the nearest integer}} of the map pool size
 
#* Get the <code>X</code> last played maps
 
#* Get the <code>X</code> last played maps
 
#* Remove those maps from the map pool
 
#* Remove those maps from the map pool
# Get the 100 {{#tip-text: oldest | The first entries when ordered by ascending creation time}} {{#tip-text: available | Not already joined by 2 players}} ranked matches matching these conditions:
+
# Get the 100 {{Tooltip|oldest|The first entries when ordered by ascending creation time}} {{Tooltip|available|Not already joined by 2 players}} ranked matches matching these conditions:
 
#* Map is in the eligible map pool
 
#* Map is in the eligible map pool
#* {{#tip-text: league score delta | League score difference between the you and your opponent: <code>abs(your league score - opponents league score)</code>}} has to be equal or lower than 400 points
+
#* {{Tooltip|league score delta|League score difference between the you and your opponent: <code>abs(your league score - opponents league score)</code>}} has to be equal or lower than 400 points
 
# Remove matches matching these conditions:
 
# Remove matches matching these conditions:
 
#* Opponent has already been played in the last 5 minutes
 
#* Opponent has already been played in the last 5 minutes
Line 36: Line 36:
  
 
# Determine the eligible map pool:
 
# Determine the eligible map pool:
#* Take the {{#tip-text: unranked | Unranked uses its own map pool.}} [[Maps|map pool]]
+
#* Take the {{Tooltip|unranked|Unranked uses its own map pool.}} [[Maps|map pool]]
#* Compute <code>X</code> as the {{#tip-text: half | rounded down to the nearest integer}} of the map pool size
+
#* Compute <code>X</code> as the {{Tooltip|half|rounded down to the nearest integer}} of the map pool size
 
#* Get the <code>X</code> last played maps
 
#* Get the <code>X</code> last played maps
 
#* Remove those maps from the eligible map pool
 
#* Remove those maps from the eligible map pool
# Get the 100 {{#tip-text: oldest | The first entries when ordered by ascending creation time}} {{#tip-text: available | Not already joined by 2 players}} unranked matches matching these conditions:
+
# Get the 100 {{Tooltip|oldest|The first entries when ordered by ascending creation time}} {{Tooltip|available|Not already joined by 2 players}} unranked matches matching these conditions:
 
#* Map is in the eligible map pool
 
#* Map is in the eligible map pool
 
# Remove matches matching these conditions:
 
# Remove matches matching these conditions:

Revision as of 17:45, 17 October 2017

Matchmaking Basics

This page describes the process how opponents and maps are selected in ranked and unranked career matches. Maps are selected randomly but without repetition from a map pool. The different ranked leagues and unranked use their own map pools. For ranked matches players of similar strength are chosen. In unranked matches all kind of opponents can occur.

Ranked

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

  1. Determine the eligible map pool:
    • Take the player's league map pool
    • Compute X as the half of the map pool size
    • Get the X last played maps
    • Remove those maps from the map pool
  2. Get the 100 oldest available ranked matches matching these conditions:
    • Map is in the eligible map pool
    • league score delta has to be equal or lower than 400 points
  3. Remove matches matching these conditions:
    • Opponent has already been played in the last 5 minutes
  4. At this point, there are 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 eligible 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. Determine the eligible map pool:
    • Take the unranked map pool
    • Compute X as the half of the map pool size
    • Get the X last played maps
    • Remove those maps from the eligible map pool
  2. Get the 100 oldest available unranked matches matching these conditions:
    • Map is in the eligible map pool
  3. Remove matches matching these conditions:
    • Opponent has already been played in the last 60 seconds
  4. At this point, there are 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 eligible map pool
      2. Pick a random left/right side
      3. Create a new match using these parameters