Android optimisations?

Hi all,

I was wondering if the engine has been optimised for android thus far? I ask because i can run the UE3 citadel app off the google store at 60+fps (on both my Nexus7 2012 and Moto G 16gb) yet when i package a simple UE4 level i get sluggish performance.

the level im testing with is just the top-down camera blueprint level with some BSPs and one additional custom static mesh i imported (3k tris and no textures).

Ive tried turning off mobile HDR, dynamic and static shadows, reduced world shadow resolution to 512^2, disabled pretty much all post processes [via an unbound volume] and used console commands via blueprint to reduce graphic settings (shown in Scalability Reference does not apply to standalone Game - Platform & Builds - Unreal Engine Forums)

Also, ive tested the different texture compression options for the devices and seen no real performance changes.
(the nexus can use DXT and ECT1, moto g uses ECT1/2 and ACT)

Yet, i still get a slight sticking - right now its manageable - but if i add in some bots+shooting effects it’ll turn into a slideshow. Is there anything ive missed? any way to further boost performance, or is this simply a hardware limitation on the devices i have?..

Hello

I also have the same issues. Turning off several optins like hdr, shadows etc. doesnt leads to any performance success.
Did you Solve this Issue ? Or might unity3d better suited for mobile task?

Greetings

Howdy Futo333 and Gygoracdes,

Thank you for reporting this issue of low fps. Are you both using a heavy amount of BSP brushes? BSP brushes are going to lower you fps significantly on a mobile device. We are still currently in the optimizing stages for mobile devices with UE4. BSP brushes are included in that optimization. How you been able to see any significant changes when not using BSPs?

Thanks and have a great day!

Hi Gugoracdes and Sean,

Thanks for the reply! Its been a while since ive played around with android bits (new pc build + practicing with U4 in general since then). But, from what i remember I’d even reduced the scene to 3 (untextured) BSPs and one or two simple lights and was still experiencing the fps-issues, i did however manage to kill the lag (i think) by disabling the lights and making it all run in a weird unlit mode.

Perhaps, when Epic optimises U4 for mobile they can look into how light reacts with BSPs?
Either way, i mothballed my android project, ill reopen it tomorrow and replace the BSPs with static mesh cubes (with simple collision) and see what the performance is like when i test it on the devices and ill post back whether swapping out all bsps in the scene helped significantly.

Hello Sean

Thank you for your reply. I use the firstPerson Template BluePrint. I think that uses bsp. Il try to remove it hrough Meshes. and see what happends.

Hello Community

While I tested the mobile Temple template. It has no BSPs. But the FrameRate is insufficient. So Unity is far better concerning fps, but has lower graphic cabability also.

Has the temple template Complex collisions? Or something that dops down theperformance??

So I want to figure out if UE4 is suited for visualisation on mobiles. It seems not to be…

But futo3333 please tell me if you could eleminate this issue.

Hi all,

I remade my test scene (with all post-processes, etc. turned off as before) and swapping all BSPs with Static meshes does indeed improve performance a little on my Motorola moto G (I did notice some problems with lighting and textures but those are minor and might be due to the texture compression i picked) there are still slight frame skips and stutters however.

With a bit more work i might be able to get it in a playable state as i plan to use low-poly meshes with low res 8-bit esque textures/materials for the game. Ive been doing this test on 4.3, for sake of comparison, ill go onto 4.4 and mock up a small proper level and reply to this in a few days when i do some more tests to see if the new version helps perfomance at all.

To Gugoracdes I think the performance issues can be solved with Unreal 4 on Android as Unreal 3 runs fine on it[at least the showcase does]. I plan to tweak my project some more and move to the new 4.4 version. I suggest you do too if you haven’t already, performance will improve as epic patch the engine … i assume.

To Sean/anyone reading this from Epic’s team; I think the main hit (in this case, for me) to the frame rate has been coming from how lighting is working on mobiles and how it interacts with BSPs, although i cant be sure.

Hey Gygoracdes and futo333,

Thank you for your feedback. I have seen multiple posts and issues lately about lack of mobile optimization. Though we are neither very close, or very far, from where we would like to be, we are working to fix our performance with mobile devices. As stated by fellow developers on this forum thread: Very Disappointing - Mobile - Unreal Engine Forums, UE4 has grown significantly since it first launched.

Thanks for your patience as we continue to optimize mobile performance!

Hi Sean,
Ive made a simple scene in 4.4 with extra gfx options off using some meshes i made, with placeholder textures, and very simple collision. The game runs much quicker on my Moto G now with no noticeable stuttering.

Assuming the performance holds out as i expand the scene, it should be possible to pickup my project where i left off, else ill wait for 4.5.

.

Has this issue been solved ? It has been almost 2 years since last post and I wonder if there has been an improvement on UE4 side for android optimization ?

Because when i set the graphics to lowest and package my project to android, it still builds with high quality graphic. How can I build my project with lowest possible settings ? And can it be done from within UE4 toolbar ? or do i have to mess with gameusersettings.ini etc. as it mentioned some other posts close to this one ?

ProjectSetting>Rendering>Mobile HDR and turn it off

use full rough materials .

use square textures

convert your BSPs to static meshes.

use low poly models, specially for movables (characters)

use precomputed visibility volume(extremely effective)

set a draw distance for each object so they will get invisible in a specified distance(click on object in view port and in details panel search for (draw distance)

avoid using functions on tick event.

use optimization tools with changing the view mode to see expensive areas

this is all I know and do for my android projects and I have a good frame rate with fire and smoke particles on galaxy s5

Hi Saeedc,
Sorry for late response. Mobile HDR is already off , if you chose target hardware as mobile and scalable 2d/3d, it already modifies that options itself.

I’m kinda beginner so i don’t know most of the settings. I’ve tried to enable precomputed visibility but it seems nothing changed. can you explain converting BSPs to static meshes ? (Links also will do)

There are many animated models in the scene i believe they cause the problem.

And the one thing i’m curious, like i said above , adusting graphics to low via UE toolbar > settings > engine scalability settings and low have any effect on the output file ? I mean when we set them the lowest, shouldn’t the project set all the the graphics settings to lowest ?

hi.
adjusting graphics via toolbar has no effect on the output file.

as an experience using precomputed visibility can improve frame rate up to 20 frame. I think you have not enabled it yet. you can go to projects setting > rendering> warn about no precomputed visibility and enable that . that warns you if it is not enabled.

launch your game on your device and use console on four finger tap

then type stat engine

from there you can see the expensive processes

you were right, i had just clicked it on from world settings, when i enable “warn about…” from rendering, it immediately warned me that no precomputed visibility. The scene i’m using hadn’t used precomputed visibility volumes so i added couple of them to cover whole scene. But i don’t know if i’m doing right because i haven’t used it before.

In the editor, It still says “no precomputed visibility” even after i added volumes in the scene.Is it okay or is there another way to add them in the scene ?

should build the scene to get them worked…

after placing volumes and enabling it from world setting

visualize the cells like below. then build your scene

the visualization is for being sure that they are there. then you can disable visualization.

is your game a third person?

I did the four finger taps and wrote “stat engine”, but i don’t know which one is the expensive processes. screenshot is attached.

Yes third person.

I ll get back in couple hours after i select visualize options like you said above and rebuild. ( I need to rebuild it for lightings anyway )

hey saeedc,

precomputed visibility really made a difference like you said, thanks. But I’m having trouble to determine the expensive process. this is last ss with precom. vis. enabled

Game Engine Tick, Redraw Viewports and Frame Sync Time seem to be expensive processes. Any idea how to decrease or close them ?

By the way sorry for time issue it’s been couple of days instead hours :slight_smile:

edit: my device is nexus 4 by the way. Is it too low for development or optimizing can be done as well ?

did you fix the Frame Sync Time issue? it is high on my device too