World Partition and Landscape Tools Don’t Play Together
Developing Massive Landscapes
Every cool video game character needs something to walk on, run on, jump on or fly over. When we think back to the likes of MMORPGs like EverQuest, massive worlds were only achievable by relatively low polygon meshes in small zones, and players would load from one zone to the next – sometimes taking minutes as your noisy hard disk spun and buzzed away.
Twenty years later we have games with absolutely massive worlds. Take Final Fantasy XIV, for example, with somewhere around 800 square kilometers of terrain. Engines like UE4 gave a developers World Composition tools for working with massive terrains by tiling the world into small sections and loading each tile as its own level. The Landscape tools in UE4 allowed deforming and texturing of these meshes on modest rigs (by today’s standards). That process often begins with generating heightmaps in something like World Creator or World Machine which can output the terrain in tiles. UE4’s World Composition would allow import of the tiles in a batch and generate the terrain as separate meshes.
ue5 world partition
World Partition is on track to deprecate and replace World Composition, and you can’t have both enabled at the same time. At runtime, World Partition actually seems to do a great job. It streams in sections of the map relative to the camera and player and loads just enough in the distance while unloading areas of the partition that aren’t in range anymore. It is designed around the concept of helping multiple content creators work on the same game world by splitting the map and objects into data layers so one artist can work on one area, while another artist can checkout a different area. To be effective, it works in combination with layers, HLODs (which do not affect Landscapes!) and DataLayers.
At first when you enable a level for World Partition, one way to build the terrain is go to Landscape tools and create a landscape on the fly. By clicking “Fill World” you get a pretty large plane that spans 8 sq km. You will immediately notice that the Landscape tools seem pretty responsive. However, import a much larger and more complex map, and suddenly the landscape tools bog down to a halt.
You can try turning off Lumen (the new dynamic lighting), textures, shadows to low quality, but the fact remains is that the Unreal developers overlooked a critical area of development: Landscaping tools do not play nice with large landscapes in World Partition. In every corner of forums, blogs and technical support requests, this is a major complaint. You just can’t easily landscape a massive terrain.
16321 x 16321
Using World Creator, I made what I thought was a large terrain. It is certainly over Unreal’s maximum size in pixels, but using Fit to Data, I get 255×255 quads, 2×2 sections, 32×32 components and an overall resolution of 16321×16321.
When you use “Create New”, you’ll end up with several dozen LandscapeStreamingProxy objects showing up in the Outliner. In contrast, importing from a heightmap, I get a measly four, even with my heightmaps tiled to a 1003×1003 size!
As I hover over sections of the landscape with the sculpting tools, I see small sections of the mesh getting highlighted as if they are broken up. Great so far. But once you start manipulating, the frames per second drops really low and the tools lag, stutter and jump around (for reference, I’m on a 2080 Ti with 12 GB video RAM and 64GB on the system).
Landscape tools are frustrating working with World Partition on large heightmaps, even if you manage to assign sections to DataLayers, save the project, close down and then reload that layer.
UE5 is still in beta and has a lot more time left before it’s stable. There are numerous crashes when pushing the system too hard, and if you dive into Unreal forums you’ll also read the endless complaints on how hard UE5 pushes hardware compared to UE4. There are a few things that can be turned off to gain performance and make it a little more like UE4.
One thing is apparent: UE4’s World Composition isn’t going away any time soon, not until the developers get the performance difficulties and kinks out of World Partition.
As I continue to learn and explore working with UE5, check back for new articles on working with (or around, as the case may be) World Partitioning and World Composition.
Happy Creating!
Epic’s UE5 development team overlooked a critical area of development: Landscaping tools do not play nice with large landscapes in World Partition when imported from a heightmap. Tiling the heightmap for import doesn’t seem to help.