First of all, I read it https://docs.unrealengine.com/latest/INT/Platforms/Android/ReducingAPKSize/index.html#removingunusedcontent
It helped me reduce the size from 79MB to 37MB but it still so big.
Let me explain why.
I have made an application for Android. I have used blank project with no starter content. The only content I have now is one blueprint, two widgets and three photos with a total size of 700kB. It’s all! So how is that possible that so small app, with no contents, no map with sun and sky, only with simple UI, with all unneeded plugins unabled is still so big? What else can I do to reduce it?
Morover, installed on the phone it has 116MB!!
This has been a large complaint when it comes to UE4 and mobile development. Allot of that size is engine resources, and IMO it makes Unreal not-so-great for mobile development at the moment. I know there is a thread somewhere around here on reducing that size, but I’ve never accomplished getting a decent file size for mobile.
Indeed fighting package size is quite discouraging. Unreal engine eats like 90mb out of the box. So what is left for game is about 10mb.
well, good thing WiFi and 4G are fast nowadays, and a lot of folks have unlimited data plans. That being said, smaller build size would be always welcomed, Epic.
That’s sort of irrelevant, really. Google Play only allows .apk files that are less than 100mb in size.
Oh, didn’t know that
Isn’t Match 3 game, made with UE4, on Play store ?
I am sure you can have a launcher app on app store that downloads your entire 10Gb UE4 game from some CDN. This would be a workaround for 100Mb size limit.
One approach I have seen taken is for the game to download the resources after being installed.
Less than ideal - but sometimes the only option.
Problem is that not everybody has new phones or devices, and most of devices have quite limited storage or are filled up to max.
People are deleting content from their phones to download your app. Because its size (100mb) they expect decent game. And instead they get tappy birds, because all that space went into some unused engine assets.
Believe or not buy many of my friends have old android devices and of course old android devices have VERY little storage capacity. So my friends already used most of it for apps, games, and mostly music. So their not gonna waste their very little storage space on a 37 to 100 mb app. It was very unfortunate that Unreal didn’t focus much on android on 4.11. I honesty was expecting Interstitial ads and reducing more storage space on apps. I guess I have to cross figures for 4.12 :(.
UE4 is the next-gen engine with Metal and Vulkan support. This is the future. UE4 is not for low-end. Current hi-end devices will be low-end devices very soon so current low-end aren’t so significant.
Instead of removing unnecessary code/assets, lets wait for new phones devices, yeah sounds about right.
Yes, because Epic thinks long-term and mobile is closer and closer to consoles so in the future it doesn’t make sense to separate mobile, consoles and PC.
Consoles are 2nd after desktops, which are also accelerating forward and will always be ahead of smaller devices.
I don’t blame EPIC though, UE4 is not meant to be used for 2d games, it wasn’t built for it.
They could however build a 2d renderer that uses blueprints, 2d shadows…etc otherwise it’s just a gimmick (like their HTML5 approach)
I wish Play Store lifted 100Mb apk limit already :rolleyes:
During the development of Unreal Match 3 I put together a document that goes over how to reduce the size of your packaged game for Android. Here is a link to the document I am talking about.
Please have a look at that and let us know if that helps or not.
[MENTION=868]Sam Deiter[/MENTION]: It seems to be a quite useful doc! (although I haven’t followed it yet in practice :o )
I just wonder what happens if the game packaged into ~500Mb game? (just because it has a lot of content or higher quality content for top smartphones or both)
How would you recommend getting a large apk to Play Store ?
UE4 supports downloading the OBB file from the Google Play store. OBB files are allowed up to 2 GiB.
If you want a small game, write your own code, or use a small engine like Gameplay or whatever.
Unreal Engine, the engine itself, has significant size, because it includes code and resources for a bunch of features, that you may or may not currently be using.
Unreal build generally like a large monolith, and cutting out the bits that YOU don’t use, is often somewhat hard.
The good news is that, as your game grows, and uses more features, you won’t have to pay extra for those features, because they’re already part of the engine.
Finally, as Chris said, UE now supports OBB files, and the default Android build does generate an OBB for any bigger resources you use.
And, in current version, it even downloads the OBB for you
Another way to look at this: If you’re not planning on making at least a 200 MB game, targeting high-end devices, then why are you using Unreal Engine?
The UE4 binary, like the Unity binary, contains many features that your game may or may not use. Those aren’t assets: it’s compiled native code. You can trim down some of them on CPP projects by adding some settings to the Engine.ini (check Tappy Chicken for reference), but you’ll never get the executable itself below 20MBs as it is. Some features could be modified to be opt-out in future versions (Landscape, AI, navigation), but I don’t expect that to bring down the executable size too much.
It also helps to have a reference frame. Did you check how big are games similar to the one you’re making? If you’re making 3D games, there isn’t much you can do unless you are willing to invest into writing your own tech. For purely 2D games, using a dedicated engine for 2D games like Cocos or Defold is preferable, since their executables are obviously going to have less stuff packed in.