Apk-expansion files

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.

2 Likes

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.

5 Likes

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?

3 Likes

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?

2 Likes

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

3 Likes

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!

3 Likes

https://www.100tb.com/

100TB of bandwidth for $200 a month. Of course not CDN… but some files you could put onto CloudFlare domain, set it up right, and it would cache it for you on their CDN and you do not pay for bandwidth when they deliver cached copies.

You should check out PlayFab. There is a Defold version.

Incognito and DynamoDB doesn’t have anything to do with the storage of LiveUpdate data does it?

LiveUpdate is the term we’re using for a technique similar to downloadable content, it will not be a general-purpose backend solution. We understand that maintaining a large scale server operation is not ideal for indie developers, and we are putting a lot of effort into designing these kind of systems to be as easy as possible for people to use. We’re looking at the default/basic use case to be uploading files to a server or hosting solution that are capable of serving these files over HTTP(S), no configuration specific to Defold required.

Since you mentioned S3 I took a look at their prices for cloud storage (which can be found at https://aws.amazon.com/s3/pricing/), I looked at their EU Ireland prices.

I’m looking at a worse-case scenario here where no optimization is done in terms of batching, and I’m also assuming that every user has to download all the content and ignoring the possibility to download new content as users progress through the game.

For a game with 500 different resources that requires 500 MiB storage, there would be a fixed cost of $0.0115 and a moving cost of $0.05 per new user.

For a game with 1000 different resources that requires 500 MiB storage, there would be a fixed cost of $0.0115 and a moving cost of $0.055 per new user.

For a game with 500 different resources that requires 1 GiB storage, there would be a fixed cost of $0.023 and a moving cost of $0.095 per new user.

These are of course very basic calculations of price without factoring in retention, major updates etc. A more in-depth analysis of the cost for a small, medium and large game would be very interesting if it would be possible to use numbers from an actual game for these types of variables.

Edit: Realized I mixed up the posts of @seepia and @Aiki while writing this…

1 Like

@britzl yes it’s not related to storage, i mentioned it for completion’s sake.
The thing is, how are you going to handle encryption? you will have the keys saved on your game code?
There a bunch of control problems and incognito is the way to get around that, and you use dynamo as a support for any other info you might require in that process. So it’s not necessary but I thought it was worth mentioning.

@jakob.pogulis
I think what you want is this: http://calculator.s3.amazonaws.com/index.html
These cloud services and their prices are just cryptic.

I mean you can always use your own combination of server/custom solution, it’s just never gonna be as friendly as the alternative that’s built in to google/apple services.

Encryption of what? I feel like we’re not really talking about the same thing here.

@jakob.pogulis You have good calculations there. They might not look big numbers, but just to compare. Our first two products we launched, not financial successful, but still did in average 0.03€ / download. Risk of having even 0.01€ extra cost for a product can make it intolerable for indie developer when amount of downloads goes up. By optimizing the extra usage and by having a good monetizing product makes it almost tolerable, but then in Android you have quite big amount of pirated versions of the game that do not give any money to developer but still loads extra content.

1M downloads -> 0,01€ per download -> 10 000 eur cost. Not every game gets 1M downloads but our first two did 2.5M. That is why I am worried for any extra cost that could be avoidable by using distribution channel services.