It's important that you try to make your level run well without needing a monster PC for just a simple map. I'll give you some tips to keep your map from being unplayable. At the end of this chapter I'll also teach you about Occlusion Culling, and how we can implement it in our custom mission.
Also, while you should take all of these points into account, I do want you to have fun and to be creative when making maps for Orchid Rain. A poor performing map will not be the end of the world. I can also give you some advice in the Discord if you want.
As mentioned in the previous chapter, realtime lights are among the most expensive things, performance wise, that you can have in a game. Specially if they have shadows enabled. Now, this isn't a sacred rule that cannot be broken. You can have multiple shadow emitting lights active and even moving at the same time without a huge performance hit, as long as the rest of that area is simple enough. If you know what you're doing, you can break some rules, of course. But for most cases, it's better to keep your lights baked.
The single worst mistake you can do is to fill your map with realtime lights with shadows enabled. You shouldn't use lights carelessly. As a rule of thumb, when placing a light ask yourself if there's something specific that you want to do with it other than just make a room not be dark. If you come up with nothing, make it baked.
Marking objects as static will help the Unity engine to optimize the treatment it gives them during a play session. If the object won't move, flag it as Static.
It might be tempting to fill a map with tons of NPCs. For many other reason, you might find it better in some cases to not bare your "hand" so often. One of the biggest problems with this is that you might force the engine to do lots of calculations for objects that the player isn't even aware of. The safest thing you can do is put some Area Triggers before the player enters an room with NPCs, so that they will spawn short before the player meets them. If you do this right, everyone will think that your NPCs were there all along since the start of the map.
Have you noted that some games framerates lower when in open areas? The reason is that open areas tend to show a higher number of objects at the same time, while closed areas like corridors usually have lower densities of objects. If you want to do a big room with lots of stuff, pay attention to the framerate. And try to keep areas like that to a moderate minimum.
There's also one more reason why open areas are harder to render. They don't provide as much opportunities to "hide" the stuff that's not being seen by the player's camera. Occlusion Culling is an optimization technique that will determine what objects aren't visible to the player, and subsequently turn those objects off. Unity provides a way to give Occlusion Culling to a scene.
We'll need to open the Occlusion panel. In the top menu, go to Window > Rendering > Occlusion Culling.
This panel works in a similar way to the Lighting panel. Here's you'll see that there's another Bake button. If you've marked all unmovable objects in your level as Static, you can press Bake right now.
When you do that, the appended black window that comes with the Occlusion panel in the bottom-right of the Scene viewport will change mode to Visualize, but it will tell you that you have no camera selected. Let's create one just so we are able to test our Occlusion Culling. Go to GameObject > Camera in the menu bar.
Move and rotate your new camera and see how this affects your scene. Occlusion Culling will try to use your Static objects to determine what can be seen and what not. Going with the default settings will improve performance in your level, but you can also keep refining if you want event more bang for your buck.
Denser occlusion settings might offer better results in some cases, but also could make your level size bigger. After you finish setting Occlusion Culling, delete the camera. You can't have a free floating camera in your map!
You can search for tutorials on Occlusion Culling in YouTube too. There are many resources out there that make learning this stuff pretty easy. Of course, you can go with the default settings and it will only improve performance. Don't forget to rebake the occlusion after your modify your level geometry. In fact, each time you change something in your level, you will have to rebake the NavMesh and the lightmap as well.