I have been assigned the task of "implementing network stuff" in our UE4 game :) (real time, competitive, between 3 vs 3 and 6 vs 6 matches)
Our game already works fine on an LAN, with the null OnlineSubsystem (dedicated server build is OK, on Windows), but I need to research:
- master server, matchmaking and dedicated server hosting (we need dedicated and we'll maybe add p2p if possible.. to be decided)
- friend lists, parties, invites...
- later : in-game purchases, social features..
I have read about integrating the GSDK in our game (the "Huli" tutorial) and this is rather clear.
When it comes to matchmaking and server allocation, it's a bit murkier.
I understand the security risk of allowing a game client to directly call the RequestMultiplayerServer endpoint (I assume this could lead to DOS attacks?), and the documentation states that using a separate matchmaking service makes sense.
I am trying to understand exactly what I need to generally write in addition to the PlayFab turnkey offer, especially for matchmaking, that seems to be to biggest task.
How do people usually cope with this?
By writing a separate application running on Azure that communicates with PlayFab and call the RequestMultiplayerServer endpoint?
Also, as a more general question, how would you VERY APPROXIMATELY rate the workload of bringing our game from the
- "it works on lan when manually specifying the IP and port"
- "we can login through PlayFab, invite some friends, ask for a server in our local region and join the session" ?
Is it realistic to assume that it can be a one-man job over a few months (I am experienced in C++ + a little docker/devops experience) ?
Thanks in advance for helping me making sense of all these tasks.