0
\$\begingroup\$

I'm working on a 3D game with a large open world. It will naturally need to stream chunks. When you look at existing streaming solutions in the Asset Store, you can see that their approach is building the chunks as Scenes, and then additively load them.

That's fine, but in my mind it seems more logical to create and load the chunks as Addressable Prefabs, or perhaps, as individual AssetBundles. Yet, those assets seem to have been quite deliberate in this design decision. I've tried asking their developers, but their answers have been vaguely secretive as if there's some business logic to protect (e.g. "bundles have limitations").

I have come across this question, where the asker appears to be almost in the same situation: Unity prefab object limitations - however, they seem to be more concerned about the performance impact or the complexity of having thousands of objects inside a prefab (I don't believe this is an issue - to me a scene is virtually a prefab, except it has lightmapping features).


What are the technical differences (if any) between splitting the 3D open world into additively-loaded Scenes, as opposed to splitting the world into Addressable prefabs / AssetBundles?

As mentioned, lightmapping is the only notable difference that comes to my mind. Other than that, is there another technical reason developers appear to deliberately go for additive scene loading that I'm missing?

\$\endgroup\$

1 Answer 1

2
+50
\$\begingroup\$

You can preload scenes, but you cannot preload prefabs. If you are streaming chunks, it will be very useful to preload the chunks you expect to load, and then finalize the load when you are ready. Or unload them if you end up not needing them.

Technically, you can get hacky, and preload prefabs. But that's gross.

Here are some more details on scene preloading: Preload scene in unity

\$\endgroup\$
2
  • \$\begingroup\$ Would the async versions of Addressable loading be functionally equivalent to scene preloading in this case? \$\endgroup\$
    – Saturn
    Aug 2 at 3:12
  • \$\begingroup\$ Hmm...I'm not sure. But probably? \$\endgroup\$
    – Evorlor
    Aug 2 at 3:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .