Hi all,
I have a game where all platers are gathered in a lobby. The host of the lobby selects the game type and other rules and then launches the game → I use server travel to travel to the new map. My question is, should I use seamless travel when I travel from lobby to a new map and/or from the map back to the lobby (assuming I’ll want to transfer some data like points back to the lobby), or should I use none seamless travel? I tried to understand the difference between them but I don’t think I fully understood.
As I explain in my compednium which I linked to you a while back and the attached Epic docs, seamless travel should always be favored upon non-seamless ones. However, sometimes, a non-seamless travel must take place, because that’s how the engine works (again the 3 circumstances are mentioned in the previous links).
The difference is really simple. As the name suggests, a seamless travel keeps clients connected to the server, meaning no disconnections, thus less issues involved. It’s also faster, so you don’t have hard cuts whatsoever. You also get to persist a whole set of actors, making your data easily persistent.
In hard/non-seamless travels, clients are forcefully disconnected from the server, and you feel the hard cut when traveling. As a result, there are also less options to persist data and so on.
I guess I was asking the wrong question then. When I used seamless travel to travel back to the lobby it didn’t load. I found out I had to use Event Handle Starting New Player instead On Post Login. I’m still not sure about “When loading a map for the first time” - Is it when loading any map for the first time or each time I load the destination map for the first time? If so, how can I detect if I already loaded the map?
And tanks again for helping, much appreciated
Both questions are answered in my compendium
-
HandleStartingNewPlayer fires on both seamless and hard travels, while OnPostLogin fires only on hard travels.
-
Loading the first map for the very first time. When players launch the game, the map they load in (which is the customization lobby usually) must be a hard travel. Otherwise, every travel to a new map must be a hard travel, and that makes no sense.
How do you plan on supporting Multiplayer? Steam? Lan? ???
I believe how you answer this question might impact the travel you need.
For me, I plan on releasing a game using Steam. I claim seamless travel is needed for Steam if you are using lobbies and sessions.
Also, when you are developing/debugging your game in PIE and “standalone game” it may make since to support non-seamless travel. For example, PIE does not support seamless travel in “Run Under One Process”.
I believe if you plan how you are going to release the game as well as maintain all developing/debugging features UE offers, you should be able to architect a multiplayer travelling implementation.