UE 5.5 Chaos Destruction

Hi I’m currently creating my buildings for my multiplayer FPS shooter game



And I’m considering using chaos destruction to destroy parts of the buildings. But as of 5.4 I would have to split the building up into different meshes(instanced meshes), but that would create a lot of draw calls, and it’s pretty heavy on perfomance( I only tend to use it if the character ex. has a rocket launcher, so it wouldn’t be something that is occuring a lot in gameplay). And if I decided to import as a single mesh and then only destroy on part of the building, then I guess it would have an effect on the CPU and Memory since it would handle the building as one big geometry-collection.

So I was wondering if the new updates in 5.5 would change that process/optimization.
https://portal.productboard.com/epicgames/1-unreal-engine-public-roadmap/c/1679-chaos-destruction

Basically my question is: Would it still be best to split my building into parts or do you think that using 1 single mesh with the new improved memory and “Root proxy only Custom renderer”/“GeometryCollectionRootProxyRenderer” would be a good option to avoid drawcalls.

Hi,

In that case, I would advise against having too large geometry collection, for large building and if you want detailed destruction , they may be expensive and a single cluster may produce a lot of sub-pieces which will put pressure on the physics solver
Since your buildings seem to be made of repeatable patterns which hopefully are their own meshes ( like the arch door for example ) , I would recommend making a geometry collection per element and still use the root proxy to render them while they are not yet destroyed ( this way you benefit from lumen , LODs and mesh instantiation if needed )

Hope this helps

Hi, thank you for the answer

Yes, they are independent meshes. so interior/exterior walls, arch doors etc.

But I’m afraid that having so many individual meshes for each building would generate to many draw calls, but I guess that’s better than having a single mesh with a very large geometry collection.

So a simplified description would be

  1. a blueprint for one building with separate meshes
  2. create a geometry collection per element/mesh and use the root proxy to render while not destroyed
  3. Use instanced meshes to duplicate the building blueprint in the map

Very simplified, but would that be the best solution?