What's the best solution for Additively loading terrain segments in an expandable world?

Hey all, I’ve got a number of concerns regarding performance for building open world systems, and although I’m seeing lots of cool tools and nice artwork, all I’m really seeing is beautiful shots of highly detailed segments that are loaded together. Consider something like Breath of the Wild though - there’s no way that map is a single terrain piece loaded together, and yet you can walk over all of it seamlessly.

What is an actual pragmatic, functional way to build and manage something like this? Multiple scenes, each with their own terrain segment? If so, surely there are massive issues with seams? Secondly, LODs for these terrain segments would need to be generated and saved to LOD scenes, I assume? which would probably present even more seam issues?

Conversely, is Unity terrain SO well optimized that a BOTW style base terrain could be loaded into memory in a single scene, with only custom geometry and details loaded additively over top depending on distance? Is there a in-between system that can additively load terrain data in and out of a scene based on your position on a large terrain?

I’m not aware of anyone who has documented a really good, grounded, pragmatic workflow for this kind of thing that actually deals with what I assume are hard problems getting large amounts of content running on low-end systems. Surely this must exist? Can someone point me in the right direction?

You can design your own system using additive scene loading or use one of the readily available solutions. Look at Gaia Pro 2021, SECTR, or World Streamer 2. I am currently using Gaia Pro 2021 in one of my projects to design the large terrain, slice it up, and then automatically load and unload sections at runtime. It works pretty well, and could be used to build an open world game similar in size to Zelda Breath of the Wild.

1 Like

Thanks very much for the comment, I’ll take a look!

For my game Brinefall I use Easy Open World, it is really easy to use and efficient at what it does.

My world is mostly 19Km by 19Km and it’s really smooth, also tested by a lot of players. Here is how it looks in the editor.
Note that I have tested World Streamer, Gaia Pro and SECTR. For me, it was the best solution and the easiest to use.

that’s awesome! thanks for the tip! :smile:

I wrote a blog post a while back on how I approached this: Open World Streaming in Unity - Ardenfall

2 Likes

that’s awesome, thanks Josh!

1 Like