Android OS Version (API Level) ?

Results @ 10.04.2014 :

Q: What minimal Android version / API Level is supported ?
A: we’ve been doing testing with recent APIs like 14/19, but our minimum is still 9, although I’ll admit we aren’t testing compiling with api-9 NDK, etc.
I will definitely try to get QA testing on crusty old OS versions, along with crusty old devices // Josh Adams (Official answer)
A (10.04.2014): I actually got an info that it’s api 9, although the default is 19. // Cube2222

Q: What minimum Hardware required ?
A: No one (even Epic) knows at the moment.
Here is device compatibility page on wiki, where anyone can post results of their subjective tests.
According to this discussion, the only way for us to know which devices is really can run UE4-based applications, is to test by ourselves. No benchmark present at the moment and no data collected.

Officially supported devices are:
Nexus 5 (Qualcomm Adreno 330)
Kindle Fire HDX (Qualcomm Adreno 330)
Samsung Galaxy S4 SGH-I337 (Qualcomm Adreno 320)

Q: Any optimization recommendations for low-tier devices?
A: Niklas.Smedberg said (Official answer):


Original post:

Hello everyone!

I think i read every single thread/page about Android development but still cant understand what is minimal OS support (API level) here.
It is just me or this information really not present anywhere on docs/forums/hub/wiki? Pretty strange, because it is may be very first question what mobile developer asked, since 2.2 - 2.3.7 versions still covering 20% of market (at March 3, 2014).

I have few weeks to decide what engine/framework to use for my next project, which is mobile client what must be connected to dedicated server via tcp-ip (server is stand alone c++ application, not based on UE4) and perform some cpu-intensive simulations based on recieving data + simple unlit 2D visualization. I planned to take a closer look on marmalade framework, but now when UE4 is available i decided to check it first.

Summary:
UE4 is a right choise for 2d sprite only (0 models, 0 lights, 0 post, 0 physics/collision, up to 50 actors with animated sprites + static textured background) applications if we talking about shipping on low-tier 2.2~2.3 devices?
Resulting APK-file size is ok for this?
How much on-device RAM needed to run bare-bones UE4 mobile app?
Has it out-of-box tcp-ip support for mobile apps?

Default Android Manifest at “Engine\Build\Android\Java\AndroidManifest.xml” uses API level (minSdkVersion) 9 (Android 2.3.x). And requires OpenGL ES 2.0 support, of course.

yeey!

So, in best case we can’t hit only ~1% of users. Very promising. Now main question is what minimal hardware needed to run simple 2d project.

Thank you! :o

As my friend was testing you need a min of a iphone 4 and sometime close too that for andriod for any games on mobile, they have got quite a bit too do for mobile too be worthy :frowning:

Your friend tested on example games or create empty project and try to run it? It will be nice if he check on something like “Just a single unlit texture over screen with no action around”, to see how much cpu/gpu/ram used by engine itself (without any actual Game).
Tried to check actual hardware statistics and looks like here is still about 20% devices with poor gpu and 10% with 256 ram.
By the way thanks for your contribution, Meathead! :o

In what market is Android 2.3 (API Level 9) not enough as a minimum requirement? It’s only a minimum requirement, so it will work fine on any Android 3 or Android 4 device too, about 98.8% of the market according to http://developer.android.com/about/dashboards/index.html.

You can certainly make simply 2D content that would run on everything. Check out the Tappy Chicken example game that is included in UE4.

I dont said what this is not enough. I said this is very promissing (good) since only about 1% of actual devices has version less than 2.3.x (based on google statistics). :slight_smile:
And later descussion is only about what is minimal hardware requirements. But no one knows what they (requirements) really is, even Epic. Currently we only can check compatibility by ourselves and post results on wiki.

The device also needs to support OpenGL ES 2, so you can draw graphics. I don’t know any devices that doesn’t support that. With just that, you should be able to run any 2D content like the Tappy Chicken example game on it.

