Benjamin Golinvaux avatar image
Benjamin Golinvaux asked

General architecture of two-stage matchmaking with teammate lobby


We have a running preversion of our Unreal Engine game (on LAN) where clients enter the IP/port of a server, then connect.

They all thus enter a lobby level in the game where they choose equipment, etc. before being traveled to the real game level.

I am currently designing the architecture for running this on PlayFab. I already integrated the GSDK and it works fine: I can manually provision and launch servers, retrieve the IP (manually, in Game Manager) and clients connect to it.

I would like to implement the following "player journey" for our game where matches contain two teams of 3 or 4 players.

1. players launch the game and login with PlayFab (custom ID at the moment to make it simple)

2. A "leader player" decides to gather a party of teammates (*not* including the opponents) and send invites. He then enters a freshly created lobby.

3. The other teammates see the invite and, if they accept, they join the same lobby (I would also like the ability to share a "lobby ID" in an external chat/discord for invites)

4. All teammates meet in the lobby where they can see each other, choose equipment, change their name.... and when done, they click the ready button

5. When everybody is ready, I would like to look for another group of people who have matching characteristics such as skill level and who are also looking for an opponent team.

6. Once PlayFab can match these two teams, a dedicated server is launched and all clients receive the IP address + port to connect to.

In the current LAN game, a server is already required at the lobby stage, and the lobby contains ALL match members (from both teams), and Unreal network replication is used to that everyone sees the name+equipment of other players.

I would like to change this and use PlayFab to exchange info between teammates and only start the dedicated server once both teams are complete and ready to play.

I am bit lost in the PlayFab documentation between matchmaking (can it be used for 1), 2) and 3) in my journey?, or can it only be used once teams are complete?) , Social, Party... Can Playfab Party OSS plugin for Unreal be used to replicate Unreal objects between teammates?

Should I use Party to exchange the information about equipment/etc in the lobby?

Could some expert guide me on the very high-level way of doing this and what areas of the API I should learn first? (I can write C++ and do not have to use Blueprint)

Thanks a whole lot in advance!

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

Rick Chen avatar image
Rick Chen answered

The PlayFab Matchmaking offers a simple and powerful system to help your users find each other. But the matchmaking and the Multiplayer service 2.0 cannot serve as a lobby system, as there is no such feature that allows player to search for a match. Currently, the PlayFab’s Lobby feature is On-Deck, this will be a new feature that allows for temporary grouping of players for the purpose of orchestrating multiplayer experiences, including searching for available lobbies to join. It includes member properties, as well as lobby and search properties to use for gameplay coordination. Please stay tuned and check our Blog Post for the latest released feature.

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 ·

@Benjamin Golinvaux, if you are interested in lobby feature, please also refer to the workaround solution from Building Lobbies with Azure PlayFab

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.