Download

Strategies for handling large scale world (single player)

I’ve been wondering and pondering for a while now how to start tackling this subject. I was hoping the smart community could pitch in and give some good ideas and advice.

My goal is to create a flight simulator sort of landscape. Here are the main points and problems to tackle, with questions.

  1. It needs to be big - at the scale of around 1000km x 1000km. This is obviously way too big for any single terrain.
  • Should I consider using the World Composition? It sounds like what I’d need here.
  • When using World Composition, is the world consistent? Are the contents of the whole world loaded and simulated simultaneously? For example, if there’s an aircraft flying on the adjacent level, does it keep flying and keep getting updated in the game loop if the player’s aircraft is flying inside another level?
  • If World Composition isn’t suitable for this, any ideas how to tackle the problem of needing to edit the huge world (placing meshes and actors, etc)?
  1. The terrain is generated from height maps and a few source textures in runtime - this is naturally because it would take insane amount of space to store accurate textures of the landscape. I’ve already figured out the generation mechanism on paper, that shouldn’t be a problem. I’ve taken a look into the engine and managed to enable runtime landscape editing by editing the engine source. Haven’t thoroughly tested it though.

One big thing that worries me is that I need to be able to simulate the whole world simultaneously, not just the contents of one level. Can World Composition even do that? If it just loads the level when you get close enough, it obviously won’t do. The world itself doesn’t have that much activity, it’s just that the distances are vast which is really the biggest problem, there shouldn’t be any problem of having too much stuff in the world to simulate.
I fully understand that UE4 wasn’t designed for this, the whole engine cries FPS. I take this as a challenge and I consider this a little hobby project of mine. I’d like to hear what kind of ideas you guys might have. I do know how to tackle the landscape streaming problem in theory (actually already did that in Unity), just recycling landscapes beneath the player and using floating origin works and far away simulation regarding the terrain could be done by querying the height maps (probably not optimal but anyway…). But then there’s still the big problem of being able to edit the world. Maybe writing an editor extension to hop from one part of the world to another? A lot of work…

Anyway, anyone else here worked with flight simulator scale terrains here? :slight_smile: I could really use your input!

For large scale worlds you should look into level streaming. This works well for single player only for now unless you can set up a server to handle it.

I’d love to know if you made any headway with this or figured out if this actually do-able since I am standing for the exact same dilemma.
As far as I understood streaming this is not really possible. Though I’d love to be wrong about that.