I need some advice on how to create a good server architecture for my game.
My goal is a simple lobby system like most of modern multiplayer games offer.
- Find Game | Search Game | Play (whatever you call it)
- Lobby/Room where players can pick weapons, characters etc…
- Start the game -> play -> return to main menu
My problem is the transition from step 3 to 4.
I guess I need 3 main components.
- Login Server
- Master Server | Matchmaking Server
- Gameserver | GameInstance
I just don’t get how I can create a dedicated server instance from the master server. Is the Masterserver an UE4 Server or do I only talk to him through HTTPRequests?
It should be possible to do this since Paragon (the MOBA developed my EPIC) uses the exact same steps.
My thought so far are:
Host an non UE4 MasterServer in an scalable cloud (AWS, Azure, DigitalOcean)
Talk to the Server through HTTPRequests
- 2.1. Client -> Send a request (I want to play!)
2.2. Server -> Has a list of players who are searching for a game
2.3. Server -> Spawns an UE4 Dedicated Server Instance and send the players the IP (But how can I Spawn an instance?)
2.4. Client -> Performs a Server Travel to the IP recieved by the Server
- No normal UE4 stuff can happen.
- 3.1. Choose Weapons, Characters, etc.
3.2. Ready Up
3.3. If everyone is ready -> SeamlessServerTravel to the Map
3.4. Wait for all players to load
3.5. Play the game
3.6. ServerTravel back to the MasterServer
Would this work or are there other ways/solutions that would fit better.
I am thankfull for every advice.