Bad performance

Hi,

I’ve tried both Tappy Chicken and Swing Ninja on my Samsung Galaxy Nexus. I know, I know, it’s two years old.
But it’s the phone I use for establishing a base-line.
Anyway, both samples work, but they are choppy. In Swing Ninja, the character also moves in a sickening wavy motion that’s not present when playing the game in the editor.

I really hadn’t expected this sort of (lack of) performance in UE4 for android… Especially not for these simple 2D samples.
I’m comparing this to what I can get my phone to do in Unity without breaking a sweat, and there’s such a big difference! I would have thought that UE4 would be the more optimized engine, not the other way around.
In unity I get my phone to display over 100k verts (215 drawcalls) with cubemaps for reflections and what not without a problem.

If I create a new project, and create just a simple box in the level with as simple material as I can find, I get about 3-4 fps on my phone when navigating with the FPS controls that comes with UE4. That’s with all eye-candy that I can find turned off. No reflective materials, no mobile HDR, no post-effects, only one static light.

Sure, I don’t have an actual counter on-screen, but it’s pretty much stop-motion movement. And there’s also duplicates of all geometry visible when moving, it seems like som sort of motion-blur gone bad.

Please tell me that this is not expected behaviour. I get it that high visual fidelity might be very taxing on mobiles in UE4, but I don’t even get that fidelity.
If I use all eye-candy that’s turned on as default on one of the sample-projects, I still get the same fps as without it, but I don’t see any reflections or other effects on my phone. It’s just different shades of gray for different materials. And I use the correct texture compression for my phone.

Anyway, I’m stopping this rant now. All I want to say is that this is nowhere near what I had expected since playing with Epic Citadel for Android. I really hope that the situation will be better once you’ve finished optimizing drivers and what not for android, but right now I see no use in using UE4 for my android development.

Quoted from register page

In other words, if you want to make a UE4 android game it’s fine to start working on it now(and you should) but you shouldn’t expect production quality just yet.

I tried them both on my android Samsung note 2 and they both run very smooth. Have you read the docs about android https://docs.unrealengine.com/latest/INT/Platforms/Android/DeviceCompatibility/index.html

@Vade: I’ve read that, and I understand. But I won’t start a large project in an engine without knowing that at the end of my dev cycle, performance will be satisfactory. I need a little more confidence than that. Just a pointer about what device compatibility and performance will be expected when UE4 is polished would be fine.

@Meathead: That’s good, but as I said I’m establishing a base-line for my project. I know that I want to support the kind of device that I’ve tested on, and if that won’t be possible with UE4 then I’ll keep using Unity instead which does have a satisfactory performance on my lowest-spec devices.

They both run smoothly for me on Nexus 5

I can see why you wanted to switch from Unity too UT4, I also have made that switch but my target are phones that are only about a year or year and half old. Most people upgrade their phones each year or 2. Have you got another phone to test on?

I have other devices that are newer. But my main concern is that this shows that UE seems to have a larger overhead for android than Unity has. And in the end, that means less room for bling on a given device. I can get the visuals up to par on Unity by using advanced shaders and other tricks, so for me UE is not delivering anything new to the table. I just want to know if this situation will persist, or if the performance on android will become better as time goes by.
It’s never hard to get beautiful visuals when you can play with the latest hardware, the hard part is getting the most possible performance out of slightly older devices.

Yea that is true, I got sick of Unity being half done their UI system it was shocking for mobile performance along with half done jobs and having to buy plugins to get things working then having to learn them :stuck_out_tongue: I am not a programmer but I know the basics. I would say UT will be out to deliver for mobile and update a lot :slight_smile: Why else did you release it right next to Unity 5 :stuck_out_tongue:

I do like the one click build and run feature along with auto change import for input touches. Unity just started too give us that in there example scenes.

.Meathead

Hmm, tried running the mobile temple on my Nexus 7 (2012 with Tegra 3)… Just got a black screen.
So my nexus phone with PowerVR SGX540 is unable to run UE properly, and my Nexus 7 too.
I know those GPU:s arent mentioned in the compatibility page, but will they ever work or are they simply too old to put any effort on for the devs?

On a side-note, whats the best phone right now for a proper experience with UE?
The Nexus 5 with Adreno 330, or something else?
I’m thinking about getting another phone for testing purposes, both for UE and Unity, so it wouldn’t hurt to get the ‘right’ one.

And I’d like to thank all of those who have replied in this thread. I might have come off as a bit harsh in my replies to you, and if so I apologize. I’ve clearly had too high initial expectations on UE since playing with Epic Citadel from UE3.
I realize that it’s not a finished product yet, and I really welcome UE:s initiative of giving Unity some competition for indie devs!

