Good afternoon,
I'm trying to get some clarification on an ideal architecture configuration for my game. I’ve been scouring all the available documentation and forums posts, many of which have been leading me in the right direction I think, but there’s a lot of ambiguity because there’s a lack of UE4 specific knowledge for my ideal use case as far as I have found.
It's a game with dedicated servers, hosted by Playfab and not external, ideally, and a main multiplayer feature is a server browser that lists all available, running servers.
I have managed to get a successful response with a Cloudscript function call for ListMultiplayerServers, as I needed to maintain client/server security.
And I can display those servers on a client-side server browser UI widget, though they're only for one region at the moment and all have the same name, which is the Region, as there don't seem to be any Server name-specific parameters.
The questions I have now are specific to how I need to configure the server and multiplayer logic in relation to available Playfab calls:
The server/gameplay flow I’m trying to implement is ideally as simplified as I can make it, as my focus is more on gameplay for more complex development. I need players to have a level of control over what servers they can see and join, akin to how games like Battlefield or ARK use their server browsers. A server browser that simply displays all available servers, with the potential to filter those servers by certain parameters, likely received by server-specific details.
However, I would still like simplified, standard matchmaking in the main menu. Assuming these functions are all modular, I can implement a party system down the road as well.
I’m also primarily using blueprints but can make Cloudscript calls and work in C++, if necessary. Blueprints just simply provide a cleaner and less error-prone method to get a testable, working concept build up and running quickly.
I do understand after looking through many of the forum posts and documentation that you have limited UE4 and Blueprint specific materials to reference, however, whatever assistance you can provide for this specific workflow I would like to document and post, as well. This is a pretty standard model for UE4 template projects and Playfab provides a quicker back-end solution with Blueprints than Gamesparks/Gamelift from Amazon, so it’s ideal for our team and likely many others to reference for the future.
I’ve tried to be as descriptive as possible, but if any of this isn’t clear or is too confusing, please let me know and I’ll do my best to clarify on my end.
Thanks!
George
Answer by SethDu · Jul 24, 2020 at 07:53 AM
>>Each server will have a lobby map/game mode upon initial player join, where players can choose sides, modify equipment while waiting for a timer or ReadyUP-type function to start the first match. After that match, the players and their teams, data, etc. would be retained and returned to the lobby, waiting for the next match to start.
Lobby(for matchmaking) is not supported currently and this game logic should be implemented on your own. Multiplayer 2.0 doesn’t have the common lobby feature where players can select their slots/seats. However, the temporary team feature can be fulfilled by Shared Group feature and team information can be shared in the Shared Group Data.
You may also refer to the case study document from HICON Games on the website: https://docs.microsoft.com/en-us/gaming/playfab/features/multiplayer/servers/playfabgsdk_guide. In addition, even though we don’t have an official sample for UE4, the server logic and lifecycle of server session is very similar, please refer to the GitHub repository:
We've got a rough implementation successfully loaded and running. Thanks for the assistance and the detailed answers Seth.