Levels In A first person shooter(FPS) Unity3D

Hi I am working on a 3D First person shooter game. For that I need Multiple levels( each one different) and if the player passes the firs level, then player is able to access the next level. How do I go about designing the levels? I know how to design the levels but i dont know how to merge them…

I mean Should I put each level in a different scene? what if I have 165 levels? Guide me plz? I can use assetbundles to keep my 3d models on a server but I cant for the love of God find the solution to designing multiple levels in a game.

I want to make Each level different. each level has different tasks. each level is using the same models but the design of each level is different.

Thankyou.

If you dont want loading screens you need to stream.

edit: you can also do it like Half Life 2 did, but thats a bit outdated

Pretty much.

It would be still 1 scene per level, you’d still need to build all of them yourself.

Also, now you know why shooters with 165 levels are incredibly uncommon (can’t remember even one).
For example, Doom I had 9 maps per episode, and 3 episodes total (with ultimate doom adding one more).
And Doom 2016 only had 13 maps in the campaign.

So what should I do then? I dont think making 165 levels is they way to go.

okay lets rephrase:

lets suppose there are 10 Maps. In each map there are 20 different tasks.

Lets suppose first task is to kill 5 enemies at position e.g {a,b,c,d,e}
second task is to kill 7 enemies at positions {e,f,g,k,z,x,w,b} etc…
third task is to free hostage at at position.
4th task is to kill the sniper hiding in the mountain etc…
and the list goes on and on and on…


How do I randomise the tasks for each map. Okay I get it 10 maps equals to 10 scenes, But in those 10 scenes how do I implement those tasks?? Sorry for bad paraphrasing in the original question.

Nobody really makes shooter games with 165 distinct levels.

The reliable way to do it is to implement ALL possible “quests” and only enable some of them randomly when the map starts. Basically, a “possible quest” can be a GameObject(with “PossibleQuest” ocmponent) whose children will denote possible spawn points, possible areas and so on. People will quickly memorize available quests, though.

The less reliable way is to implement a quest generator which will try to find suitable locations on the map for quest type it is trying to spawn and then generate enemies/items by itself. This would mean more work and it will be more prone to breaking. For example, you could have a quest template like “save [1-3] [hostage] in [area], guarded by [0-5] enemies of [easy, medium or hard] difficulty”. The script would then look for “Area”, place enemies in there, and attempt to place fitting room for hostages. That would mean that you might need to at least mark all possible “event areas” on the map, and on top of that, might need to mark “prisoner cells” in there for hostages. In this case people will still memorize possible patterns, but it will take slightly more time.