How can I get clients or servers to connect to multiple servers at once?

Is it possible for clients and/or servers to connect to multiple servers at once using blueprints?

What I want to achieve is a structure whereby players perform actions on their server, but then the server itself connects to a master server such that as players do things on their server, it moves things around on the master server…

Do i understand right? So ever connects to master and forwards the master server data to players?

Imagine this scenario:

  • Players on server A are playing a ball game. They need to get energy balls into buckets. They are on a normal multiplayer level.

  • There are 5 other servers also with players playing this same ball game.

  • This is where it gets tricky. There is another server which has a slot car track. Each ball game server is represented by a car on the track.

  • As players get energy balls into buckets, their team’s car gets that energy and moves around the track.

  • Each ball game server also joins as a client to the race track server and moves its car around the track as its players score. It needs to keep track of 2 different scenes.

  • Players in the ball game should be able to see the race track on a screen in the level. (i.e. a camera in the race track scene is rendered to a texture on the wall of the ball game scene).

Whilst this simple scenario could probably handled by a single server, what I have in mind is bigger / more complex than this - I just want some help to get this kind of structure:

30 clients → 1 “map A” server,
30 servers → 1 “map B” server,
= 900 players in 1 game world

No-one have any ideas?

I think the unreal engine is set up as a single Slave-Master structure. What you want is a Client-MasterClient-Master structure from what I understand from you. Maybe you can do something with C++, but definitely not with blueprints!

I am not sure but for the smaller example it might work. The MasterServer is your Persistent Level. A limited number of ball game arenas could be managed via sublevels. This way you dont need multiple Servers, just the one. I don’t know how high you can scale this.

Another solution is to build your own layer of networking. It is not that complicated to send and receive(listen for) TCP Messages, but that would be C++ only. Your master server would listen for TCP messages all the time and would send the gamestate to all ClientServers if some new information comes in. The ClientServers would update and render the car track scene accordingly. The messages are text only, so you would have to parse the information. That sockets would be open for hacking the servers and hand false information in the master server, so you want to encode and decode the messages with a secret key. Not trivial, but not over the top complicated.