FlexMatch large algorithm question

I was read the document :DeveloperGuide and know that the large match algorithm batchingPreference have two options as document said:

Largest population (default)

With this strategy, FlexMatch maintains the largest possible player pool by including all players who have acceptable latency values in at least one region. With a large player pool, matches tend to fill more quickly, and matched players are more similar with regard to the balancing attribute. Players may be placed in games where their latency is less than ideal, although still within acceptable limits.

Fastest region

This strategy places a priority on getting players into matches that deliver the best possible latency for them. FlexMatch groups available players based on the regions where they report lowest latency values, and then tries to fill matches from these groups. FlexMatch favors placing players in the fastest possible regions for them. However, it may group players based on their second- or third-fastest regions (or slower) in order to create groups large enough to fill a match. As a result, matches may take longer to fill. In addition, players in a match that is created with this strategy may vary more widely with regard to the balancing attribute.

but when I was start a match with rules :
{
“name”: “large-region”,
“ruleLanguageVersion”: “1.0”,
“playerAttributes”:[{
“name”: “skill”,
“type”: “number”
}],
“teams”: [{
“name”: “team-test”,
“maxPlayers”: 45,
“minPlayers”: 5,
“quantity”: 2
}],
“algorithm”: {
“balancedAttribute”: “skill”,
“strategy”: “balanced”,
“batchingPreference”: “fastestRegion”
},
“rules”: [{
“name”: “test-rules”,
“description”: “lantency”,
“type”: “latency”,
“maxLatency”:200
}],
“expansions”: [{
“target”: “rules[test-rules].maxLatency”,
“steps”: [{
“waitTimeSeconds”: 10,
“value”: 300
}]
}]
}

players: [
{
“PlayerAttributes”: {“skill”: {“N”: skill}, },
“PlayerId”: playerId,
“LatencyInMs”: {“ap-southeast-1”: latency1, “us-west-1”: latency2, “us-west-2”: latency3},
“Team”: team
},
]
I start ten players and set the different skill and latency1、2、3, but the result is if only two players have one same region latency satisfied the maxLatency of the rules, they will be matched by the sequence of they start match, I tried skill 1, 100, 1000, they always matched no matter the skill was

And when I replace the batchingPreference to Fastest region, as the document said: FlexMatch maintains the largest possible player pool by including all players who have acceptable latency values in at least one region. But I tried two players A statisfied the region1 latency, B statisfied the region2 latency, both the skill is 1, but they will not be matched, I can’t stand why?

So any one can tell me what’s the different of Fastest region and largestPopulation, which one should I select, I can’t find more detail document

It would be much appreciated if any guidance is given

Firstly remember that FlexMatch and esp large match making is optimized for volume. If you aren’t sending enough players you will not see any balancing on skill

https://docs.aws.amazon.com/gamelift/latest/developerguide/match-examples.html#match-examples-7

I believe your 10 players arrive, they will be sorted by skill attribute and then FlexMatch will look at the latency requirements. In your case case skill will be mostly irrelevant with just 10 players as they are all candidates for the same match, as there are no other players at this time (as your rules allow for up to 45 players per match)

Then your latency rules are really the only ones in play.

See notes on:
https://docs.aws.amazon.com/gamelift/latest/developerguide/match-examples.html#match-examples-7

As you called out…
... "fastest region" batching preference, players tend to be placed in regions where they report faster latency and not in regions where they report high (but acceptable) latency. At the same time, matches are likely to have fewer players, and the balancing criteria (number of monster skills) may vary more widely.

Its really just a way of segmenting the pool of candidate players quickly for large matches where you prefer to ensure latency over everything else without having to write explicit latency rules for all regions.

If you are still having problems, if you could provide:

  • matchmaking config ids
  • ticket ids
    etc.

I can ask someone from the GameLift service side to take a look.

Hope that was helpful.