What is exact implementation of group matchmaking?

Hi everyone

I’m implementing group matchmaking and it’s working. Text below, shows a part of a group matchmaking rule. Before I implemented a group matchmaking, “maxPlayers” for Human is 4. Now it’s 1 because a group has 4 members.

    "teams" :
[
{
"name" : "Human",
"maxPlayers" : 1, =====> This is actually 4 before a group is provided.
"minPlayers" : 1
},
{
"name" : "Alien",
"maxPlayers" : 1,
"minPlayers" : 1
}
]

However, I have an issue which FlexMatch gives only one PlayerSessionId for a group having four users to a dedicated server.

In addition, someone told me that I had to implement all party members in start_matchmaking(). But it didn’t work. So now I only put one person who requests a matchmaking in PlayerAttributes to call start_matchmaking() because it’s working well.

match_response = gl_client.start_matchmaking(ConfigurationName=[MATCHMAKING_CONFIGURATION_NAME],Players=[{"PlayerId": firstPlayerId,"PlayerAttributes": firstPlayerAttr }, {"PlayerId": secondPlayerId, "PlayerAttributes": secondPlayerAttr}, etc...],TicketId= ticketIdForParty )

So what is exact implementation of a group matchmaking? and is it possible to get all users information through FlexMatch in a dedicated server?

Any help is appreciated.

Players should be the number of players, not the number of groups, so I think that you still need maxPlayers 4 above. Anything could make up those 4 – 2 2-player parties, 1 4-player party, 4 1-player requests, etc.

The group matchmaking is working and all group members get their unique player session ids. Thank you very much.

I implemented start_matchmaking() function like an example below.

match_response = gl_client.start_matchmaking(ConfigurationName=[MATCHMAKING_CONFIGURATION_NAME],Players=[{"PlayerId": "AAAAAAAAAA","PlayerAttributes": firstPlayerAttr }, {"PlayerId": "BBBBBBBBBB", "PlayerAttributes": secondPlayerAttr}, {"PlayerId": "CCCCCCCCCC", "PlayerAttributes": thirdPlayerAttr}, {"PlayerId": "CCCCCCCCCC", "PlayerAttributes": thirdPlayerAttr} ], TicketId= ticketIdForParty )<br>

When 4 clients request their matchmakings through FlexMatch, the clients use the same TicketId because they are in the same party. So when describe_matchmaking() function is called with the same TicketId, each client receives a PlayerSessionId. But they receive not their own, but someone else’s. That’s why only one of members is accepted in FlexMatch (AcceptPlayerSession( [PlayerSessionId] ) of GameLiftServerSDK). Any hints as to how to figure out why this is happening?