Reuseable "incremental" levels

In our game we are useing the same level multiple times. After a level finished we adding extra meshes to the level, or changing some material etc. Its incremental, so let’s say we add an extra mesh on the 5th level, then it should be shown up all the level after the 5th level. Our first idea was to create a level, and after make a copy of it and it would contains all the previous levels data. But here is the issue, let’s say we have 20 level finished, but we want to add some extra thing to the 5 level, then we need to add the same thing for the following 15 level too one by one, its very time consuming and high bug probability. What is the best sollution to this problem?

Level streaming.

The new meshes etc are in a new map, which gets overlayed onto the current map, and so on.

For instance, when the player is on level 5, you would load the maps for levels 1-4 and then 5 on top.

Basic intro to streaming:

… or:

But you don't have to load them one after another, you can load them one on top of another...

Thanks. I did think about level streaming in a way you mention, but I didn’t thought about the bluprint programming part, I think this is a good sollution. I have only one issue left. Which is let’s say I have something (eg. a mesh) which is there from the first level, but on the fifth level there should be a different mesh on the place where the previous mesh was. I can probably solve the issue with some blueprint spagetti, but is there some built in sollution for that?

I don’t think there’s a built in solution for that, you have to do a bit of blueprinting :slight_smile:

In fact I do this kind of different versions of the same level thing, I do the whole thing with BPs, because there are some parts you can’t do with streaming ( or I couldn’t find out how ).

So both work just fine.

If you’re wondering about the best way to achieve the same sort of thing with actors, you can just write you BP actor so that it can ‘see’ what level it is ( a central var ) and it changes itself or make itself visible / invisible etc. That really reduces the management…

Thank you again. I need both of the sollution actually, I have parts which will be added level by level, and I have parts what are changing after a certain level. So I’ll combine the two sollution.

No worries. Just with programming the BP to only show in certain levels, you can get some really subtle functionality. Especially when you change the level variable without actually changing the map.

I have objects moving all over the place which suddenly are replaced with them in certain positions when I change the level variable. It happens when you look through a particular lens at the level. Would be impossible to do without changing actor visibility based on the variable. Great thing is they can all do this themselves, I don’t have to write some huge clunky piece of ‘control’ code…