iOS Physics and Particles

Hi everyone,

I’ve made a very basic top-down game where the player shoots small destructible meshes that explode when shot. When they explode they have a particle system spawn for the explosion.

The game looks fine when deployed to PC or Mac, but when I deploy it to my iPhone 4s the destructible meshes don’t fracture/do any physics, and I don’t see any cascade particle effects.

I’ve tried grabbing the config from the mobile optimized Tappy Chicken as stated in:

But I haven’t seen any change. I’m guessing the issue is either an optimization issue or a config setting not being turned on. Any pointers on how to approach these issues would be greatly appreciated, thanks!

I’ve started to answer a few of my own questions so figured I’d share what I’ve found:

First, I came across this document, which helps immensely in overall mobile optimization:
https://docs.unrealengine.com/latest/INT/Platforms/Mobile/index.html

The main takeaways I got from this in respect to my original questions were:

  1. Mobile only supports CPU particle sprites.
  2. Mobile does not have ‘destructible meshes’ listed under the supported assets section.

This would explain why the destruction isn’t working, although I am curious to know if adding support is in the works or if there is a workaround.

As for my particles, I was using the CPU to render them but when I did a ‘Mobile Stats’ test on the material it complained about the BlackBody node, saying “Node not supported in feature level ES2”. I’m guessing I’ll need to come up with another solution for the explosion particle effect.

But if anyone has insight on how to get the BlackBody node or Destructible Meshes to work in a mobile environment, I’d be happy to hear your solution. Thanks!

Sorry for the delay in getting back to you, I have sent a request to one of our engine team members to answer your question. I am not 100% certain which of these features are and are not supported by mobile currently.

Thank you for your patience.

On the BlackBody node, I’m not sure why it’s disabled for ES2. It’s expensive ALU-wise but we typically leave those choices up to the artist. I’ll TTP for us to change that.

On the destructible mesh, I’m not sure offhand. It may be that it is not chunked properly for mobile devices which have limitations on max bone count. That is a workflow we need to improve in UE4. In the meantime you could try setting Compat.MAX_GPUSKIN_BONES=75 in the [SystemSettings] section of your project’s DefaultEngine.ini, and do a clean recook of your game for mobile.

Hope that helps!