iOS app file size

Hi there. I’m currently finding the right game engine for me, and unreal seems like a really good fit.

My concern is about app file size. I’ve read that it can be pretty big for unreal (~35mb on average per architecture, and since iOS requires both armv7 and arm64, they can be north of 70mb).

70mb+ is pretty big for my uses, and since I’m mainly developing simple endless runners as of now, I don’t think many users will be happy/excited about downloading such a big app for such a small experience. Will this file size be decreased over time? By how much?


Look at unreal 4 trello roadmap. There is hope epic will decrease slightly size of apk, but then they will add more modules to engine so it will grow back to 70mb and beyond.
Unreal is meant to be next gen and they are not focusing on keeping game engine that small, i think under around 200mb for them is fine (or depends when and to what size apple will increase on air file size limit, and Epic may already know this, so they are aiming at that limit).
Currently keeping game under 100mb is tricky to say at least.

Thank you for the honest reply. For me, I think finding a smaller engine/framework would be better and then move onto Unreal when I have bigger needs. For the simple games I make (Pillar Pass/Ring Pass are the two I’ve released), anything over 50mb is a little too much for the average non-hardcore gamer.

Thanks again for your reply!

Potentially, the extra modules could utilize Xcode 7’s new App Thinning ( App Thinning in Xcode - WWDC15 - Videos - Apple Developer ) features which would only load what is needed for the device by tagging what to include.

This also works for resources by simply including a JSON file and a special folder named xcassets that holds the assets that Xcode parses. This xcassets folder could reside within the UE project folder holding all the content (meshes, textures, sprites, etc), and then on building the iOS game, keep this structure which would then load on demand. What would be really interesting is to utilize the LoD features already built within UE that pushes the quality of assets according to platform/device by pushing out that xcassets folder and JSON file that represents the qualities which conforms to the tagging utilized within App Thinning. So, if someone with limited space, data, or an older device (cpu/gpu), the App Store would detect it and only load say LoD1 for meshes and particles. You could even mimic this with textures by naming, texture-0, texture-1 in a folder that corresponds to LoD levels.

You can load levels on demand as well, so everything isn’t front loaded in one go, allowing quicker access to the game on purchase. I think this would go a long ways in customer satisfaction from quick access to content after downloading as well as better user experience overall. The on demand content is cached by the system, so it doesn’t get stored on iCloud either, saving space (and time) everywhere. And then if the user enjoys the game, and is constantly playing it, you can load more levels as needed, but also keeping in mind user restrictions depending on their device. This is all pretty important for ux in my opinion.

That sounds like a brilliant way of dealing with the problem.

Do you know of any tutorials on how to load levels on demand? And when the level is loading is it loading from compressed data on the device or downloading from a server (like Parse for example, although I don’t think Parse supports the Unreal Engine)?