question

Stephane Imbert avatar image
Stephane Imbert asked

Restrict matchmaking to a specific stat

Hi, we would like to restrict matchmaking to players that match a specific criteria. We don't want just "player A's and player B's stat match", we want to be able to say "both player A and player B have the stat set to X".

This would be used to implement exclusive leagues where a specific player must belong to the league to be allowed into the restricted matchmaking queue.

An alternative would be restricting matchmaking by PlayFab group, so we would only allow players who belong to a specific group to access the restricted matchmaking queue.

Basically, any way we can have a restricted matchmaking queue that only allows players that we somehow tag as being able to access the restricted queue?

Thanks.

Matchmaking
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.

Seth Du avatar image Seth Du ♦ commented ·

I will have a discussion with the team about your requirement later. Your patience is apprecaited.

0 Likes 0 ·

1 Answer

·
Seth Du avatar image
Seth Du answered

As PlayFab doesn’t provide a native feature that can restrict the API usage for a single player, you will need a workaround solution. Based on your description in the question, I believe it is feasible to add tags (KVP in Player Entity) for players and add a “String Equality Rule” in the queue, which won’t match any players without that tag. You are able to deny player’s permission to edit the entity object via entity policy.

Otherwise, I suggest implementing the Matchmaking related API in Cloud Script/Azure Function(CSAF) may work because it is safer to hide the matchmaking queue name so that malicious players won’t be able to directly call API for matchmaking. It also means other APIs like GetMatch should be implemented in CSAF in case exposing queue name. However, APIs like GetMatchmakingTicket, which is called frequently shouldn’t be handled in CSAF, it will require you to implement a messaging system for both sides, please refer to -- PlayFab-Samples/Samples/CSharp/MessagingClient at master PlayFab/PlayFab-Samples (github.com)

2 comments
10 |1200

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

Stephane Imbert avatar image Stephane Imbert commented ·

Could you clarify what you mean by "tags (KVP in Player Entity) for players and add a “String Equality Rule” in the queue, which won’t match any players without that tag". As far as I can tell from the web interface the only behavior if the tag is missing is to "match any value" or "use default value", neither of which will have the intended behavior.

* Match any will match players regardless of the tag.

* Use default will match tagged players together and untagged players together but still won't prevent untagged players from matchmaking.

Unless I am misunderstanding the web interface?

0 Likes 0 ·
Seth Du avatar image Seth Du ♦ Stephane Imbert commented ·

Your understanding is correct. This method only let restricted players to match with restricted players, like a lower priority queue.

If you don't want restricted players to match with any other players, Match total rule and Set Intersection Rule may work. Take match total rules as an example, you will set an KVP {"NotRestricted": 1} for normal players, while 0 for restricted players. Configure Match total rule in the queue and let both Min and Max equal to 10, while also setting Match Size's Min and Max as 10. This queue will only match 10 not-restricted players. However, the limit of this method is that it only matches exact 10 players, or any number you have defined (Moba is fine, but Games like PUBG won't be a good idea).

0 Likes 0 ·

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.