Sublevels - Who is actually using them in a team environment to get work done?

Just a quick request to see if anyone is using sublevels in their maps so they can collaborate with other team members. We tried it and eventually reverted back to keeping everything under the Persistent Level. Has anyone utilized sublevels in a project successfully/unsuccessfully? If so, please share. I am curious what we missed.

To be clear, I don’t need a tutorial on sublevels or comments from someone that has never actually used them in a team project.

Thanks in advance.

We use them in our game Insection. It’s a modern 2D platform action game.
Objects involved into game logic (needed by scripts) are kept on separate sublevel, fancy pretty stuff is on another, and so on.

Normally use them, keeping all non-dynamic objects in spatially relevant sublevels so they can marked as static and therefore reloading times are faster. If you have 1 person only touching levels then potentially lumping it all in the persistant will be ok (apart from being a bit sloppy workflow wise) but if any more than 1 person uses a level at a time you’re potentially creating bottle necks for your team. Personally I would never do that, I’ve worked on enough AAA titles to discourage a workflow like that even if I’m only working on a personal prototype - you have to keep your workflow trim and team oriented if you want to be remain part of a team.

So we generally use sub levels for
distinct ENV levels for efficient memory and performance
distinct BP levels for blueprints and dynamic objects like destructibles, pickups and level-design stuff (these roughly align to ENV levels)
NAV meshes (so dynamic nav mesh rebuilding can be switched off by hiding the sub levels and also AI guys and other level designers can adjust nav-relevant objects in isolation)
Cutscenes - so cinematics team can do their thing without interruption or bottlenecks
Same with sounds
Etc, etc

So it depends on your team, task divisions, memory and performance concerns, how you’ve been taught in regards to workflows and keeping everything neat, tidy and compartmentalised.

Here is a short list of things I have encountered when working in sub-levels:

  1. Inability to discern what actors are in what sub-level when looking at all map objects in the World Outliner.
  2. Weird error messages when moving objects from one sub-level to another. Canceling out of the move caused duplicate objects and seemed to mysteriously break settings on lighting, blueprint vars, etc.
  3. Inability for blueprints in a sub-level to communicate with blueprints in the persistent level or the level blueprint.
  4. Lack of Unreal documentation or other entity use cases that showed what our team might be doing wrong.
  5. Abnormal learning curve and general confusion when new developers joined the project. This eventually led to time lost debugging issues caused by sub-levels (or moving objects between sub-levels).

Any of these sound familiar? Were we sub-leveling all wrong?

  1. You can see which actors belong to which levels in the 3d viewport using level colouration mode (show>advanced>level coloration) . Additionally in the world outliner you can change one the “type” column to “level”. or go to view options in the world outliner and show “only in current level” and then select the level you want to audit.
  2. Probably due to relationships you don’t understand yet, one object referencing another (both objects moved at the same time causes no issue generally)
  3. Blueprints can talk talk anything you want, sometimes through an itermediary method (BP in one level talks to any other view the game mode, game state or remote events).
  4. Back in the UE3 days you could learn a lot by looking at the Gears of War example levels. Maybe if it’s possible see how they are doing it in Unreal Tournament - I don’t know how it’s being done there tbh - this is something you pick up bit by bit over time. The documentation might be out there but agree that it’s not obvious so that could be an improvement on epics part.
  5. Hmm, sounds like you need someone there who knows a good workflow and is an effective communicator (no offense if thats supposed to be you - like I said these things take time to learn if you want to understand the why and not just the how)

Believe in subleveling, in a mature project it will save you gallons of tears.