Stuttering in published alpha on android

Hello,

I published my android game on play as alpha, the game is done by using blueprints. The problem is that the game is stuttering on all android devices, at least more or less. The game is quite simple and short side scroller:
*Level Design, not too many box brushes
*On level all texture are on power of two, widget textures are not…
*All materials are unlit
*Mobile HDR is switched off etc.

The problem is that nothing seems to help, and all graphical changes I try won’t affect on android. Not even the console commands through event begin play. I don’t have any mobile starter content at the moment, I removed it after some time. Any ideas what I should try next?

Thanks in advance, meanwhile I’m going to try to implement a leaderboard and ads… giving me some head ache too :slight_smile:

Best regards,

It seems that even when I deleted everything expect my character and ground box brush the frames on galaxy S5 are still between 10…40… :expressionless:

D1me,

Did you go through our documentation for mobile development?

  • [Mobile Game Development][1]
  • [Performance Guidelines for Mobile Devices][2]
  • [Mobile Performance Tips and Tricks][3]

Please make sure you’ve optimized your game for mobile development. I woudl also check out our [Unreal Match 3 documentation][4].

Thanks!

General Mobile Development for Unreal Engine | Unreal Engine 5.1 Documentation
[2]: Performance Guidelines for Mobile Devices in Unreal Engine | Unreal Engine 5.1 Documentation
[3]: https://docs.unrealengine.com/latest/INT/Platforms/Mobile/Performance/TipsAndTricks/index.html
[4]: Sample Game Projects for Unreal Engine | Unreal Engine 5.1 Documentation

Thanks for your reply. On my Samsung Galaxy S5 the frames are somewhere around 30 but there is still some stuttering every once in a while. This picture is from Samsung tablet, the frames are less than 10 all the time and the game is not playable at all.

In the seconds attached picture I have combined some settings so far. It seems that nothing helps to increase the framerate. On my PC the frames are somewhere around 120…110 most of the time.

Textures are from 32x32 to 1024x512. The total size of the game is 53MB. All textures are set unlit, there is no extra light used and shadows should be set to nothing etc etc.

Thanks

Thank you for providing me with this additional information. The settings shown look optimized for Android devices, as does the MobileContentScaleFactor=0.0 as it uses the native resolution for the device.

  • How are you packaging exactly? (provide exact steps)
  • Are you able to reproduce low framerate with another project?
  • Do you have a lot of particle effects in the game?
  • How large is the game?
  • Do you have a screenshot of the [memory stats][1] on the device?

Have you looked at your project with shader complexity mode on? If not, here is [documentation][2] to help guide you. The more red there is, the harder it’ll be for the mobile device to keep up.

If you would like me to take a look at your project, feel free to upload it to your Drive or something similar and provide it to me through a private message on the forums.

Thanks!

Stat Commands in Unreal Engine | Unreal Engine 5.1 Documentation
[2]: Viewport Modes in Unreal Engine | Unreal Engine 5.1 Documentation

.1. How are you packaging exactly? (provide exact steps)

I don’t know much about details, making code really isn’t my area of expertise… but first I just build the project, then I go to “File → Package Project → Android → Android (All)” This is how I packaged the distributed version for android. Normally when I put my upgrades to the phone, I just click build first and then I “launch” it directly to the phone while I’m in the developer mode. So in the normal way I guess… :slight_smile:

.2. Are you able to reproduce low framerate with another project?

In case I open a premade third person template and launch it to my phone, the frames are around 20 on my Galaxy S5, so it is even worse.

.3. Do you have a lot of particle effects in the game?

I am not sure, I think not at all… :expressionless:

.4. How large is the game?

When it is packed and downloaded from play store it’s around 52MB. Once it is installed it is around 120MB.

.5. Do you have a screenshot of the memory stats on the device?

No I don’t, but I can send you a private message.

Thanks!

Hey D1me,

So the first thing I looked at when I opened your project was your baby model. Your baby has 107695 triangles and you’re trying to make a mobile game.

[Skeletal Mesh (Meshes animated via a skeleton) Standards][1]

  • File Format: FBX.
  • Skeleton: All Skeletal Meshes should have a corresponding compatible Skeleton asset. Skeletal Meshes with the same bone hierarchy may share a Skeleton asset, however.
  • Scale: 1 Unreal Unit = 1 centimeter (cm).
  • Origin (pivot): Should be located at a spot convenient for placement. For Skeletal Meshes, this is typically right between the feet.
  • Orientation: All models should have their forward dimension facing in the direction of the positive X-Axis.
  • UV Layout (Texture coordinates): Meshes may use overlapping UV patches to maximize texture usage.
  • Materials: All meshes should have a corresponding Material applied to them.
  • Vertex Normals: If the visual quality of your model requires custom vertex normals (a.k.a. Smoothing Groups), make sure those are exported from your 3D package and that you import them into UE4 when importing your content.
  • ** Vertex Count:** For mobile devices, each mesh should have a maximum of 65,535 vertices. On other platforms, such as PC, you are limited by console and should test accordingly.
  • Collisions: All Skeletal Meshes should have a corresponding Physics Asset. These can be generated during import into UE4. See the Physics Asset Tool documentation for more information.

[Mobile Performance Documentation:][2]

Triangle count of the entire scene should be <=500k for any view. This has been determined to be the poly count needed to hit 30fps on both [iPad4][3] and [iPad Air][4]. This can be seen with stat openglrhi on device, stat d3d11rhi in ES2 previewer on PC.

So I tested your project on a and a Samsung Galaxy S5. On the Nexus, FPS ranges were 23 - 25. On the S5, the FPS ranges were between 40 and 60. The Nexus is on 6.0.1 and the S5 is on 5.0.0 Android Version.

I would highly suggest lowering the triangles on the fbx model in the very least. Make sure that your device has enough space on it and make sure tons of apps aren’t opened while you’re testing either.

Let me know how this information works out for you!

FBX Content Pipeline | Unreal Engine 5.1 Documentation
[2]: Performance Guidelines for Mobile Devices in Unreal Engine | Unreal Engine 5.1 Documentation
[3]: Apple iPad 4 Wi-Fi + Cellular - Full tablet specifications
[4]: Apple iPad Air - Full tablet specifications

I used MakeHuman to create the character. There really was more than 100k triangles… :smiley: I reduced the amount of triangles to 6528 and now the game is running really smoothly. Also frames increased to 60 on my Galaxy S5.

Thanks for the tip!! :slight_smile:

You’re welcome. :slight_smile: