DEV Community

Abhishek
Abhishek

Posted on

How to reduce APK size and implement progressive level downloads in Unity for an expanding game?

I’m developing a 3D game in Unity for Android, currently with 56 levels. Initially, with 35 levels, my APK size was about 137 MB, but after adding 21 more levels, it increased to 251 MB. We plan to scale the game up to 1,000 levels, which could result in an APK size of several gigabytes—an impractical situation for users.
Goals:

Keep the APK size below 100 MB.
Implement progressive downloads so that players download levels as they progress.
Ensure future levels can be added without significantly increasing the APK size or requiring large bulk downloads.
Current Setup:

Levels are loaded as prefabs in an array and included in the APK.
No system is currently in place for remote downloads or progressive loading.
Questions:

What methods can I use to manage level content efficiently so players only download levels when needed?
How can I implement Unity Addressables or Asset Bundles to achieve minimalistic and progressive downloads?
What best practices should I follow for hosting and dynamically downloading assets while keeping the user experience smooth?
Considerations:

The solution should be seamless for the player, involving minimal wait times and no overwhelming download prompts.
Ideally, the system should allow adding new levels post-release without requiring users to download the entire APK again.
Any advice, code samples, or resources would be greatly appreciated.

Top comments (0)