Apk-expansion files


So google play only allows APK that is 50mb or smaller. Any bigger and you have to use something called APK-expansion files, is this something that defold supports at all? And if it does, how should I approach it?
Our project is 120 mb at the moment.



I’d like to second this. I managed to squeeze our project down to exactly 50mb, but it will grow later and we will need this feature.



Turns out we had some music that wasn’t compressed which took up a lot of space. After some optimization with the music and also making graphics the right size (instead of scaling it down with gameobject) we wen’t from 122mb down to 47mb. =)
That being said it would still be nice with some buildin method (like apk-expansion files) for dealing with applications which is bigger then 50mb for android.



We are preparing to release one game with heave assets next year. We will need apk-expansion files to be able to make a release on Android. Is there a way to use apk-expansion files with Defold project?



The limit is now 100MB not 50MB.




Yes the limit has changed, but even 100MB is not enough for us. :slight_smile:



How big is your project? What kinds of files are causing the large size? Have you experimented with webp compression texture profile settings?



We are creating interactive fairytale with large unique images as backgrounds etc. Currently apk size is about 250 MB, without optimizations, but it does not contain all the content yet.



Without optimization you are meaning - are you using webp compression already or not yet? You should target largest size assets and make them use higher levels of compression. My point is even without this feature you can likely get your game down in size enough to publish.



Thanks for the tip. We will check if we can get drastic changes with webp compression. Still would be nice to know if someone has managed to get apk-expansions work with Defold.

Status update:
First try of webp compression ended up in java heap size error. Not yet time to check what we can do for that.



This is still not supported by Defold, but work is done to download additional assets at runtime. @jakob.pogulis knows more.



Yes I do!

We’re working on a new feature called LiveUpdate which will allow users to (1) exclude assets during the bundle step and instead download those assets during runtime at their own discretion, and (2) push updated content to a game. The feature is centered around the use of collection proxies to allow a game to load with only part of the assets present. This will allow developers to ship a game with only a few levels/episodes and then download additional content on demand, which will allow for very small package sizes.

It should be noted that this is an advanced feature which will require hosting of excluded assets and management of cryptographic keys to verify that an update is really coming from the original developer(s). It should be available during Q1 2017 if everything goes according to plan and nothing unexpected shows up.


Everlasting Summer (Defold edition)
Build size. Auto Stripping or manual configuration

Do you think that you could fit a special case for LiveUpdate to bring the data from apk-expansion package instead of hosted server? From game package perspective it is really close to the same. Both are very important features. Little depends on developer which one is priority 1. For us it is apk-expansion :wink:



We are currently not looking into “apk-expansion packages” or “app store hosted content”. These two features would require special integration with each platform and would be very different compared to our current design and approach. Further more they wouldn’t be able to support Desktop or HTML5.

I doubt we would be able to fit either of these features into the LiveUpdate design.

What would you be able to achieve using an APK expansion that you’re worried you wont be able to achieve using LiveUpdate?



With APK expansion the cost of the extra content goes to distribution channel and with LiveUpdate cost comes to me as developer / publisher. I am already paying for distribution channel with their cut 30% of revenues and it would be nice to avoid additional data related cost if possible. Other than that, LiveUpdate is great feature to make it possible to have smaller apk.



I was also interested in this feature, LiveUpdate sounds great, but off-store hosting isn’t a reality for a lot of devs.
Can’t the LiveUpdate system be extended to support “obb” and google’s system?(in the case of apks)
Or maybe another one has to be built that supports the mobiles.

Otherwise what you are essentially saying is that Defold Android games are mostly limited to 100mb(after export), unless the developers are ready to dish out some major cash for server hosting and maintenance. Like you said, its an ‘advanced’ feature. This will likely be a deal breaker for a lot of potential Defold users.

On a side note, for LiveUpdate are you guys gonna be working directly with say Amazon for easy integration with their services?



I think the guys at Defold are doing the right thing by working on something cross platform for their system, it makes sense.

I also agree that the use of iCloud, APK expansion, etc is also needed, but that I guess will start coming once the extension system is in place. Is editor 2.0 holding off a little that extension system?



We are working on the native extension system right now, here’s a teaser



Would it really have to be that expensive? I’m not sure what kind of cloud hosting that would be recommended for this. Amazon S3 maybe? It would be cool if we could provide hosting, but I’m not sure how reasonable that would be. What has been discussed so far? @jakob.pogulis?

1 Like


I did my math once a while back, i think for the first year it’s not that expensive, it could increase depending on what you setup if you are not careful.

Could go from a few dollars(or less) a year to a lot more.
I think the real “cost” would be in your dev time, or in other ppl doing it for you, setting things up.

You would use, S3 for the files, incognito for signups/saveFiles sync and DynamoDB for the db setups.
Dynamo is surprisingly basically free for startups and small studios(low-end consumption), incognito is pretty much the same i think, and S3 is potentially “inexpensive”. That’s going to be a relative term based on how much your game made vs how much you used.

Setting things up is not necessarily simple. I looked up their unity integration in the past, it seemed ok, but this is something they made themselves not third party.

Frankly just the sheer responsibility of accounts(personal information), sign-ups, handling downloads and server times, etc. Will frighten a lot of ppl away form this, hence why built-in solutions are a better solution. Also most “services” that pretend to handle this(back-end), offer way much more than simply “dlcs” and co, and therefore charge a lot more also.

I think if you guys set this up in an easy built-in manner, where gamers would login with their “King(Defold) Accounts” for all games made with Defold, it could work.
Even if you guys charged a very small amount like a few dollars or whatnot an year you could probably make some money off of the storage, not sure about the maintenance costs.

I mean how much is the most advanced and bloated Defold game going to use? 1GB, 500mb? You could max the storage at that. The key thing is how much all the maintenance will cost for you guys. Unity offers unlimited cloud builds, which is potentially more expensive and complex, for free, but they are selling a product, so they have the cash.

Idk really. Someone who knows a lot more than I do has to sit down and really add the numbers, but maybe there is a system that works for you guys and for everyone else.

Either way, seems like native extensions will be a solution for integrating third party services and apis, for ppl who want/need them.
I wish you guys success!