Dynamically spawned Destructible Meshes with "Form Extended Structures" enabled are extremely expensive

If I dynamically spawn Destructible Meshes, my fps are fine. If I dynamically spawn Destructible Meshes with “Form Extended Structures” enabled and they don’t touch each other, the fps are also fine. But if I dynamically spawn a destructible mesh which touches other destructible meshes, the game thread time goes up to something like between 200ms and 1000ms for multiple frames, depending on how many other DM the newly spawned DM is touching. So the game is basically freezing for some seconds.

This surely is not intended to be so expensive, and if it would be then there should be a warning in the Tooltip that “Form Extended Structures” is not suitable for dynamically spawned DMs.

Yes I know, you don’t care about destructible bugs at the moment because they are “backlogged”, but I still wanted to report this because I hope you might make destructibles a bit more usable in the near time, since they are so awesome and I would really like to use them in my game :slight_smile:

Hi John,

It’s no big secret that improvements need to be made with destructibles. This is why there is a dedicated card on the Trello board for the UE4 Roadmap. Unfortunately destruction just isn’t a big priority at the moment.

I setup a simple scene to spawn a few form extended structure DMs, but I’m not seeing the drop that you’re describing. The drop I do see is related to the number of DMs that are fractured in the scene. This is true for DMs using FES and those that do not have it enabled that I can see.

The test I used spawned in only a handful of meshes that I could destroy and then spawn in again. How many DMs are you spawning in and noticing the performance hit?

Hi Tim!

I have not even tried to apply any damage to the DMs, I only spawn them.

My setup was to create a BP “Spawner” which spawns a DM every 0.2 seconds with a timer. The location of the DM is set to something random between 0 and 2000 in X and Y, Z stays 0. The more DM’s are spawned the higher the probability is that 2 DMs are touching each other. So after some seconds my cpu frame time goes up to something like 500ms and the game basically freezes.

Then I set the random location to be bewteen 0 and 10000 in X and Y, so the probability that 2 spawned DM are next to each other is way lower, and now I can spawn hundreds of them and the cpu frame time stays at like 16ms, until after some time of course there are so many DMs that they start to touch each other again. With a random location range between 0 and 100000 I basically never experience the fps drop, so it’s not related to how many DM I spawn. And with disabled FES the fps also stays fine with a range between 0 and 2000.

Hi John,

Much like you’re other post here, this is going to come down to optimizations that may need to be handled.

Using Async scene may help increase your performance here which you should be able to read about in PhysX documentation.

Also, as I mentioned in the post linked above, we’ve gone ahead and entered a task ticket (UE-16792) to reference the Destruction improvements card on our UE Road Map on Trello. There is no timeline for when this will be worked on as it’s destruction is not a high priority at the moment compared to other tasks that need to be handled.

Thank you!

Tim