Difference between revisions of "Matchmaking rules"

From Gladiabots Wiki
Jump to: navigation, search
m
m
Line 12: Line 12:
 
<li> Opponents has already been played in the last 5 minutes</ul>
 
<li> Opponents has already been played in the last 5 minutes</ul>
  
[*] 2 possible cases:
+
<li> 2 possible cases:
[list]
+
<ul>
[*] If there's no match remaining:
+
<li> If there's no match remaining:
[list]
+
<ul>
[*] Pick a random map
+
<li> Pick a random map
[*] Pick a random left/right side
+
<li> Pick a random left/right side
[*] Create a new match using these parameters[/list]
+
<li> Create a new match using these parameters</ul>
  
[*] If there's some matches remaining:
+
<li> If there's some matches remaining:
[list]
+
<ul>
[*] Sort the remaining matches using these comparison rules:
+
<li> Sort the remaining matches using these comparison rules:
[list]
+
<ul>
[*] Opponent in the closest league first
+
<li> Opponent in the closest league first
[*] In case of equality: opponent using a different IP first
+
<li> In case of equality: opponent using a different IP first
[*] In case of equality: opponent never met or met the furthest in the past first
+
<li> In case of equality: opponent never met or met the furthest in the past first
 
(considered equal under a 10 minutes delta)
 
(considered equal under a 10 minutes delta)
[*] In case of equality: opponent with the lowest league score delta (compared to yours) first
+
<li> In case of equality: opponent with the lowest league score delta (compared to yours) first
 
(considered equal under a 10 points delta)
 
(considered equal under a 10 points delta)
[*] In case of equality: oldest match (creation time) first[/list]
+
<li> In case of equality: oldest match (creation time) first</ul>
[*] Take the first match of the list and join it[/list][/list][/list]
+
<li> Take the first match of the list and join it</ul></ul></ul>

Revision as of 18:25, 5 September 2017

Here's how the matchmaking works:

  • Get the 100 "oldest" (creation time) available 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 200 points
  • Filter out (remove) matches matching these conditions:
    • Opponents has already been played in the last 5 minutes
  • 2 possible cases:
    • If there's no match remaining:
      • Pick a random map
      • Pick a random left/right side
      • Create a new match using these parameters
    • If there's some matches remaining:
      • Sort the remaining matches using these comparison rules:
        • Opponent in the closest league first
        • In case of equality: opponent using a different IP first
        • In case of equality: opponent never met or met the furthest in the past first (considered equal under a 10 minutes delta)
        • In case of equality: opponent with the lowest league score delta (compared to yours) first (considered equal under a 10 points delta)
        • In case of equality: oldest match (creation time) first
      • Take the first match of the list and join it