So I have created a building system where the player left click the starting point and release click at the end point, then actors are spawn in that area. While the system works as intended, the fps drop is too high when there are too many actors spawned. I want to use the building system to build walls and floors so the amount will be a lot. Any alternative way to achieve same result without much performance hit?
If you have many copies of the same piece which will all change together in the same way or not change at all (except for their transforms) then I heard about something called Instanced Static Meshes which perform much better in large numbers than regular static meshes do.
Another idea I have is that it might MAYBE cost less CPU to start an extremely short timer than to spawn a mesh. Maybe you could populate an array of structs where each struct holds the Class of static mesh actor youre using and the transform it will use when it spawns, and every Tick or loop of a timer you could pop the array and spawn the Class it has at that Transform. That way it does one per tick or timer event instead of freezing while it does them all in one tick.
Also might be good to not put collision primitives on those building parts but put a single blocking Volume around the whole range of them that was placed. Assuming these will not be able to be broken into smaller pieces later.
Thank you for the response. Im looking into hierachical instanced static mesh, which I think they can be broken into smaller pieces, which is required for fully flexible building system. I will try the timer method too so the spawning is smoother.