Confused where to start with levels and instancing/streaming

Okay, I’m trying to learn about level streaming and what it is and instances and everything and I cannot find a single video explaining it in simple terms. Basically I’m just trying to figure out what’s usually the norm to use in what scenario and how games in general with different levels are put together.

  1. How do developers package games with a lot of levels all into one project and game

  2. I have a game that has a mini puzzle in it, but the view and stuff is intended to change when the player interacts with it. So should this be a different level or the same level just put somewhere different in the scene???

  3. I know how to load different levels, but not to where when the player exits it, they will be exactly where they were when they activated the puzzle/minigame. which leads into point 4.

  4. When trying to look up how to save games and level progress, I’ve seen how you can save certain variables, but what about saving everything/the overall status of the game?? Like, for bigger games, do they actually save and store each variable of everything like stats and which NPCS you have or haven’t talked to? Or is there a way that multiple things in multiple levels can be saved without having to specify every single one?

1 Like

1 No difference to normal packaging

2 This is not a separate level, it would probably be a view target

3 It’s totally up to you to manage how and when the player appears in the game. There is not fixed way of doing it. Yes, you can save the player location and progress in the save game, but acting on that really depends what sort of level structure you’re using. It’s totally possible to have a multi level game just using ‘open level’, but streaming will give the player a more seamless experience.

4 There is a ‘save game flag’ in objects that can be set, and then used later

But most people just code the actors to save their progress and load it again later. With NPCs etc, they just have to save the fact the player has talked to them, and load it again next time the game runs.

There are a lot of ways of using streaming, but the main ones are

1 Streaming volumes

2 Blueprints

3 Using level instances - specifically here I mean the nodes ‘load streaming level by name ( or reference )’