question

Phil Woods avatar image
Phil Woods asked

Matchmaking Server ID

We would like to output the ‘Server ID’ into our client’s log after matchmaking. Then we can use the ‘Server ID’ to find the server logs within the Game Manager’s server archive.

What is the best way to find out the ‘Server ID’ after matchmaking? Or is there a better way to find the server logs in the Game Manager’s server archive?

Our current solution involves waiting for ‘GetMatchmakingTicket’ to provide the result status of ‘Matched’. We then call ‘GetMatch’ with the ‘Match ID’ to get the IP address and ports of the server. Then we are using cloud script to call ‘GetMultiplayerServerDetails’ to get hold of the ‘Server ID’ using the ‘Match ID’.

The call to ‘GetMultiplayerServerDetails’ fails when the ‘Match ID’ is from backfill. Currently we can only get hold of the ‘Server ID’ when initially matchmaking. When using matchmaking with backfill the ‘Match ID’ is different to the server’s ‘Session ID’ and the ‘Server ID’ cannot be retrieved using ‘GetMultiplayerServerDetails’.

Seems like the ‘Server ID’ is an essential piece of information for the client to have. Is there a reason why the ‘Server ID’ is difficult to obtain on the client, or are we missing something here?

We are currently using the Unreal PlayFab Marketplace Plugin version 1.52.210111

Thanks,

Phil.

unrealgame managerMatchmaking
10 |1200

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

1 Answer

·
Seth Du avatar image
Seth Du answered

Server ID should be persistent and there is no need to get it again after the backfill ticket is matched, because the server ID represents the current running server instance. Match ID will be expired after a specific period, which means after few hours, you are unable to get server ID again via Match ID. I believe it is fine to review logs via Game Manager Server Archive, as they are sorted by time.

If server ID is necessary for player, you may maintain a json value in Player Read-Only Data (or internal data) and incrementally update this value after each game. However, there is limited capability that a player can do via server ID. Besides, a client shouldn’t be able to retrieve the server logs. May I ask the scenario?

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

Phil Woods avatar image Phil Woods commented ·

After the backfill ticket is matched there doesn't appear to be anyway to obtain the Server ID on the client.

We wish to log out the Server ID in the client's log so that we can then find the corresponding server log in the Game Manager's server archive.

For example, QA play the game on the client and then wish to report a bug. They need to include the client and server log in the bug report. Currently QA have no way to find the server log since we cannot provide them with a Server ID.

0 Likes 0 ·
Seth Du avatar image Seth Du ♦ Phil Woods commented ·

I believe you can use the approach that I have mentioned above but letting the Server build update data for each player.

When all players are connected and it is about to start the game, the server can call GetUserReadOnlyData and then UpdateUserReadOnlyData APIs for all players. all the information can be retrieved via PlayFabMultiplayerAgentAPI.GetConfigSettings(). Please refer to the source code to get required data.

0 Likes 0 ·
Phil Woods avatar image Phil Woods Seth Du ♦ commented ·

Using the GetUserReadOnlyData and UpdateUserReadOnlyData sounds like an approach that will work once the server has the PlayFabId of the client.

For us, distributing the Server ID is going to be easier and quicker, I think, if we use in game networking.

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.