Here is no any information about successful running simple 2D games on low-tier 2.3.x devices.
Only thing what we know for now, is minimum API Level required.
Epic dont give any warranties about running UE4-based applications on any hardware except: Nexus 5, Kindle Fire HDX, Samsung Galaxy S4 SGH-I337.
So if you really run some simple game on 2.3.x device, please share your results on wiki page (or here), it will be very helpful! :o

UE4 doesn’t require anything more. The rest is up to the game. If the game only draws a few triangles, it should be fine. If the game wants to draw 200 million triangles, it may be difficult. The engine doesn’t set any limits on the game, so it’s up to the game developers to create content that would run well on everything.

Some guidelines would be great, though. Like, at what framerate does Tappy Chicken run at on a long list of devices? It would indeed be nice to have a chart for all example projects included in UE4. Another example is the app “Epic Citadel” that was released in the Google Play Store. How does that run on the devices you are targeting?

Again, if you’re already checked by yourself what it is possible to run UE4-based application on 2.3.x device, please share your experience.
We’re talking about pretty big engine, its internal processes definetely will eat some part of hardware resourses. At the moment i not sure (for example) what its possible to run any UE4-application on 256mb RAM device. :slight_smile: I say more, i not even sure what default manifest file is correct, since Epic never said (correct me if i wrong) what they runned engine on Lvl.9 API.

I trying to say, what we currently need a real tests and real numbers. :o Lets stop talking about unapproved officially and unchecked individually things.

Epic Citadel is UE3-based. I checked it only on top-tier devices when its released and forgot (UDK dont have out-of-box android support anyway).

p.s. updated first post, now it containts all information what i collect atm

I don’t think Epic Citadel is worth using for benchmarking purposes, as it’s UE3 based just like Mao says.
Atleast I know that Epic Citadel runs very well on my older devices, whereas UE4 samples do not.

UE4 uses an entirely new method of rendering materials (we now use the full material node graph that you see in the Material Editor). In UE3, we had hand written shaders that were rather limited (we managed to squeak out some pretty decent visuals, but it wasn’t easy, and it was counter-intuitive for most artists/users).

Epic Citadel was doing a lot less on the GPU, for better or worse. That said, things like Tappy Chicken are not doing much either, even in UE4, so have the ability to run on lower devices.

We are going to be focusing more on the lower end devices going forward. However, we are limited by the state of the drivers on the devices, which we are discovering are not all well optimized for this level of content quality. We are and will be working with GPU manufacturers to find ways to maximize performance, hopefully without reducing the quality very much.

I hope this helps explain the differences,
Josh

Hi Josh! Nice to see you here. :o

Its absolutely ok if we do not have UE4 rendering features on, for example, adreno 200.
All we can ask for low-tier devices is low-poly LDR, 2D funtionality and all non-gpu features. In other words, UE4 for low-tier can be more gameplay framework than rendering engine, and it will be pretty enough (in my opinion). :slight_smile:
From that position you can just go forward with new devices and dont waste your time for deprecated ones, as long as we can run at least Tappy_Chicken-like applications (and question of this thread is: “We actually can run them on deprecated hardware and os versions? Minimum requirements for this?”).

Thanks for your attention to our questions! :o

So, we’ve been doing testing with recent APIs like 14/19, but our minimum is still 9, although I’ll admit we aren’t testing compiling with api-9 NDK, etc.

But, yeah, I will definitely try to get QA testing on crusty old OS versions, along with crusty old devices :slight_smile:

Thanks Josh, we will be waiting for results! :o

The main difference between UE3 and UE4 is that we’re using linear fp16 colors now and not gamma-space 8888 colors. Otherwise they should be pretty similar, for simple games that don’t use any post-processing.

There are three ways of doing it in UE4, all with their own performance and compatibility implications. The preferred (and fastest) is to use HDR fp16 render targets, if the device supports that. The second way is to use LDR 8888 render targets with mosaic encoding to contain HDR colors. The third way is to use LDR 8888 render targets with gamma-space colors. Then each shader will do sRGB conversion on read and write instead - manually with ALU instructions (^2 and sort).