I'm not really at a point where I can experiment with this myself, but something I hear consistently is that you can yield optimization benefits in the engine by grouping objects together into a single draw call.
To me this raises the question of: taking this to the limit, if you grouped absolutely everything you've got into a singular draw call, what would the consequences be?
I'm not fully across the ins and outs of draw calls in the first place, but I'm guessing it would mean that absolutely everything would be forced to be drawn behind the scenes whether you're looking at it or not, which sounds bad. Is the optimal approach for to make draw call groups out of objects a player is likely to be simultaneously looking at, i.e. the objects in a particular room?
Replies
The main drawback I think would be that everything had to use one base level material so if you wanted things like alpha sorting or skinning it'd have to be done to everything (whether it was actually used or not)
You can still cull objects prior to them being rendered and you can use different textures on objects (with texture arrays)
Theres plenty of lower level stuff to do with how data is organised and passed around that I don't understand - some of it may mean it's impossible to do everything in one hit.
Most engines, including UE4, have some help for this. They have systems for have individual assets all placed around willy nilly but when the user is far enough away they combine into a pre-baked version that has been reduced in complexity and draw calls. In Unreal this is called the Hierarchical Level of Detail (HLOD) and is saved per map, not as assets.
https://docs.unrealengine.com/en-us/Engine/HLOD
Unreal also has an actor merging function that can created a combined, cleaned up version of your meshes. I've used this to build a blueprint full of meshes then combined them into one. At long distances i hide the multiple mesh components and show the combined one.
https://docs.unrealengine.com/en-us/Engine/Actors/Merging