About an hour ago an update went live to optimize how our servers and Studio load large levels with tons of Terrain. The optimization is done by letting us skip unnecessary empty regions, but requires some extra information about the terrain to be saved to file.
Expected Behavior
Levels made before today may take up to a few seconds extra time to save the first time you save. In most cases this will not be noticeable, but when tested in a level with a huge 660 million voxels it took about 7 extra seconds the first time you save. Subsequent saves were not any slower.
Levels made after today should be generating data as your build them, so overall should not experience these longer save times.
For the 660 million voxel place, terrain loading time went from 8 seconds to about <1 second.
TLDR:
Overall you may incur a little bit of penalty the first time you save a level with terrain, but it means you should be able to launch the place faster from that point on, in both Studio and as a Server when you publish your game.
Please let me know if you experience anything unexpected!
I believe terrain generated at runtime can be streamed anyway, right? So this wouldn’t be such a big issue. This just affects the speed of loading the existing terrain from a file.
Hmm, the way we save Terrain data itself has not changed. I simply added an extra separate piece of data to help optimize some physics data loading, which was causing slowdown.
If you were experiencing a limit at those dimensions, I don’t think I’ve accomplished anything to ease those limits.
Will we ever expect to see terrain water made into a part? It would help maps like this that have a huge amount of flat water, but need the water physics for gameplay.
We will look into the limitations on large terrain in general soon. We have a big initiative going right now to make large and detailed games possible. Helping people load large places is only the start.
I will try to add this use case as something we look at improving as well.
Nice, that’s a significant improvement. Does the entire terrain load when you are on the games initial loading screen or does it occur as it’s streamed in when Streaming Enabled is on? Does SE change this behavior?
The server loads terrain right away regardless of streaming enabled due to the fact that it needs to know what the terrain is to figure out how to stream it.
Clients using streaming already get smaller chunks of the terrain over time.
Clients not using streaming will load the terrain whole as the loading screen loads, but using a slightly different process from how terrain load works.
This is great to hear. I’ve always felt a bit limited in creating larger games / maps.
My largest complaint is the current terrain tools. They are difficult to use on a large scale. I’ve had to create my own terrain tools (and even my own terrain generator) due to the constraints. Hopefully your team will tackle these issues and similar to help achieve your goal. Can’t wait to see what you do!
This update has brought so much more creative power to world and scene developers, the plethora of ways we can make our games more wholesome now is truly unimaginable. I’m so glad to witness the infancy of smooth terrain grow well into adulthood.