Improving large terrain loading

UPDATE - 3/14/2019
HAPPY PI DAY.
WE LIVE

UPDATE - 3/5/2019

  • Found fix and is in pipeline/QA process.
  • Estimated ship date is 3/14/2019. Aiming for Pi-Day.

UPDATE - 3/4/2019

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!

142 Likes

Does this apply to terrain generated at runtime?

14 Likes

Unfortunately not, this is specific to terrain packed in the .rbxl file you save.

20 Likes

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.

2 Likes

Time to fill in the ocean on some of my maps and see what happens :sunglasses:

22 Likes

I still get the same load times in my maps. I resaved it a few minutes ago just to be sure but it has not changed much for me.

1 Like

You have the latest Studio updated? Also, how long does the place usually take?

When you type print(workspace.Terrain:CountCells()) in the command bar, what does it print out?

1 Like

Does this fix the issue of large terrain not saving? I.e. terrain that’s around 24576 x 24576, with a maximum elevation of 800 studs.

This is a pretty great update and I can already feel the difference made with this update. Good work!

3 Likes

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.

5 Likes

Alright. :frowning:

Was hoping this could potentially solve the problem with saving very large terrain maps.

Loving this update though!

1 Like

This is a fantastic update! - thank you for this feature.

I’ve actually recently made a lot of large terrain maps so this is extremely helpful.

2 Likes

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.

Map is 20,000 x 60 x 20,000, and I’m hitting the limit.

16 Likes

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.

26 Likes

Cool, now massive open world games can load faster!

2 Likes

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?

Thanks

1 Like

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.

2 Likes

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!

7 Likes

Gotcha, I mistook loading to the client for loading on the server in this case. Thanks for the explanation.

1 Like

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.

Thanks once again!

2 Likes

Hmmm. Faster loading times with terrain. Will have to check this out!

(Will update post later with results)

1 Like