UE5 Big Landscape, World Partition, Landmass Plugin, Water Plugin

Hello,

First of all, sorry. It is a long post containing weeks of research and struggle, but I promise worth reading, it’s a nice technical challenge! :slight_smile:

I’d like to have an advice/suggestion/feedback regarding creating a Big Open World Landscape that is using both Landmass and Water plugin as well.

For a while I have been experimenting both on UE4.26 and on UE5EA as well. Nowadays mostly UE5EA.

As a start I created a big landscape 255x255 quads, 2x2 sections, 16x16 components, 8K over all resolution with total components of 256. (Also tried with 1x1 sections and 1024 components. For now let’s stick to the first version.) Layer edit was enabled, in UE5EA the world partition grid size was set to default 2.

Then I started placing Landmasses, Ocean, Rivers and Lakes. My issue can be reproduced also by placing just a single River of the Water Plugin.

Whenever I tried to move the River or it’s spline points I had a crazy FPS drop to 1~2FPS from 100~120FPS and the console kept saying timeout error messages that it is waiting for the GPU to catch up, eventually editor freezing up - yet no crash.

Now my GPU is GTX 1070 TI, but I also tried my little experiment on a friend’s PC who has one of those super expensive GPUs (namely RTX 3080), and there was not a millisecond of improvement. I had the very same issue on that GPU as well. We both have high end PCs with AMD Ryzen 3950X, 64GB RAM, SSD. Everything leads to the conclusion that it is a software and not a hardware issue.

I watched a lot of videos on youtube regarding the topic, and I came to the conclusion the issue is the number of components. More components on the landscape → more performance drawback. However I never had ANY in-game performance drawback regarding this, only editor performance drawbacks.

I am aware both UE5EA, and UE4.26 water and landmass are experimental, still I want to have this topic a bit more spotlight.

My goal is to have a big ocean, and a continent on that, the continent split by multiple rivers and lakes, landmasses, mountains and roads. (Yeah, I know sounds like a nice dream.)

Earlier I tried in UE4 the World Composition (which is deprecated and not recommended and will be replaced by World Partition), but World Composition does not support the Water Plugin either, and I would avoid using deprecated systems at this early stage of development.

I also have been experimenting on UE5EA with trying to unload the unnecessary grids, but the river was still unmovable due to freeze/FPS drop. I also tried putting the river in a different Data Layer called Water, still had the same issue.

I also experimented on the big landscape with standard sculpting tools, and I noticed whenever “Edit Landscape Layers” are enabled simple sculpting drops my FPS to 20~30 from 100~120. If the “Edit Landscape Layers” box is disabled, there are no FPS drops and it works fine. However, water and landmass requires edit landscape layers…

I also tried making multiple small landscapes on one level, that worked with Landmass, but not with Water plugin.

Since I’m in an early stage of the development I’d like to use the Epic’s factory provided plugins for my goals, but I’m not sure it’s the right choice.

Honestly at this stage I’m not even sure making such a big landscape is a good idea at all or not?

I am waiting your answers regarding how to have a “big ocean, and a continent on that, the continent split by multiple rivers and lakes, landmasses, mountains and roads” !

Thank you in advance!

UPDATE: I also tried to use a Landscape which was as big as the one above, but used less components (I used scaling like 200, 400, 800, even 1000.) The freeze issue disappeared, but the terrain quality was terrible, the rivers of the Water Plugin were discontinuous, so scaling the Landscape was not an option either.

3 Likes

I literally came here to post my own questions on World Partition and massive land imports. I feel your pain.

Is your Landscape imported from a heightmap? I created a tiled heightmap in World Creator, exported it as 1003x1003 tiles (so each tile is 1 square km). They are named heightmap_x0_y0, _x0_y1 and so on. With World Partition enabled, I calculate my size and come up with a 16K sized world. Even though the tiles were broken down, the problem is the LandscapeGizmoActiveActor gadget is merging the tiles together and in the end there is only 4 gigantic meshes! There’s only 4 LandscapeStreamingProxy.

No matter what I’ve tried to do, I can’t get a heightmap with the _x0_y0 naming convention to import with MORE LandscapeStreamingProxies. So when I drop to Landscape editing, even with data layer and world partition, the meshes are just huge to work on and bog the system down (nvidia 2080 Ti 12GB, and 64GB RAM on the system).

In contrast, I noticed if you create a new level and landscape and click the “Fill World” button, you get a massive landscape, but the individual tiles are broken down to small sizes and then editing the land is easy.

Another thing you mentioned was the water plugin. I just read today that it’s buggy and was slowing down systems, so some people have disabled the experimental one and got improvements that way.

If anyone figures out how to import large heightmaps and have the LandscapeGizmo break that up into smaller parts – or tell UE to keep each individual tile mesh as independent actors instead of merging them this would be massively helpful.

2 Likes

Thank you for reply!


I just simply created the landscape like this and put a River and tried to move it.
This is where my struggle started.

At this moment I am not even sure… is such a big landscape a wise design choice?

The water system simply doesn’t work with landscapes =/>4kx4k.

Nothing changed in that regard from UE4 to UE5.
You might be able to plop a river down somewhere, when all but one tile is unloaded, but it’s too unstable to do anything with it.

Actually no. Even if you unload everything except one tile it will still freeze your editor.
It is the “landscape deform” part that causes the issue. If you try simple sculpting on this big landscape while Edit Layers Enable you will notice the sculpting halves your FPS as well. If you disable the layer edits your FPS is normal again while sculpting.

It is a “landscape operation” issue I believe, not so much water. You may experience the same on Landmass Plugin.

regarding world partition tool as per url below:

Need help with this in case anyone listening knows anything about it

hi keep getting shutting down and abandoning module trying to convert umap file for ue5 World Partition | Unreal Engine Documentation, any ideas what would cause this, I can’t slow down output, goesby too fast to see much else,a way around this ??

Using this in cmd in windows 10 ue5 2nd v:
UE4Editor.exe C:\Users\neighborlee\Documents\Unreal Projects\Essence_4_25_Ao2 5.0 -run=WorldPartitionConvertCommandlet C:\Users\neighborlee\Documents\Unreal Projects\Essence_4_25_Ao2 5.0\Content\Maps\Output\Output_X0_Y1.umap options -AllowCommandletRendering

UPDATE: I also tried Level Instancing the Water Actors, but that did not work either. :smiley:

2 Likes

I’m still digging into World Partition. I watched one of the Youtubes on the Unreal channel for some clues: New World Building Features | Inside Unreal - YouTube

What I did this time was created a data layer and assigned my landscape streamers into it, saved, closed down then opened back up. Things are working more smoothly, but I have not tried landscaping again for fear of massive lagging. I suspect assigning one quadrant to my landscape per data layer and turning off Lumen may speed things up, but it was pretty heavy operations last time I tried.

No, I was saying that because I actually tried.
I can plop a river down when I have only one tile loaded,
but it’s very VRAM intensive.
My RTX3090 can only handle a single river on a single tile, otherwise VRAM runs out and it becomes a stutter-fest.

Regular RAM usage is in the 40GB area, but I have 128GB available.

yeah, with these specs it might be possible to have what you said
I only tried it with 1070 GTX (8GB VRAM) and 3080 RTX (10GB VRAM) and 64GB RAM

I am going to try your suggestion and report back. You do not need to turn Lumen off however.
Here is a good workaround:


set Shadows quality to LOW, it will make you possible to use Lumen for making your game, yet save your FPS - but be aware things will be a little bit more intense light without proper shadows


UPDATE: @Solarfly - I have tried your approach. It SEEMS TO BE WORKING, BUT: water is not visible.
The landscape terrain sculpt issue with the terrible stutter has been resolved however, the editor no longer freezes.

Can you make the water visible please? :smiley: :smiley: :smiley:


UPDATE 2:
Though placing rivers and lakes works only on one of the data layer proxies, on the second one I could only place lakes, rivers did not appear unfortunately.

There’s a bunch of stuff to read and learn about, HLODs, the distance in your World Partition settings you are rendering actors, actor default visibility and datalayer default visibility when you load in. I haven’t played with that Water plugin yet. How are the rivers generated, are they a mesh/particle effect actor placed somewhere? Maybe wherever the “source” of the river is needs to be loaded on the World Partition? Just guesses here. Glad you’ve got some progress!

Well, I merely tried what you said. There is a WaterMeshActor (automatically placed) that renders the water to be visible - and it was incompatible with multiple landscapes and/or World Composition back in UE4.

(On the other-hand Landmass works perfectly with multiple landscapes… only if we could at least hack water plugin to act like that… multiple landscapes would be a nice solution for me especially with world partition combined.)

I have tried making a “smaller world” and extending it when necessary, but when you extend an existing Landscape your Landmass/Water plugin’s created actors no longer function. I found a related PR: https://github.com/EpicGames/UnrealEngine/pull/8071
This MIGHT fix that issue, however if the landscape size one day grows too big, “extending a smaller world” is not a viable solution either.

I really do not want to go back to my original plan… (Initially I wanted multiple levels, but “inserting them together” is a hell, also making a World Map GUI is hell for that as well… so the “one big world” would be the best solution for geographical geometry reasons…)

… anyway please keep me updated in this thread if you find something. I will if I find something as well, however this thread is a bit of a last ditch resort for myself. I usually fix things for myself without help… :smiley:

1 Like

So after I read your previous reply, I tried the landscape editing tools last night but with DataLayers in place and only one part of the landscape loaded in World Partition. So it seems to me one trick is making sure the land is assigned to DataLayers, saving, exiting Unreal then relaunching. What I did was selected my PlayerStart object and hit F (focus) to jump to that area, then in World Partition I loaded only 5x5 tiles around it. When I used the mesh tools, seemed to work a lot better to be able to edit the terrain. I’m hopeful!

Nice, nice.

Then water & ocean which affects multiple tiles remain as question.

I forgot to mention: most of the issues I’ve encountered during this research are reported to Epic as bugs, though I only got the automatic reply, nothing else.

Just thought I would throw in a couple of things. I can’t get most of the water features to work regardless of UE5 or UE4 as I am using heightmaps from World Creator. Water Custom does work however and I have had some success with that one. On Early Access 2, I have a large terrain created by using tiled heightmaps and have a ~8K terrain that I can load parts of and this is actually working nicely so far. I do have a 3090, 128GB of RAM and 16 Core AMD processor and I can get around 100FPS when I load different parts of my terrain. I really want to get the lake and rivers working properly but they just don’t so far. They are not visible and nothing I do in UE5 makes them show up yet. I can update if you want if I find a solution.

yeah, if you have update on the topic all is welcome


So, more research and testing. A few discoveries! First, the entire terrain has to be set above z>0 as in no part of the terrain should be below z = 0. Second, when I added the water body, it placed the Water Mesh actor at 0,0,0 but I found you can move this to where your water is and it worked for me. Also, playing around with world partition I am loading just a few squares here(18 I think) and hitting over 80 FPS. I am using Ultra Dynamic Sky (Totally Worth It!) and will be adding more Kitbash elements and stuff to create an oasis. So far, it was worth the effort. Something else that I was able to test is that my 16 core AMD processor way out performs the i9 10900K which could barely compile shaders. So I can say that it takes a beast to get here at least for me! Hope this helps some.

Just to weigh in on this. Any performance issues you are running into regarding using landmass blueprints on large landscapes is due to texture memory.

If you have an 8k landscape, that requires an 8k RT for its heightmap to be held for each brush, plus a myriad of other 8k RT’s that need to be held in memory for the brushes to work (used for DF generation and other things). So regardless of how beefy your GPU is, it will always slow to a crawl when holding all that RT data. Remember updating a single 8k RT requires writing 67,108,864 pixels each time, multiply that by the number of RT’s and that’s a huge amount of data to process.

1 Like