Question of group matchmaking in an example of "players vs monster" again

HI everyone

(I posted this question a couple of days ago but the post had incorrect text and I couldn’t fix it.)

I’m currently testing group matchmaking in the example of “players vs monster” below.
Actually the example, “players vs monster”, has 5 players and 1 monster but I changed the number of players into 4.

5 users in a group, where one of the users is a “monster”, which causes group-matchmaking to fail.

The matchmaking rule set below, is shown.

Code below, is in Lambda to request matchmaking. “Eedro” is monster and the rest of users are players. (I put users’ names in this Lambda code for an example)
Group member are using the same matchmaking ticket id.

playerAttr = { “WantsToBeMonster” : { “N” : int( 1 ) } }
playerAttrEedro = { “WantsToBeMonster” : { “N” : int( 2 ) } } =====> Eedro is “monster”

playersInformation = [
{ “PlayerId” : “Aedro”, “PlayerAttributes” : playerAttr },
{ “PlayerId” : “Bedro”, “PlayerAttributes” : playerAttr },
{ “PlayerId” : “Cedro”, “PlayerAttributes” : playerAttr },
{ “PlayerId” : “Dedro”, “PlayerAttributes” : playerAttr },
{ “PlayerId” : “Eedro”, “PlayerAttributes” : playerAttrEedro } ] =====> Eedro is “monster”

match_response = gl_client.start_matchmaking(
ConfigurationName = globalConstants.GetConfigurationName(),
Players = playersInformation,
TicketId = matchmakingTicketId )

The code is called 5 times with the same matchmaking ticket id because the group has 5 members.

Besides, I removed monster team in the matchmaking rule set like another rule below and changed the number of “maxPlayers” and “minPlayers” to 5

image

In this rule set, group matchmaking works.

So what is a problem with the group-matchmaking including monster?

Any help is appreciated.
Thanks

  1. Not that it should impact your example, but if you are using 1=not monster 2=monster, then the default attribute value for wantsToBeMonster should be 1

  2. Your player attribute is wantsToBeMonster, but you are sending WantsToBeMonster. I would assume FlexMatch is case sensitive and needs them to match exactly.

  3. Unfortunately, I don’t have any FlexMatch examples to hand, and it looks like you’re using the boto3 client. Its documentation shows numbers being passed as quoted strings ie “wantsToBeMonster”: {“N”: “2”}. Not sure it should make any difference but it may be worth eliminating as a reason (I would assume that FlexMatch should handle ints and strings representing ints identically)
    https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/gamelift.html#GameLift.Client.start_matchmaking

Thank you very much.

I fixed everything that you mentioned but in terms of “wantsToBeMonster”: {“N”: “2”}, CloudWatch reported “<class ‘botocore.exceptions.ParamValidationError’>”. So I used integer. Unfortunately, the matchmaking didn’t work. I’m using “import boto3” in Lambda function.

Could you investigate what was wrong with the matchmaking? After the matchmaking didn’t work, I have not touched anything in the fleet.

FleetId: fleet-225aebc0-bd5a-45ff-a1dc-fe2f2c60f647
Matchmaking Queue ARN : arn:aws:gamelift:us-west-2:349311851841:gamesessionqueue/THEEND-Guaranteed-mskiller-Dev-TEST

In addition, a matchmaking rule that I mentioned in this post is a little bit different than an actual matchmaking rule in Matchmaking Rule Set.

I appreciate your help.