How does an expansions in a matchmaking rule work?

Hello

I have a question about how “maxDistance” in expansions of a matchmaking rule works.
My matchmaking rule needs 5 players. The players have their ratings for a balanced matchmaking.
The maximum number of a rating is 200. In my matchmaking rule, if my rating is much higher than other people’s and I’m not matched by Matchmaker, after 60 seconds, I have to be matched due to expansions in the matchmaking rule.

This is the matchmaking rule.

{
    "ruleLanguageVersion" : "1.0",
    "playerAttributes" :
    [
        {
            "name": "GameMap",
            "type": "string",
            "default": ""
        },
        {
            "name" : "WantsToBe",
            "type" : "number",
            "default" : 0
        },
        {
            "name": "Rating",
            "type": "number",
            "default" : 50
        }
    ],
    "teams" :
    [
        {
            "name" : "Players",
            "maxPlayers" : 5,
            "minPlayers" : 5
        },
        {
            "name" : "Spectators",
            "maxPlayers" : 5,
            "minPlayers" : 0
        }
    ],
    "rules":
    [
        {
            "name": "SameGameMap",
            "description": "Only match players when they're in the same map",
            "type": "comparison",
            "operation": "=",
            "measurements": ["flatten(teams[*].players.attributes[GameMap])"]
        },
        {
            "name" : "PlayerSelection",
            "description" : "Only users that request playing as Player are assigned to the Player team",
            "type": "comparison",
            "measurements" : ["teams[Players].players.attributes[WantsToBe]"],
            "referenceValue" : 0,
            "operation" : "="
        },
        {
            "name" : "SpectatorSelection",
            "description" : "Only users that request playing as Spectator are assigned to the Spectator team",
            "type": "comparison",
            "measurements" : ["teams[Spectators].players.attributes[WantsToBe]"],
            "referenceValue" : 3,
            "operation" : "="
        },
        {
            "name": "TeamBalance",
            "description": "",
            "type": "distance",
            "measurements": [ "min(teams[Players].players.attributes[Rating])" ],
            "referenceValue": "max(teams[Players].players.attributes[Rating])",
            "maxDistance": 20
        },
        {
            "name": "SpectatorBalance",
            "description": "",
            "type": "distance",
            "measurements": [ "min(teams[Spectators].players.attributes[Rating])" ],
            "referenceValue": "max(teams[Spectators].players.attributes[Rating])",
            "maxDistance": 200
        }
    ],
    "expansions":
    [
        {
            "target": "rules[TeamBalance].maxDistance",
            "steps":
            [
                {
                    "waitTimeSeconds": 10,
                    "value": 20
                },
                {
                    "waitTimeSeconds": 20,
                    "value": 40
                },
                {
                    "waitTimeSeconds": 30,
                    "value": 60
                },
                {
                    "waitTimeSeconds": 40,
                    "value": 80
                },
                {
                    "waitTimeSeconds": 50,
                    "value": 100
                },
                {
                    "waitTimeSeconds": 60,
                    "value": 200
                }
            ]
        }
    ]
}

This is my issue. 6 players submitted their matchmakings. 5 players were matched by Matchmaker and they were in a lobby because the other person had a higher rating than the 5 players. After the game was done. The other person’s matchmaking ticket was still in a matchmaking queue but the same 5 players were matched by the Matchmaker again. I expected that the other person waited for a couple of minutes. It means that he was in the expansion rule. After 60 seconds, the range of his matchmaking rating would be 200 through the expansions. His ticket was not expired. So he should have been matched. That is what I expected. Now I’m confused by how the expansions in my matchmaking rule works.

In addition, the other person waited for a long time. no one requested a matchmaking. So I expected that his matchmaking ticket was priority. What is criteria of the matchmaking?

Any help is appreciated!!!

So as far as I understand after someone explained it to me, the expansions are based off the youngest matchmaking ticket currently in circulation. So although that one player with a very high rating was looking for a match for a very long time, once one of the players with a lower rating looks for another match again, the rule expansion is no longer applied, because now that lower rated player has the “youngest” matchmaking ticket in circulation. And once the other 4 players from the original match look for a match again, a potential match can be made right away with the original lower rated 5 players, so the higher rated player will be left alone once again.

As far as I know, for the higher rated player to get into a match using your specified rule expansions, there has to be enough matchmaking tickets in circulation for a specific amount of time with no new incoming matchmaking requests taking away those original requests for another match in order for that higher rated player to get into a match. In your case, with 5 lower rated players and 1 higher rated player only playing the game, that will be very difficult. Hope that made sense, and someone please correct me if I’m wrong.

Thank you very much!!

I understood the youngest matchmaking ticket but I still have a question.
When does the expansion rule work? A high ranked player’s ticket is in a matchmaking queue for a long time. I expected that the expansion rule started working for the high ranked player because the player waited for a long time to be matched by Matchmaker. I thought that the expansion rule is for oldest tickets.

Could you guys tell me when the expansion rule works?

Hey, so I believe Flexmatch works to favor newer matchmaking requests/tickets. The expansion rules can start when there’s a group of requests that have not been able to get into a match for a while but stop/reset when a new request comes. The reason is that once that the new matchmaking ticket arrives, Flexmatch prioritizes trying to make a potential match with the original rule set, before the expansions get applied, with the new “group” of matchmaking tickets. New, in this case, means with the addition of a young matchmaking ticket.

So for example, if you have a group of five matchmaking tickets who can’t get into a match after 20 seconds since the last ticket was made, the first expansion you had in your rule set gets applied. Let’s say, 10 seconds later after that expansion gets applied and during those 10 seconds, a match still couldn’t be made with those original five tickets, but a new matchmaking request is made. Now, with this group of six matchmaking tickets, the expansion rule is no longer applied, and a few things can happen at this point. Either a potential match can be made with five out of the six tickets in circulation, or the clients have to wait some time and after some expansions being applied only then can a potential match be made. Or worst case, even after all the expansions are applied, a match still can’t be made.

Hope that made sense, Chris.

Thank you very much. I got how the expansion rule worked.
I don’t know what to say to Chris.

Thanks Chris.

1 Like