How does Flexmatch Teams and Min/Max Players work?

I have a question about flexmatch team min/max players setting. I’m using a very simple rule set:

{
"name": "survivalmode", "ruleLanguageVersion": "1.0", "teams": [{
"name": "players", "maxPlayers": 25, "minPlayers": 6
}]
}

First question is we really dont want “teams” necessarily we just want between 6-25 people who match. I’m assuming the single team entry is correct? We don’t use the team data when transferring players to games…we just connect people based on this single team matchmaker config.

Second question is that it seems no matter how many people we have start matchmaking once the “minPlayers” count is met those people go directly into the queue. We haven’t been able to get it to match more than the min. Adjusting the min lets more people in. Are we doing something wrong here?

Last bonus question…Does Flexmatch Backfill only look for new players who are matchmaking? Does it borrow people that are already in a queue?

Hey @bananaface! Excited to see you trying out FlexMatch. Let’s see if we can help you out here.

  • Your use of teams is correct for trying to find a single group of players for a match.

  • Can you supply the name of your matchmaker, the name of your ruleset, and your region so that we can take a look at what’s going on behind the scenes?

  • At what rate (calls per second) are you attempting to fill the queue to StartMatchmaking?
    What you are experiencing would generally happen if you don’t have enough players to match, though it sounds like you are attempting to create a sufficiently large pool of players. FlexMatch will choose an anchor and then attempt to match that player against all other players in the queue until it reaches max at which time it will short circuit and return the match. It will only use min to start a match if it does a full pass and finds a match with at least that many players.

  • Backfill looks at the full pool of players when attempting to find a match.
    Once you get those answers our way, we can take a look at what is going on. Thanks!

Hey @bananaface!

Yes, your understanding is correct. Because you have no rules in your ruleset, within a few hundred milliseconds or so of the 6th person joining, the full evaluation of matches has been made, and a match is going to immediately start with 6 players.

Even with more complex rules, if the player data of most players that the rules evaluate against is sufficient to form a match, a match is likely to be formed with the min number of players pretty quickly.

The min players is there when you have a large variance in player data and more complex rules (evaluating latency, skill, etc.) to ensure that matches will still start relatively quickly if the game design allows for fewer players in a match.

In your current scenario, I would set min to whatever you want the match size to be.

Does that help?

Makes a lot more sense…thank you!

Thanks for getting back to me!

Our matchmaking configuration is called nmcmatchmakingwest2 with a ruleset of MatchMakingPlayers.

Right now players are just calling “StartMatchmaking” once and waiting until we get the COMPLETED status back from the call. We are polling every 15 seconds right now until we finishing getting the backend setup to use api/lambda/sns. We have small pool of testers say 8-10 people who all call StartMatchmaking withing 30-60 seconds of each other. If I’m reading what you’re saying if people haven’t called StartMatchmaking yet then they wouldn’t be in the pool of players currently being matched against that anchor player so it could complete a full pass before everyone has started matchmaking. So that would make sense that as soon as the min is hit its finishing the match.

So like Players 1-4 start matchmaking…a full pass happens pretty quickly. Then 5-10 start matchmaking but the matchmaker is only ready to hit the min since it didn’t find enough players before? Does that sound right? Trying to wrap my head around this.