Landscapes vs Static Mesh Terrain

I’ve been trying to do some digging into best practices for creating a terrain in UE5 for use in games, but the more I read the more confused I get. At first I went with the obvious choice of the landscape editor but I ran into performance issues almost immediately, probably a lot due to things I wasn’t doing correctly. However upon further research I’ve discovered many people claiming landscapes are practically unusable if you want to make a large and performant terrain. Same story with the World Partition System, I’ve seen claims that it’s broken and to be avoided.

And so the alternative presented is to use static mesh tiles for your terrain instead, the workflow seems a lot more complex but if you’re actually serious about making a large terrain that performs well in a video game then is this really the way to go?

So I’d like to try and open a discussion on what is the best approach and practices for making a large terrain in UE5. Are landscapes with world partition a viable choice that just require the correct optimisation? Or are static mesh tiles simply the better choice, even if they require extra effort to implement?

What are your experiences with either? What concrete evidence is there to support one over the other? Is there any information available on what professional studios have used in their games?

Theres is nothing to be discussed.
Meshes with world origin shifting is the only way you’ll ever get anywhere past 20km^2.

Can’t you do more size with landscape? Yes, but then you have a 10fps flipbook. Good luck with not getting 0 star reviews on release.

Hm our studio has never tried the static mesh method so I can’t offer a direct comparison, but I can say we used World Partition in the past on a large open-world level with pretty good results. It was definitely a little buggy, especially when handing landscape tiles, but we were able to get above 60 FPS with minimal additional adjustments.

Okay, I see. I’d appreciate if you could point me to any good guides or literature on doing it this way, all I can seem to find are the typical tutorials on using landscape editor, auto-materials etc. The gist of my planned workflow would be something like this,

  1. Create terrain heightmap and splatmaps in Gaea

  2. Further refine and split into tiles in Houdini or Blender (For a roughly 60 km² map, what would be the recommended size of my tiles? And roughly what kind of polycount would I be limiting myself to for each tile?)

  3. Texture in substance painter? (Not exactly sure on the best software or techniques for this, )

  4. Create the collisions (Heightmap collision or triangle?)

  5. Import to UE5 and setup HLODS, LODS, world composition, streaming for the tiles etc. (Would world partition still not be suitable to use even with static mesh terrain?)

Does this seem like a good practice way of doing it? Is there anything I’m missing or wrong about?

Do you recall what size the terrain was? And I assume you’re meaning 60fps on the final packaged game build on at least not crazy powerful specs?

whatver you want.
Usually GIS ans custom work is a much better deal.

Depends on overall size, amount of drawcalls you want dedicated to terrain, and lowest device you wish to support.

Texture from slope maps in gis. Then use whatver to adjust and refine. Ideally producing a single final texture per tile - or at least a way to go from whole to detailed.

Collisions should be basic box shapes as much as possible. But auto-generating collision in anything with X amount of polygons and X amount of verts can also work.
Just try and keep them thick. The thicker the better. Prevents stuff falling thorough.

The engine doesnt work, Hlods have been among that for yeara.
World partition isn’t suitable for anything bigger than a single landacape tile (8km^2)- going from other forum posts. Arguably, not even for that since they post complaining about it?

World composition with level streaming - replace levels with landacape meshes - is probably the only way to go about things that won’t cost you a year of development.

Re the last, honestly no.
Use a different engine and you’ll be much better off.
But if you insist/persist on wanting to make use of Epic’s stuff. Then thats probably the best way to go about it.
Overall, it’s what works for you moreso than what actually works.

See you can even use the compromised landacape, so long as you realize that at the end of the day you need to put the time in to remove it /change it in order to have a succesful launch.
People do much worse, particularly AAA now a days. Epic (unfortunately? Or fortunately?) Isn’t a trend setter when it comes to bad ideas, dei, and screwing people over… Case in point for the month being their illegal and ill-conceived Arbitration TOS changes.
Bet you that you didn’t know they meant Terms of Sh*t when you first read over the TOS… :stuck_out_tongue:

Okay thanks, I’ll take that in. I’ve thought about maybe just going with cry engine, I really hate that I’m forced to use TAA in unreal. But UE is still probably the more attractive option to me for it’s ease of use, blueprint scripting (my C++ skills are pretty lacking) and the high amount of documentation and tutorials for it even if a lot of it seems to be wrong.

Also on this, are you saying I should have say one 4k or whatever texture for the meshes combined that switches on for far away tiles, or is it better to just have one texture per tile and then limit the resolution at certain distances?

One texture per tile - unless you concoct some virtural texturing thing, and with that you only see benefits if your texture is around 8k plus in size…

What you could do for higher detail texture is to emulate the way the landacape paint works in a better way - single texture with mapped color conventions, custom node to filter it out as black/white alpha that you feed directly into the lerp of other textures.

Im not sure how performant that is thoguh. Its probbaly best to highly customize stuff with Decals as it costa a ton less performance wise and provides a more polished look (at the cost of, you know, having to do the work for placing decals).