How much can be done within one area and layers for a longer game?

if you want a game with multiple levels, and restart the same blend when you fail or for what ever the reason is, then you need libload. It is designed for this in particular. and then you can use loading screens to.

It’s just a matter of making 1 blend with all over and underlay scenes, and a main scene. Then you load in your level.blend into the main scene, once level is done, you call libfree() to remove the loaded blend and then you can load in level2.blend. you can do this unlimmited amount of times. The plus is you just open 1 blend to start, you can then use the hud as an inventory or even the player. This means you can easily use hud information, or data that you want to use in multiple levels, just by putting that data into the hud scene. And while you doing it through libload then save and loading get’s very easy too.

But i know you struggle with python, so i assume that would be a bit to hard to pull of for you. This means the best way for you to do it is by using the game logic brick, level complete then with that brick load the next level.blend.

But to fully use that so you can transfer data from 1 blend to an other you still need a custom save and load for those data.

Of course you can use scenes as levels, the scene brick can switch scenes back and forth. For a small game using scenes as levels is more then enough.