question

cooltom2013 avatar image
cooltom2013 asked

Matching with other players,

Hello I am developing a multiplayer title with UE4 and playfab for the matchmaking,

When it comes to joining the matchmaking as a group,

To start a queue with other players you first need to have everyone send their entity keys to the host who creates a ticket, then the host gives the ticket ID for the others to join, does this not have an inherient problem of having to share your entity key with the host? What if your in a position where you don't have full trust in the host your just playing a match with them perhaps they are a stranger, are they not able to abuse the fact they have your entity key now?

Given that I am creating a PC title with UE4, do you have any suggestions on what would be the best medium to share the entity and the ticket ID between the players before connecting currently I am considering connecting P2P with steam or perhaps Playfab Party is playfab party well supported for UE4?

Thanks in advance, -Tom

entitiesShared Group DataMatchmaking
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.

cooltom2013 avatar image cooltom2013 commented ·

Additionally how would the host know if the entity a player passes to it is valid, I assume the matchmaking would return an error but would it tell you the specific entity that is not valid?

0 Likes 0 ·

1 Answer

·
Citrus Yan avatar image
Citrus Yan answered

>>… are they not able to abuse the fact they have your entity key now?

The Entity Key is only used for identifying a single entity, in your case, is the title_player_account entity, knowing that wouldn’t enable the host to abuse other player’s accounts.

>> …perhaps Playfab Party is playfab party well supported for UE4?

As mentioned above, Entity Key is not considered as a very sensitive data, and so does the ticket Id because players outside of the ticket won’t be able to do anything with it, therefore, you may choose either one of the options as long as it meets your requirements. And yes, PlayFab Party offer C++ SDK which you can integrate into UE4.

>>… assume the matchmaking would return an error but would it tell you the specific entity that is not valid?

The CreateMatchmakingTicket API does not check whether the entities passed into "MembersToMatchWith" are valid or not because each player in it will also need to call JoinMatchmakingTicket to "confirm" that they want to join the ticket, or else the ticket will stuck at "WaitingForPlayers" status. And, It makes no sense that other players would provide a wrong entity to the host since it will prevent them from Joining a match.

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

cooltom2013 avatar image cooltom2013 commented ·

For the most part I agree with what you said here, but couldn't someone with nefarious intent uses someone elses entity key to constantly cancel any matchmaking tickets they make, by calling the API with cancel requests?

0 Likes 0 ·
Citrus Yan avatar image Citrus Yan cooltom2013 commented ·

Making cancel requests requires Entity Token, actually, any entity methods as well (classic APIs requires Session Tickets ), that token is retrieved by a authenticated user either from the Entity GetEntityToken method or login methods, in other words, only users themselves can make such calls.

0 Likes 0 ·
cooltom2013 avatar image cooltom2013 Citrus Yan commented ·

Forgive me for not being clear,
As the creator of a group matchmaking ticket do you not need that players Entity Token is that not the input for MembersToMatchWith, an array of the other players Entity Tokens?

Additionally are you expected to provide the Entity Token with the attributes for MembersToMatchWith or just the Entity Token?

0 Likes 0 ·
Show more comments

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.