Download

Fastest way to reconnect to another server in multiplayer for bigger worlds?

Any special way to load part of a map into memory to reduce reconnecting & loading times?

Since we dont have proper large scale “mmo type” networking, I’m wondering if there is a way I can get fast reconnecting times for changing servers/maps when getting to the end of the zone and beginning in the next part (since we are limited to like 8km2 per map with built in networking).
So this way I can have a huge world interconnected by pieces of the map on each server. (Players will be spread far out so I can’t use the world composition singleplayer/coop feature)

How long will it probably take to reconnect? The main problem I have is theres vehicles in my game that go at decent speeds so if players have to reconnect alot and loading times are high that might get frustrating.

I got the following answer a few months ago, but It’s a bit confusing to a non programmer/3d artist like myself, Can anyone explain it a bit better and tell me how to set it up? Possibly with blueprints instead?

  1. to go to another server when you hit the zone

void ClientTravel(const FString& URL, enum ETravelType TravelType, bool bSeamless = false, FGuid MapPackageGuid = FGuid());

  1. To start into the same area that you left off, you would need to keep your maps origin common to the level. You can send the positon as an option in the “URL”. Another idea would be to have landmarks or sub volumes that linkup from map to map

Nobody can help me with this? I think alot of people would be interested in a workaround for a somewhat mmo type scenario, this could benefit many others too

The two slowdowns will be.
A: Sending the data across the network.
B: Loading the map

So these should probably be done before you do your “Travel”
Look at the current source (c++) implementation of how levels are streamed, that will take care of the loading, as of sending the data across the network, there are as many implementations as drops in the ocean so I can’t help you there, but probably a custom c++ implementation as well.

Ps.
Most people don’t care about mmo kind scenarios, because it’s too much work.

For a responsive MMO, sending the map across would never happen, the server would have it’s own logical implementation of all levels, and the maps would only exist on the clients, the server might mention what map to load from the local set but that is probably also trough client implementation, where the server only validates the possibility for a client to change map.

Thanks for the replies, I’m not trying to make this too complicated though, if theres too much required to “pre-load” a map this way, I’ll settle for just an automatic map switch/reconnect

But I’m still not sure how exactly to set that up

Can it be done with blue prints?
When I get near the killzone of a map, auto reconnect me and load a new map on a different server that looks similar and start me where I left off.
How could I accomplish this?
And also, how could I host multiple maps at once to even make this possible? Just run multiple dedicated servers?

Since the current server setup is One->Many you would probably need to write your own c++ code for the servers, one part just managing moving characters between the servers, then somewhere that all of them can access to get the inventory and items of the player, since this needs to be persisted managed outside of the user/client.

I actually realized i considered a similar scenario, except i didn’t see it as a mmo.

It would require one server for handling user accounts in general. Possible information connected to the physical person and things based on payment if that is a consideration and so forth.
One server for character persitance/storage, responsible for maintaining and fetching character information.
One Transfer server, the one that kicks and handles the actual movement of player instances between Game servers.
A lot of Game servers essentialy handling more isolated, high paced gameplay on smaller scale.

I would probably count like 3-4 man months on each to get a semi stable system in my case. But it is entire based or scope.
The reason I don’t see it is a mmo is that the actuall game play is with a limted amount of players on a limited surface per server.

Yes thats exactly what I was thinking, not necessarily an mmo, but a workaround that is at least achievable

As for the persistent inventory linked to an sql type database to keep items when switching servers, I know I will need this eventually but I’m really only concerned with the automatic map/server switch when entering a trigger zone for now
So I can test if this is even a feasible and practical way to run a game like this before I work on other things…

Could I not just use the built in networking, run several games and run a dedicated server on each of them, then when I enter a certain trigger bounds it just connects me to the ip of the other server and loads the appropriate map, then spawns me on the trigger that was linked to the other trigger? It doesnt seem that complicated

Isnt there even a console command for connecting to a server? Like “/connect ip” or something?
Just have that run when entering the trigger, then the other map will already be set on that server & load automatically

So the only real hard part is where to spawn, linking 1 spawn zone on 1 server to another

Yes exactly the hard part here is of course that you need to provide a lot more data then just the ip you are connecting to. How to get that across to the server in a decent way is the hard part. Maybe you temporarly can extend the server part to handle more input from the command line, but thats beyond me.

But there is a execute console command node that could be used. exactly like you say.