Advertisement

Making a large Android Game

Started by April 22, 2022 09:41 AM
1 comment, last by hplus0603 2 years, 7 months ago

My game - Into The Dark - https://store.steampowered.com/app/1938330/Into_The_Dark/​ - with downsized textures for mobile and with LZ4 compression is around 6.5 GB for Nintendo Switch.

Now I'm thinking of doing a version for Android.

But the docs https://developer.android.com/guide/playcore/asset-delivery

say that max supported size limit for everything is 2 GB. Much less than 6.5 GB that I have.

What are my options?

Is there any Google/Android secret I'm not aware of? Or am I forced to use a third party hosting solution to store my own files and download them in game? If yes, anyone has any recommendations what's good?

Thanks

As Elon says: “your requirements are dumb, fix your requirements!”

(He says many things of dubious value, but this particular thing is actually good!)

Who will pay for 6.5 GB of data to download your game? Who will have 6.5 GB of space on their phone for your game? And what amount of assets will you be able to create that will require 6.5 GB to look good on a 6" screen? Mobile assets can be much lower resolution than desktop or console assets. Even though a mobile phone might have a 1440p resolution screen, in practice, a 6" screen can't show off much detail in the way that a 1080p 50" TV screen will.

If you somehow have enough of a content creation team that you will meaningfully fill up more than 2 GB of downloaded assets, then, yes, you will have to create a folder in internal storage, and use a content delivery network to cache and deliver the assets, and load them at runtime yourself.

CloudFlare, CloudFront, and Fastly are all fine content delivery networks. S3 is a fine object store for the back end of the files (that you put your CDN in front of.) Making sure that you have a build process that correctly segments and builds packs of related assets (so you don't have 10,000 requests each for one 60-kilobyte texture) is a crucial engineering step, and making sure that you don't re-generate assets that don't need to change (so you don't invalidate your CDN) is also crucial. Lots of work goes into this!

enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement