Why is my Mobile UI based game so slow?

The game is very simple, and is done entirely in the UI, using VERY basic sprites, and the gameplay is simple as well. Its a puzzle game that involves sliding pieces around, like Candy Crush or 2048.

Mobile Preview is fine, but when I launch it on my phone, it is incredibly slow, and not functioning properly.

All of the other answers on how to optimize mobile games involve rendering graphics, lighting, shaders, etc. How is my simple game lagging so much?

In case you’re wondering, I built it in the UI because I needed the uniform grid, as the dimensions of the board can change, so I needed its auto size feature.

what are your project settings like 3d or 2d, scaleable or maximum quality, android settings, render settings etc… if your android device based mali 400 and you are working with Ui which is created in a 3d map, your pfs will go down…

There is many possibilities that can cause FPS dropping. So if you can give more information about your settings, android device or other things (for example have you tried on other android device?), you can get clear answers :slight_smile:

Wait, are you using UMG / Slate to host the game and its logic? This is completely wrong and no wonder why it’s not running properly on the device.

Essentially you are using the wrong tool for the job. UI is not meant for making games, UI is meant for UI. UMG is designed to update small data to show the player. You can’t expect a game engine to run a game in the UI part of the engine and expect it to work like using the rest of the engine as a whole. Use the right tool for the job and your problem will go away.

I’m guessing you’re using bindings to update things in your game? If so this is probably where your performance is getting killed.

Hey guys, I’ve rebuilt the game out of UI and into PaperSprites, but I’m still not getting full framerates, in fact, some parts of the game get lower than 10 Fps.

I am really baffled by this, as I’ve turned off tick events for the things I don’t need until I need them. I do use a lot of the same actor, at one point 49 instances (this is where it gets to 10 fps or lower) but, seeing as none of them are ticking, I don’t see why there is so much lag.

Is there anyother tricks or things I should check to optimize it?

you aren’t giving us much information to go on - i highly recommend you learn more about how to profile your game - Performance and Profiling | Unreal Engine Documentation - there are many youtube videos on this topic as well.

its a complex issue - its critical you fully understand whats going on, you can get guidance through general concepts but really you need to profile your own game and understand that data - everyone does to be successful. it’s worth your investment of time to learn this topic.

there are many things that might be over taxing your CPU, also check the size of your assets, you could perhaps be using too large/complex content not prepared specifically for game use

also check these samples out - I havent gone through them but I get a good feeling they might help you http://ue4resources.com/2d-templates

Hey Willard,

It’s hard to help without know any more information. I’m also doing a game that is purely text/umg based so perhaps I can help.

As SaxonRah mentioned, make sure you’re using binds sparingly. They’re very useful but they tick every frame so don’t have any taxing logic in here. They should literally get a value and if they need to, then a little bit of variable maniplation (such as formatting some text, converting ints to strings, etc).

For all other updates you should really only update them manually when you need to. Use event dispatchers and interfaces to update UI when it needs to be.

What phone are you testing your game on?

Cheers,
Chris