For our roguelike shooter we have decided to develop one large level. Initially we thought only about how it helps us to implement different gameplay elemens and fully ignored any potential problems.
Screenshots above clearly show that this level contains a lot of geometry. From the beginning our teammate used only the baked lighting but this approach started to show its drawbacks very soon (long light building time, shadows seams, etc.).
We solved this problem using dynamic lighting (shadows disabled). Though FPS counter reduced its value a bit everything else run pretty smoothly.
One way we have already tried to improve FPS was using instanced static meshes components which are generated by custom blueprint for buildings. It is very simple and yet very flexible.
The other was is converting many static meshes into one large static mesh using default UE4 merge tool.
UE4 provides built-in way to stream levels. Maybe we will use it further if FPS will not be good for us but for now level is almost ready.
Feel free to share your thoughts!
P.S. Or how you did optimization stuff since it is always interesting topic :)
Large map world is big desire for each developer in latest days.
That certainly does not come without price - performance loss issues. One way to solve it you are already described in this article, by merging several static meshes into one larger mesh. But that also only work to certain limit.
UE4 built in streaming of level with various degree of details might be reasonable solution. That however have it's own drawback. You need to create same meshes at least triple time more, to have meshes for each level of detail that will be loaded trough stream process. Not suitable for small indie team much.
Other company wrote nice article how they solved additional workload for various level of details. It poped up on moddb several days ago: Moddb.com
And here is tool that they used: Instalod.io
Oh we missed your comment :( Thank you for useful links! Yeah the way we solved some issues are not silver bullet way indeed. There are more things to try.
No worries, I have missed your reply too :)
I'm glad if I was able to help.