Drop in drop out Multiplayer (like Journey)

How would you go about creating a multiplayer setup similar to Journey?
The main issue I can see is the seamless connecting of clients. What is the best way to connect a client to a host/server without having them obviously spawn in?
In games like Journey, other players simply run past you with no indication of a connection having been established. Clients arent faced with a loading screen/spawning into a game.

Any thoughts on this? I could go into more detail if needed, though broader ideas would be most useful to point me in the right direction.
The main thing im after is the seamless connecting of clients, so there is no break in the users experience as they drop in/drop out of each others games (im also purely after the networking tech side of things).

Please don’t bump questions that are unaswered for less than 4 days.

Sorry eXi, I didnt realize, ill make sure to wait 4 days in the future :slight_smile:

To elaborate, P2P networking and server migration would fix or provide workarounds for most of the problems I am coming up against.
Has anyone else looked into seamless multiplayer?

The main angle I’m coming at this from is the client’s experience. They should be able to load into someone elses game without fully reloading their level, they should also be able to disconnect from a server without a full reload and respawn. This would give the client the same unbroken experience a listen server host is able to achieve.

Thanks for the reply :slight_smile:
Yeah absolutely, both P2P and server migration are on the roadmap wishlist. P2P would be amazing, but server migration would work too.

The current listen server model would do the trick providing server migration is a possibility. The main problem is that when a client disconnects from a listen server, they need to reload the map/respawn, breaking the flow of the game.
With server migration the client would be able to transition to being their own server and no reload would be needed.

I should also add that I hope to do this without setting up dedicated servers. Games like Dark Souls and Journey are recent examples of two players connecting with one as a host.

Interesting, thanks, ill post there.

P2P support is in roadmap without target month

Considering current client-server model let you connect 2 clients which one is a host already, this might be what you looking for… atleast partly :stuck_out_tongue:

Thats why i think P2P might be the thing, i think better would be if you post about this in feedback forum, maybe there already some solution

Hi, its been a while and Im curious if anyone might have any ideas on this now.

How would you go about connecting and disconnecting players from each other without using a loading screen?

I have been exploring the use of transitional maps in the built in seamless travel to usher players through loading levels instead of loading screens. This isnt ideal, so im curious if someone more knowledgeable might have ideas on how to seamlessly connect players without a loading screen while still leveraging UE4s networking archetecture?

The ideal is still to have players drop in and out on each other seamlessly, similar to Journey.

Other than that, server migration and P2P support would be awesome if they end up happening :slight_smile:

the trello card seems archived. is it already implemented?

Here’s some ideas I’ve had trying to do a similar thing with a 3rd person RPG Co-Op I’m working on …
You would make the input command (button push) spawn a playercontroller1 (or 2…3…4) that is set to each desired character (if you have preset characters) and as a player drops in he goes to the next controller and there is a variable on the different characters that sets their controller… if no one is controlling then set to playercontroller0 which is AI otherwise to next available playercontroller.

example:
You have 10 characters named playchar1 - playchar10 (yea originality is awesome)
PlayerController1 (default first player) starts the game and is assigned playchar1) I’ll figure out how to assign specifics at another juncture cause that’s a whole other story…
As he is playing a friend jumps in on another controller and is auto assigned to be playercontroller2 which is newly spawned and then playercontroller2 is assigned to playchar2. and this continues for how many max players you assigned as a variable.

Now, to change characters there could be a button push reference so that a player can change their call to a playchar1- playchar10 and that’s how you change characters. they would have to cycle through but its working and that’s all that matters. he is still playercontroller1 (or 2…3…4) but he is assigned manually to a new playchar1 (or 2…3…4…). This would allow someone to change their character pawn. The controls would be set as an instanced playercontroller and serperrated by that variable. I hope this helps, Its not fool proof, nor is it tested, but I’m working that all out.