Can you decentralize a multiplayer game?

I have an idea for a project, which is developing a multiplayer game where all players play on the same map. I have two implementation ideas for this and the first is supposed to work in such a way that the map is divided into quadrants and a player who has good leadership and is trustworthy takes on the role of server in that area. And the quadrants overlap a little, so there’s a seamless transition. In this model there is a “small” public server that continuously secures the data from all player servers and makes backups. The role of the server is passed when a player logs out. The game is supposed to be relatively simple, so I think there won’t be a lot of traffic to the servers from the players.

The other option would be to “simply” use servers, like any other multiplayer game, you could keep the quadrant system.

I know that this is very ambitious, but I just want to know to what extent this is possible and useful and if you are familiar with something like this, how and with which tools and engines do you best do something like this?

Thanks in advance for all answers!

To clarify it sounds like you want multiple servers or clients acting as servers to generate a persistent world. John is running Quad 1, Mark is running Quad 2, etc.

When a player on John’s world creeps to the edge of Mark’s world he is moved over to Mark’s server.

In the event that Mark needs to shutdown his instance, some other player currently on Mark’s server takes over as the server owner… Say Julie. Now Quad 2 is managed by Julie’s instance.

That about sum it up?

If so, Yeah it’s possible, with a lot of redundant and bloated work. To be honest it’ll run like hot garbage and nowhere near what you’d expect.

Unreal Engine uses a client-server model. One computer in the network acts as a server and hosts a session of a multiplayer game, while all of the other players’ computers connect to the server as clients .

Transitions between Quads would be no different than disconnecting from John’s server and joining Mark’s. Leave a session, join another.

You cannot maintain a connection to one session while you join another. You have to disconnect, unload the current map, connect and load the other map.

UE’s architecture wasn’t designed for what you want to do. What it is “somewhat” designed for, depending on the total number of players, is large worlds. At least UE5 is.

You can do a pretty large persistent world and have many players join. How many depends on the depth of your game world. Essentially how detailed, asset heavy it is.

Servers load the entire level into memory. So a large level requires a lot of memory, which means a “bigger” server. Yet servers in general (dedicated) only really load collisions and “data”. They do not load audio, or any visual related components (textures, materials, particle fx etc).

Just think of a server world as just geometry in wire view mode.

Hope this was helpful.

2 Likes