I’m working on a blueprint project and I want to eventually create a large open world. If I were to create individual levels and patch them together what are the limitations? For example could I serve individual levels from a server so that the world could potentially endlessly steam additional neighboring levels are downloaded by the user? I don’t mind if the player has to load or “jump” between each level in a non seamless fashion because the spaces are not necessarily going to be used for traditional gameplay anyway. Second Life is a good example of what I’m hoping for although without the huge number of players online all at once. I realize UE4 is not traditionally known as an MMO engine so I wonder what can be achieved through level streaming or alternative methods that could potentially achieve similar results.
Streaming is not something to do with networking, it’s a way to have large worlds without everything being in a single map.
Level streaming is about not rendering/processing chunks of your world, specifically assets like meshes and other things that need to be rendered, when they don’t need to be. Generally that chunk is sitting on the client. You could also do it over a network as well, but really you would just be streaming the positions of a chunk and not the assets themselves. Streaming the assets is the important part of streaming, and they should all be on the drive of the client.
If you wanted to do Second Life, it would be a little more similar to procedural generation than streaming. As a player gets close to a plot of land you might stream in the terrain or other things that do not change about that plot, but all the data on player added stuff that makes it unique would be kept on the server and fed to the client as they near the plot. Then the client would use that data to spawn all the assets from their hard drive.
Anyway, one of the current limitations with streaming is that you can’t specify which streaming sub-level an asset is being spawned into, which you would need for such a player created world to exist with streaming. Or at least not without doing some work in source to make that possible, which I don’t think is necessarily difficult.
The devs are continually working on large world functionality, so hopefully we get more options and flexibility in these areas.
how you store the chunks and load them into memory is a key factor.
Ok thanks for all the information and it’s very helpful, I think for now I will continue building lots of assets. A potential workaround though could be simply serving individual installs from a website. I’m hoping the UE4 browser technology develops to a point where I could just allow users to visit my website and choose what world to load up from inside the browser, they would be amazing! Procedural could also work however I have developed an efficient workflow for creating my assets using 3D design software so it’s unlikely I will use procedural unless I have no other options.