question

Canberk Soner avatar image
Canberk Soner asked

About queue size on matchmaking

Hello, we're currently working on implementing PlayFab Matchmaking for our game. We need to match players according to game modes and maps, but there are some complications and I can't figure out how to implement these rules. I'll give some context.

Game Mode: Let's say we have FFA (free for all, no teams) and TDM (team deathmatch, 2 teams).

Map: Let's say we have 3 maps, MapA, MapB, MapC.

Players pick game mode and one map they want, then they enter the queue. We currently have one queue for each game mode, and use set intersection rule to pick the map.

The problem is that we require some maps to have different player limits. So let's say MapA and MapB has maximum 10 players, but MapC is smaller so it has a maximum player count of 6 instead.

The complication is, we also support "Random map" so a player can select random instead of specifying the map.

Since queue sizes are not dynamic, how do we set this up? We don't want the matchmaker to create one 10 player match for MapC in the example. From what I saw in docs so far this seems impossible but it is also a bit weird because I honestly don't think this is such an uncommon design.

Matchmaking
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Made Wang avatar image
Made Wang answered

It needs to be clarified that the matchmaking is based on the number of people who meet the conditions to determine whether the matchmaking is completed. If the map is random and there are no other conditions that can distinguish 6 people or 10 people, then when 10 people are matched, 6 people must be matched. Therefore, when you have maps with different numbers of people, you should create different matchmaking queues.

You can create a matchmaking queue of 6 people and a matchmaking queue of 10 people for FFA and TDM respectively. When the player chooses a random map, the computer can select one of them and start the corresponding match.

1 comment
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Canberk Soner avatar image Canberk Soner commented ·

Hello, the problem isn't about 6 people for FFA and 10 for TDM. The problem is that we have distinctions of max player count depending on the map parameter.

I thought of using separate queues for "random map" selection, but then someone queueing as random will not match with someone queueing MapA even if the random selected map turns out as MapA.

0 Likes 0 ·
Admin EmpireGames avatar image
Admin EmpireGames answered

https://docs.microsoft.com/en-us/gaming/playfab/features/multiplayer/matchmaking/config-queues

,

Hi @Canberk,

i think you might be able to sort the issue with the Random map by using the following info in this Configuring matchmaking queues article

  • Behavior when attribute is not specified - If a rule requires an attribute, but none is specified, the rule may be configured with one of two behaviors:
    1. .......
    2. It may use this as a signal to indicate the ticket meets any restriction supplied by the rule. This may be useful if for instance, some players express a preference, and another player is willing to match anyone. The player with no preference can neglect to supply an attribute, and match with any other players.

For players that accept Random - you can set the Map property to empty and use that as described in point 2 - as the default to "match anyone"

10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Made Wang avatar image
Made Wang answered

After our discussion, provide a method for your reference:

Set your queue to 6-10 and add the rules in the image below. You can refer to Matchmaking scenario and configuration examples - PlayFab | Microsoft Docs to understand this rule, set Secondsbetweenexpansions to a value greater than GiveUpAfterSeconds, when the number of people in the queue is greater than 6, the match will wait until the timeout and be cancelled. The purpose of this rule is to ensure that when the match is successful, there are only 6 people in the queue, and then check the map type in the player's attributes.

If it is MapC, start the game. If it is MapA or MapB, the server needs to repeatedly create a server backfill ticket to add players who meet the conditions until the number of players meets the map requirements before starting the game. You can refer to Using server backfill tickets - PlayFab | Microsoft Docs and Server Backfill - How it works? How to get Player Entities for Members? - Playfab Community to learn more.


rule.png (43.6 KiB)
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.