Should I split my game environments into scenes or objects?

Hi there! I’m working on a 3D RPG where the environments will be divided into different sections. So for example, there might be a dungeon, and when the player exits through the door, they are now in a forest, which has a path that leads to a beach.

The dungeon, forest, and beach are environmental sections that are instanced (I think that’s the right term). SO it’s not like Breath of the Wild where everything is open and approachable from all sides.

Now my question is;

Should I be using a separate scene for each environmental section?

With a system like this, I was toying with the idea of keeping all of these environmental sections in 1 scene, and simply organizing them in the hierarchy. Turning on and off the sections as needed.

This seems like a much simpler approach to manage than putting each section into a separate scene that ahs to be loaded and unloaded.

The areas are not small, but they aren’t huge either.

I’m not sure what kind of performance impact this method would have, and I guess it depends on a lot of variables, but I would love any tips or opinions on this.

Personally I like the idea of managing the hierarchy in 1 scene versus a bunch (maybe dozens) of different scenes. It just seems like it would be way easier to plug everything in together, and to edit multiple areas back to back.

A lot of it is just tradeoffs:

  • scale of project
  • engineering effort (each way has pros and cons)
  • total CPU burned
  • total disk used to load
  • total memory consumed (disabled stuff takes just as much RAM)
  • organizational preferences

It’s always easier to start with everything in one scene.

But if you diligently organize stuff so it is under larger “area” root GameObjects, then if (or when) it must be split up in the future, it’s a LOT easier to do, even doable with an editor script.

In fact, you could do it all in one scene on your high powered huge-RAM dev machine and as part of your build process slice it into scenes that get additively streamed in according to player location.

1 Like

Thanks! I think I’ll work with one scene now and see where it goes as the project grows, also thanks a ton for the idea of splitting into scenes after the build, I didn’t even know that was possible, sounds pretty cool