Best Practices for Optimizing iPhone Game Performance in Unreal Engine?

Hi everyone,

I’m developing a mobile game for iPhone using Unreal Engine, and I’m running into some performance issues, especially on older models like the iPhone 11 and SE. The game stutters in scenes with high polygon counts or complex particle effects, even after reducing the texture size and quality.

I’m already using Mobile HDR and have adjusted scalability settings, but the performance isn’t where I want it to be. Are there specific optimizations in Unreal Engine that work particularly well for iOS devices?

Also, does anyone have tips for testing on different iPhone models to ensure smooth gameplay across the range? Any help or advice would be greatly appreciated!

Thanks in advance! :blush:

I’ve been doing some more testing and noticed the stuttering is particularly noticeable in scenes with lots of dynamic lighting and animated assets. I’ve tried disabling Mobile HDR, and while it improves performance slightly, it doesn’t fully solve the issue.

Are there any specific settings in Unreal Engine that work better for these scenarios on iOS? Also, I’m wondering if anyone has had success using specific profiling tools to pinpoint bottlenecks.

Would love to hear your thoughts or experiences. Any suggestions would be super helpful! :blush:

Hi @evelyngrace1!

It seems that you’ve already narrowed down the issue- your objects are too high-poly, your VFX systems and dynamic lighting are too complex, and your animated assets are hurting performance.

The solutions here are to reduce poly-count, reduce particle count and shader complexity on your VFX systems, disable dynamic shadows on as many objects and movable/stationary lights as you can, and check your animation blueprints for too many references or any costly on-tick functions.

There are many settings that can be adjusted per-platform or per-scalability level to help you gain performance on lower-end iPhones without sacrificing quality on higher-end devices. Here are some links to investigate some possible methods:

https://dev.epicgames.com/documentation/en-us/unreal-engine/setting-up-per-platform-lods?application_version=5.1
https://dev.epicgames.com/documentation/en-us/unreal-engine/optimizing-lod-screen-size-per-platform-in-unreal-engine?application_version=5.1