Hello,
I am using Apk+Obb file for my Android game. Recently, I updated my game on Google Play and I am noticing it’s downloading whole game again on Update. While, not much changed in my game, just few textures and scripts are added. How users can only update only updated content while update from Google Play?
I played hundreds of Android games and no game download whole game while update. How they done this? Please help me on this.
Thanks.
hello. any help please.
Google Play uses bsdiff for doing delta updates.
Unfortunately (or fortunately) Unity doesn’t really rely on zip compression that .apk files use, but instead Unity compress big assets (you can find them from assets/bin/Data if you extract the .apk) with LZMA or LZ4.
So inside the .apk (.zip) file you have compressed (LZMA or LZ4) assets like sharedassets0.assets.split0, and when you add/remove/modify assets in Unity (like textures) the binary output changes so much (if compared to the original) that diff tools cannot create small patch files.
Since Unity doesn’t support Deterministic builds for APK or OBB files (AFAIK only Asset Bundles support deterministic builds) there really isn’t anything you can do.
Thanks for your reply. But how other companies are doing this? one big example is call of duty mobile which is also built with unity. and as i said, every game i played have this thing. and most of those games are built with unity.
Games that use assets bundles for most of the content do not have this issues since they usually have separate distribution channel for asset bundles.