Extremely confusing android cooking types

Hello,

I know a little about texture compression formats, however Packaging menu & Project Launcher are giving me at least 3 different options with weird naming for packaging in all texture formats. Take a look:

Here are two. Android (All) and Android (Multi). What’s the difference? I managed to get the best package size with Android (All), and had been using that one until this day for shipping the game.
Today, however, we decided to start using patches for the game, so I figured that we’ll have to package it via Project Launcher. Here are cooking types it offers:
1.PNG

Again, what’s the difference? At first I thought that “Android” is the same as “Android (All)” in the packaging menu. This does not seem to be the case, as cooked this way apk weighs about 20 mb more than the one cooked with Android (all).

I would appreciate any kind of explanation about these formats and their weird naming.

Hi Lordink,

Android (All) is the same as Android (Multi) with all the checkboxes on. The difference is Multi allows you to choose which formats to include. The Android by itself above should be the same as the Android (All) in the editor menu.

Hi Chris,
Thx for the info, I think I got it now. After some research I chose to pack the game in ETC2. The minimum supported version of Android for my game is 4.4, so AFAIK any device with this OS or later should be able to work with ETC2. Is it a correct assumption, or did I miss something? :slight_smile:

ETC2 is part of OpenGL 3.x which while supported by 4.3 and up, is not required. ETC1 is the only format universally supported. Unfortunately it does not support an compressed alpha channel format so if you do use this format, and need alpha, you’ll need to use 2 textures (one RGB, one alpha) and 2 seperate texture reads if you want compression.

Got it. I am thinking of adding <supports-gl-texture> tag to my manifest to notify GPlay that we only support ETC2.
However, on this page (<supports-gl-texture>  |  Desarrolladores de Android) I have not found this tag’s attribute name for ETC2.
What should I put there?

Upd: I found these tags on the opengl.org page:
OES_compressed_ETC2_RGB8_texture,
OES_compressed_ETC2_sRGB8_texture,
OES_compressed_ETC2_punchthroughA_RGBA8_texture,
OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture,
OES_compressed_ETC2_RGBA8_texture,
OES_compressed_ETC2_sRGB8_alpha8_texture,

I have no idea, which one should I choose for Unreal though.

ETC2 is part of OpenGL 3.0 so you want to use this:


<uses-feature android:glEsVersion="0x00030000" android:required="true" />

instead of 0x00020000. You can do this by using a ManifestRequirementsOverride.txt file in your project’s Build/Android directory. Copy the section from your current manifest (in your project’s Intermediate/Android/APK/AndroidManifest.xml after packaging once) after the


<!-- Requirements -->

line into this file and make the change. Any other packaging will after this will just use the contents of this file for that section.

Great, thank you.