For this initial launch, the most recent Nexus5 and the GalaxyS4 are the only devices that we have done regular testing on, so that is where you will find the most consistent experience right now. Android support is still something that we’re actively working on, and we are planning to expand our list of tested devices as we move forward.

I have a question about things not showing up right on android. With the latest strategy game that took 30 mins too bake there is no text on the menu screen and the gold coin things you get done update, I will test this later on my iphone.

Thank’s a lot for that info! A quick question; is there reason to expect performance to go up on android further down the line, or should I expect performance (on for example the Nexus 5) to stay the same but with more devices being supported?

As noted on our Android Compatibility documentation, we’re actively working with Qualcomm on new drivers for the Nexus5 to improve performance. I can’t speculate as to when they will release those drivers to the public. Our platform and rendering teams are actively working on both ensuring good performance on our supported devices and broadening the number of devices that we can support.

Sounds great, Its a good start too mobile for developers who want to make something with UE4. As this engine is more for the high end games and such I am happy that it has moved a bit more to mobile.

You can expect performance to improve on Android over time as we expand the devices we support. We chose to focus on Adreno 320 and 330 GPUs first as they are quite popular in North America. We also wanted to choose an architecture other than PowerVR which already receives a lot of attention from us due to our iOS support.

In addition to optimizing our engine, we also work closely with IHVs on driver improvements that will allow developers to squeeze even more out of mobile hardware. As an example, in the run up to GDC we worked closely with Qualcomm to optimize our Soul mobile graphics demo on Nexus 5. Through a combination of engine and driver improvements we were able to improve perf by about 2.5x-3x! You already have most of the engine improvements. Because many users don’t (or can’t) update their drivers, the driver improvements won’t do much for existing phones in the market but that work is really important for pushing the industry forward.

I’ve added a page to our wiki for all of you to add devices you are trying to run on and report your experiences. This will let us (and the community, for those adventurous coders out there!) know which devices you care about and should spend time fixing bugs and optimizing.

Also, at a high level I find the performance tiers section of our mobile documentation crucial for those developing mobile titles. If you need to reach every phone UE4 can possibly run on you should use the LDR tier. If you want to reach a large number of devices and take advantage of some lighting features, use the basic lighting tier. If you want to be on the bleeding edge of mobile graphics or if your project will have a long dev cycle and you’re ok with requiring iPhone5S go for full HDR and create something truly mind blowing!

– Penwarden, Lead Graphics Programmer, Epic Games

This all sounds very promising! I’ve ordered a Nexus 5 to use for my further testing with UE.
You have a lot going for you besides the very advantageous price and stunning visual quality, especially your attention to users and a very active development.

Meathead, could you post this on AnswerHub along with the device you’re trying to run on? That way we can track the issue in our bug database and know where to notify you if progress is made on resolving the bug. Thanks!

Thanks Kreout! I’ve been having fun seeing what folks are doing with the tech. :slight_smile:

Hi !

I thought about creating same page few days ago (when started my topic about os and hardware support). Its very right beginning. :o
But i decide not trying to do it, because i dont have something to give people for testing.
I think the best way to check performance on wide range of devices is to create benchmark with clear instructions and semi-automated result output.
Its ok to read “device_name works fine!”, but much more useful to see something like:

Samsung GT-N7000 (Samsung Exynos 4210 (1400MHz * 2), Mali-400 MP, 1024 RAM):
Screen resolution : X x Y
OS version: x.x.x (e.g. 4.1.2)
± Driver version: ??? (not sure about this, but reading about your work with Qualcomm, looks like driver version is really important thing)
LDR: results (e.g. not supported at all ; graphical artifacts, fps : min/max/avrg, cpu usage : min/max/avrg, gpu usage : min/max/avrg, + output per-frame data to [manually] create graphs and find bottlenecks)
Basic lightning: results
Full HDR: results

“Clear instructions” must be step-by-step guide about how to setup and run benchmark, where to find results for posting to wiki. If straight instructions not present, someone can check in debug mode, someone in release, someone with enabled eco mode on his device and so on.

Well, i never work on benchmarks so i can have pretty naive vision of all of this. But i think you’ve got an idea. It will be awesome if Epic prepare some application for testing, because individuals may not have time to create optimized benchmark with wide range of graphical features (2d/3d, scenes with different lightning / post / etc to cover most possible cases).

Those are great ideas Mao, something I’ve been thinking about as well. I wanted to start gathering information sooner rather than later even if it is subjective though. We don’t have benchmarking content ready and I don’t know when or if it will be.