Level design and moving between levels
Hey I have created a level that I want to be persistence on the server so that when new players join the game they start on this level and can interact with each other but from this level I want the ability for the player to choose to play a different level (storyline/PVP etc) I have created a menu and I am using Open Level to move the player to the new map but when this happens it moves the whole game from the "Home Station" level to the new game level on the server and then all the players that were in the "Home Station" level get moved into the new level also.
How do I keep the "Home Station" level persistent on the server so that players can leave and rejoin "Home Station"
Also any advice on how to structure this sort of level game play?
asked Jul 06 '17 at 12:25 AM in Blueprint Scripting
"Open level" function is not related to the level streaming system. To load a streamed level call the function "load stream level" (or unload stream level), best if used with collision boxes.
answered Jul 06 '17 at 09:42 AM
In multiplayer games hard to achieve this, because dedicated server cant swicth level and server need know everything about levels for collision test, replication and many more..
Think in a little bit, if server switch map everything will unload, no collisions, no actors :) etc.. so in theory you cant change map runtime, because they will change on clients.
Some games like World Of Warcraft using instancing to allow this. Instancing means players can play in same place, but players will not see others, only group members :) Mostly used for raids, dungeons etc. UE not supporting this naturally (i mean no one click and go option for this) but of course it is possible with huge backend. This is just a proof of concept, how this structures works..
So lets say you have main world server, and you have world1 server, world2 server i mean physically servers not ue dedicated server :)
Main world server running ue dedicated server with your main menu map. If player want join to world1, you send a request to your backend/master server "hey world1 server start new ue dedicatef server with world1 map, because player 1 wanna join"
World1 server start ue server, creating session and give back this session to master server..
If a new player want join world1 and he will join to exist world1 we have a saved session!! And we can join :))
So... big work behind this the connection and communicate between master and world servers/main servers..
Real Question is that: If Two player select storymode, this two player will play together in same server (co op)???????
If Answer Yes: that means players will be not disconnected from server and this two player will play together :)
For this you can do some trick to achieve this!! Do not change level, add your worlds as sublevel and place each level far enough distance to will be not visible :) If player select story mode, just simply teleport him to sublevel location :)
Of course this is a very hacky solution and you cant use differrent type gamemodes and other features, but maybe work. Or you can jump in to learn backend and master server - world server - clients networking architecture which is used and named mostly as mmo networking :)
answered Jul 12 '17 at 08:03 AM
Follow this question
Once you sign in you will be able to subscribe for any updates here