Releasing for Android size workaround?

Hi.

If your package is above 50mb is there any way to split the package up at the moment in order to upload it so it can be downloaded?

Or do we have to wait for official DLC support that will allow us to strip the game to a menu… and then after download the game downloads the content?

Reason for asking is i have a completed game that has 22mb of game content but the android build is above 80mb.

Hi.

Turns out you can just split a game between apk and obb. However automatic downloading of OBB is currently unsupported but i have received feedback from epic that it will most likely be addressed in the 4.8 release.

If anyone is having issues… compressing the package manually sometimes gets your game below 50mb.
Just modify this to fit your project

“D:\Program Files\Epic Games\4.7\Engine\Build\BatchFiles\RunUAT.bat” BuildCookRun -project=“D:\Unreal Projects\ShoppingDay/ShoppingDay.uproject” -noP4 -clientconfig=Shipping -serverconfig=Shipping -rocket -platform=Android_ETC1 -targetplatform=Android -cookflavor=ETC1 -build -cook -map=Level -compressed -pak -pak -stage -package -cmdline=" -Messaging" -addcmdline="-SessionId=3AFB3BE641109EE43B6A2EA6567B2977 -SessionOwner=Tomato -SessionName=‘New Profile 0’" -NoCompile -distribution

Hi Crocopede, maybe a dump question but how would I apply this manual compression? Do I need to add the options as command line parameters in the Project Launcher / UnrealFrontend or maybe execute RunUAT.bat from a cmd?

Update:

Ah I see, adding it in the Additional Cooker Options field of the Project Launcher worked (it failed previously because the parameter -rocket makes some problems on my end). Unfortunately the compression doesn’t result in a smaller package size for me. Thanks anyway.

Hi Crocopede i saw your other post as well i came here to report that the “classic” methods
-Mobile Resources
-and temporary removal of the common and fonts from the engine does work (version 4.7.2 & 4.7.3)

When i also packaged the game only for ETC1 it also helped the size got from 65mb to 36mb

But some more info if you would like to look into it.

1)Removing almost all folders from the Engine/Slate/ folder gave out an additional reduction like ~2mB (34mb)
2)Deleting or removing temporarily the Maps folder from the engine also reduced size for ~1mb (Final 33mb)

I have spent a lot of time looking at the output log and trying to understand the complete logic behind the whole packaging procedure, if you look at the Saved/Cooked of your project you can see what is going for packaging.
And to no surprise there are 2 folders Engine and “Your Project Name”.
“Your Project Name” Folder is simply the content of your project
Engine folder is another 7mb useless (at least mostly).

I cant find an easy way to remove those 7mb but that would lead to 33-7=26mb project much much better…

Edit: Forgot to mention, the engine regardless of what i did was always around 20mb so i should say that for now expecting anything less than YourContent + 20 is impossible.

Thx man. I will definitely considering using this approach.

Back here to report something extra i found as our project suddenly (like a ninja) got huge.

  1. Packaging for different platforms does nothing (DXT = ETC1 = ETC2 etc in size)

  2. No compression is going on anywhere when exploring the apk with 7zip i see a 60mb engine compressed to 20mb and the content (tainted with 7mb of useless engine content everytime) totally uncompressed to the last byte.

3)Cooking ends up in some ridiculous and biffed up .uassets what is an Editor project 848kb texture is 5mb of cooked texture.

Finally if you combine 2 and 3 you can easily see how you project will bloat to infinity and beyond.

Best practice? Make textures as small as you can and try to manipulate them in game for a measly 512x512 texture is a bloated 343kb after the cooking.

Back here to Report again:
One super nice method to reduce the android size even more than my previous answer:
1)Open Project Launcher

2)Add new Custom Launch Profile (name what you like)

3)Project → Navigate to your project.uproject

4)Build the first time (you can disable afterwards)

5)Cook for your texture of choice + localization (ex:en_US) and in additional cook options add the following:
-clean -stage -pak -compressed -prereqs -distribution -nodebuginfo (as is)

6)Package and store locally (The output is your project’s binaries/android/ ignore the .so file)

7)Disable deply and launch (Unless you want to direct test your App but its much much slower just package and manually pass it to your device)