Bad practices have been Epic’s norm since the start, particularly when it comes to landscapes.
The new system is just as big of a mess as the old system.
This is mostly due to wanting to add glitter on top of a compromised basis to try and maintain a “competitive” (yet fake) appearence of “being good”.
IF - and thats a big if - they scrapped and re-created the system following the best industry standards, then maybe the glitter on top (think of the water system with rivers or additive layers as the glitter) would serve a purpose and function properly.
If you want to have a look at how to do things better, you - and the epic team themselves - can probably have a look at the procedural generation put together by @MaximeDupart.
There are also a few keypoints that can be mentioned:
-
Overall, the landscape mesh needs to have the same ability to stream as any other mesh. Eg:
At runtime, the culling has to happen per tris not “per landscape component” as it currently does (at least in ue4.27) -
at runtime, the material needs to be baked down and cost next to nothing while preserving the editor capibility.
In all versions of this engine, landscape materials have always been too expensive - to the point that to get 60fps on Kite Demo at 1080p which is literally nothing the landscape material had to re-use the R pin of the base color as a faux opacity over a dedicated texture.
This is wolly due to the way things are managed - if the engine baked down the map layers correctly on publish, then the number of layers one adds wouldn’t negatively impact performance to the point you have to manually bake things and work on 3 different level instances just to get to something you can publish.
It would also not run into the most common problem wouldnt it? Running out of texture samples. -
Runtime sculpt is the required standard. During game play. Not in editor only.
Using voxels obviously; even if enough plugins that make your life better do exist.
The engine itself should just ship with a landscape system that does this out the door, and not require a plugin to do what is a “basic” indy dev requirement.
(One could argue it isn’t an indy requirement, but games that do it well are usually indy games!) -
in engine spherical distortion options:
ESRI standards are standard for a reson. By setting the longitude and latitude you can calculate the needed distortion of a flat height file. This could be done automatically do for any map size stretching across multiple meridians/time zones.
Plus - the unreal system is completely flat, which is an issue in itself when attempting to create something real - like architecture visualization for instance.
Having the landscape actually curve properly via internal systems would already solve all architectural distance visualization issues - for one. -
last and perhaps most important.
The landscape - and water - need to use an adaptive mesh by design.
Not a quad system which is then cut into the messiest and absolutely worst of the industry system for LOD reduction.
Doing this properly would:
A) eliminate the shaded triangles on lanscape which can also be seen in Fortnine - since epic only cares about that.
B) elminate calculation and visual shift issues when transitioning between landscape component LODs.
C) Allow localized analytical based density increase on high inclines, providing a good solution towards creating believeble sand dune environments / cliffs / about a million other natural landscape features.
D) adopt a system which has been the standard for 3d rendering since 2006, in 2022. That alone should be a reminder of just how dated the landacape system acrually is…
Sure, updating the documentation would be useful - but it really isn’t critical when the whole system needs to be overhauled…