FAQ: World Building Tools for UE4

Dec 4, 2020.Knowledge


Are there any considerations to be made before working with a large world?

  • There could be many. One that’s immediately apparent is the imprecision of floats becoming problematic when very far away from the origin. In this case, recentering the origin periodically must happen to avoid this issue.

How can you view the entire world in the editor?

  • Loading all the levels will allow you to view the entire world in the editor viewport.
  • If using World Composition, the World Composition window should display a top view of the entire world when unloaded.

What is the intended use of the Level’s position property (in Level Details window)?

  • All Actors in the level will be shifted by this value when the level is added to the world (becomes visible) and shifted back when the level is removed from the world (hidden). More details here.

When working with roads, any advice on where they should live within the hierarchy?

  • An optimized approach would be to make roads with a landscape road spline and then bake it into a Runtime Virtual Texture.

What are the pros and cons for using instances vs foliage systems for trees?

  • They are based on the same runtime system. Editing through foliage provides better tools.

Is it possible to use a Runtime Virtual Texture to reduce the shader complexity and add mesh blending for the world, and does it make that much sense in the case of aggressive usage of Landscape LODs?

  • It might be acceptable with separate RVT volumes for each tile, but some work might have to be done to make sure the whole landscape isn’t drawing into all the RVTs at once, as that would be inefficient. See documentation for more info.

Is there a way to make streaming numerous sublevels more efficient?

  • One way could be to consider only streaming in the next closest tile at any time and having proxy mesh placeholders for all the other tiles.

Breaking up levels into small chunks for streaming efficiency generally works unless we hit a large number of levels all being loaded at once. How could we improve this?

  • Breaking POIs up into chunks with heavier POIs as multiple chunks to avoid loading all at once.
  • Parallelization of the actor postload.

World Composition

Is there any way to change/define the Loading Order of the surrounding tiles when entering a new Player in World Composition?

  • All levels required to load are added in a list, which is not sorted in any order that can be defined by the game code. A solution to that might be to change the streaming code to only add the levels required for the player to spawn.

Is it recommended to use World Composition or the more traditional UE3-style sub-level streaming (triggered by volumes, scripting, …, etc)?

  • For games multiple years out from shipping: you can start the project using World Composition, making sure to use regular levels/landscape grid. That should make conversion to the new open world system quite trivial once it’s ready.

What are the equivalents to “Always Streaming” Levels, Level Splitting and Streaming Volumes’ Editor Pre Vis Only when WorldComposition is on?

  • World Composition supports Blueprints loading and streaming distance. By setting a huge distance, this will mimic always loaded levels. You can also create new types of Layers and implement your own loading schemes.

Is origin rebasing stable? Can it be done during a cutscene?

  • Origin Rebasing should work with all of the engine’s systems, but you’ll need to support it for custom systems.