Difference between revisions of "Matchmaking rules"
From Gladiabots Wiki
Kanishka RN3 (Talk | contribs) m |
(→Ghosts) |
||
(49 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | + | == Ghosts == | |
− | + | Every time you play a multiplayer match, the team you deployed becomes a "ghost" that will be used by the matchmaking system. | |
+ | When a match result is known, the league score delta is applied to both the participating ghosts and the player(s) that manually created/joined the match. | ||
+ | This way, ghosts score evolves depending on the opponents they meet. | ||
+ | The more a ghost "plays", the more accurate its score is. | ||
− | + | == Matchmaking == | |
− | + | ||
− | + | ||
− | + | ||
− | + | Here's what happens when you start a new game: | |
− | + | ||
− | + | ||
− | + | <span style="color: red">Rules in red only apply to ranked matches</span> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | <span style="color: blue">Rules in blue only apply to unranked matches</span> | |
− | + | ||
− | + | # A new ghost is created with your ghost composition and AIs, your current league score (elo) and your XP level | |
− | + | # The system lists the 200 most recent ghosts (only keeping the most recent ghost for each player) matching those conditions: | |
− | + | #* <span style="color: red">League score between <your score -100> and <your score +100></span> | |
− | + | #* <span style="color: red">The score of the ghost is not lower than his original score minus 50 points</span>. Say a ghost was deployed at 1800. If the ghost goes down to under 1750 it gets disabled. | |
− | + | # Then it removes from this list the ghosts of players you already met during the last 30 minutes | |
− | ( | + | # At this point, there are 2 possible cases: |
− | + | #* Case 1 = the ghost list is empty: | |
− | + | #*# <span style="color: red">Retry with -200/+200, -300/+300 and -400/+400 score ranges until it finds at least one valid ghost, else match is pending until someone else joins it</span> | |
− | + | #*# <span style="color: blue">Your match is pending until someone else joins it</span> | |
− | + | #* Case 2 = there are some ghosts remaining: | |
+ | #** Sort the list using these rules (ordered by priority): | ||
+ | #**# Ghosts from pending matches first | ||
+ | #**# <span style="color: red">Ghosts from the closest league first</span> | ||
+ | #**# <span style="color: blue">Ghosts with closest score first</span> | ||
+ | #**# Ghosts of players using a different IP first (anti-cheat measure) | ||
+ | #**# Ghosts of players met the furthest in the past first (never met = the furthest possible) | ||
+ | #**# <span style="color: red">Ghosts with the closest league score first</span>. <br />This list has 50% chances to keep "closest scores that are lower than the deploying player first", say the deploying player has a score of 1500, then only ghosts equal or under 1500 are picked, this even if a opponent has better ghosts in range. The remaining 50% chances are used to keep "closest scores that are higher than the deploying player first". | ||
+ | #**# Most recent ghosts first | ||
+ | #** Keep the 10 first of the sorted list (10 "best" ghosts) | ||
+ | #** Then pick one of them randomly and join it | ||
+ | |||
+ | == Example == | ||
+ | |||
+ | Here's an example of the ghost system in action: | ||
+ | (asuming the ghost list is initialy empty, all players are in the same league with a similar league score and a different IPs) | ||
+ | |||
+ | ; T = 0h00mn > P1 deploys G1: | ||
+ | : no ghost available, match is pending | ||
+ | : ghost list: G1 | ||
+ | ; T = 0h01mn > P2 deploys G2: | ||
+ | : matched against G1 (P1 will see the "new" flag on the match) | ||
+ | : ghost list: G1, G2 | ||
+ | ; T = 0h02mn > P3 deploys G3: | ||
+ | : matched against G2 (most recent ghost) | ||
+ | : ghost list: G1, G2, G3 | ||
+ | ; T = 0h03mn > P3 deploys G3b: | ||
+ | : matched against G1 (most recent ghost not already met in the last 30mn) | ||
+ | : ghost list: G1, G2, G3, G3b | ||
+ | ; T = 0h04mn > P3 deploys G3c: | ||
+ | : no ghost available (fought all the available ghosts in the last 30mn), match pending | ||
+ | : ghost list: G1, G2, G3, G3b, G3c | ||
+ | ; T = 0h05mn > P1 deploys G1b: | ||
+ | : matched against G3c (most recent ghost) | ||
+ | : ghost list: G1, G2, G3, G3b, G3c, G1b | ||
+ | ; T = 0h06mn > P1 deploys G1c: | ||
+ | : matched against G2 (most recent ghost not already met in the last 30mn) | ||
+ | : ghost list: G1, G2, G3, G3b, G3c, G1b, G1c | ||
+ | ... | ||
+ | ; T = 0h40mn > P1 deploys G1d: | ||
+ | : matched against G3c (most recent ghost, met more than 30mn ago) | ||
+ | : ghost list: G1, G2, G3, G3b, G3c, G1b, G1c, G1d |
Latest revision as of 11:19, 16 November 2019
Ghosts
Every time you play a multiplayer match, the team you deployed becomes a "ghost" that will be used by the matchmaking system. When a match result is known, the league score delta is applied to both the participating ghosts and the player(s) that manually created/joined the match. This way, ghosts score evolves depending on the opponents they meet. The more a ghost "plays", the more accurate its score is.
Matchmaking
Here's what happens when you start a new game:
Rules in red only apply to ranked matches
Rules in blue only apply to unranked matches
- A new ghost is created with your ghost composition and AIs, your current league score (elo) and your XP level
- The system lists the 200 most recent ghosts (only keeping the most recent ghost for each player) matching those conditions:
- League score between <your score -100> and <your score +100>
- The score of the ghost is not lower than his original score minus 50 points. Say a ghost was deployed at 1800. If the ghost goes down to under 1750 it gets disabled.
- Then it removes from this list the ghosts of players you already met during the last 30 minutes
- At this point, there are 2 possible cases:
- Case 1 = the ghost list is empty:
- Retry with -200/+200, -300/+300 and -400/+400 score ranges until it finds at least one valid ghost, else match is pending until someone else joins it
- Your match is pending until someone else joins it
- Case 2 = there are some ghosts remaining:
- Sort the list using these rules (ordered by priority):
- Ghosts from pending matches first
- Ghosts from the closest league first
- Ghosts with closest score first
- Ghosts of players using a different IP first (anti-cheat measure)
- Ghosts of players met the furthest in the past first (never met = the furthest possible)
- Ghosts with the closest league score first.
This list has 50% chances to keep "closest scores that are lower than the deploying player first", say the deploying player has a score of 1500, then only ghosts equal or under 1500 are picked, this even if a opponent has better ghosts in range. The remaining 50% chances are used to keep "closest scores that are higher than the deploying player first". - Most recent ghosts first
- Keep the 10 first of the sorted list (10 "best" ghosts)
- Then pick one of them randomly and join it
- Sort the list using these rules (ordered by priority):
- Case 1 = the ghost list is empty:
Example
Here's an example of the ghost system in action: (asuming the ghost list is initialy empty, all players are in the same league with a similar league score and a different IPs)
- T = 0h00mn > P1 deploys G1
- no ghost available, match is pending
- ghost list: G1
- T = 0h01mn > P2 deploys G2
- matched against G1 (P1 will see the "new" flag on the match)
- ghost list: G1, G2
- T = 0h02mn > P3 deploys G3
- matched against G2 (most recent ghost)
- ghost list: G1, G2, G3
- T = 0h03mn > P3 deploys G3b
- matched against G1 (most recent ghost not already met in the last 30mn)
- ghost list: G1, G2, G3, G3b
- T = 0h04mn > P3 deploys G3c
- no ghost available (fought all the available ghosts in the last 30mn), match pending
- ghost list: G1, G2, G3, G3b, G3c
- T = 0h05mn > P1 deploys G1b
- matched against G3c (most recent ghost)
- ghost list: G1, G2, G3, G3b, G3c, G1b
- T = 0h06mn > P1 deploys G1c
- matched against G2 (most recent ghost not already met in the last 30mn)
- ghost list: G1, G2, G3, G3b, G3c, G1b, G1c
...
- T = 0h40mn > P1 deploys G1d
- matched against G3c (most recent ghost, met more than 30mn ago)
- ghost list: G1, G2, G3, G3b, G3c, G1b, G1c, G1d