This is a guest post by Tobiah Zarlez. Enjoy!
It may be rarely emphasized, but putting some thought into how much disk space your game takes may have a direct effect on your mobile app store rank.
How Does File Size Affect Rank?
It boils down to downloads, and more importantly uninstalls.
Downloads
If you have a large file size, you’re imposing an extra “cost to entry” for a player to download your game. If your game is more than 100MBs or if they are trying to save on their data plan, they will have to get access to WiFi. The player must have enough room on their device as well. For large games, this is easily a deal breaker.
For whatever reason, let’s say they cannot download your app at that moment. You’ve just lost a customer. Even if they think to themselves “I’ll get it later,” the nature of people means that the majority will likely forget and never come back.
Uninstalls
Your device’s memory is full, so what’s the first thing you do?
I know from my own experience, and many other mobile device users out there: I go to my app list, sort by size, and delete the largest one. Even if it is my favorite game and I play it all the time, if it is huge, eventually I’m going to uninstall it. The new is always going to be more interesting as a consumer than the old.
A lot of developers just try to get under the cellular download limit and don’t care after that. The larger the game is, the more likely it’ll float to the top of that list, especially if it grows in size after installing.
Why Are Uninstalls Bad for Your Rank?
Every uninstall will harm your business in some way, either directly or indirectly.
The exact formulas for App store rank are unknown, by design, but regardless of which store, downloads are certainly not the only metric they look at. Downloads are important, but those downloads are no good if people uninstall your game. For example, “Active Installs” is the number of people who currently have your game on their device at any given time. Active installs may or may not be more important than downloads, but it is a safe bet that it is probably a significant part of the formula.
If you have in-app purchases or ads within the game, your revenue from that player stops the moment they stop playing your game.
Even if you are a premium pay-in-advance experience, if people uninstall your game you will have have a lot less virality. People are more likely to recommend a game to a friend if they keep playing it themselves. Less active players means fewer recommendations, less likely ratings and reviews, and less interest in the next game a developer releases.
What Should My File Size Be?
The smaller your file size, the better. For mobile platforms you should make your best effort to fit the cellular download limit if possible.
Depending on the player’s carrier, plan, and where they are downloading from, that is somewhere around 100MBs. You may think that sounds like a big number, or you might think that is too small of number. Depending on what you’re doing, it can be easy to fit under it, or very difficult. I see games with complex long-lasting meaningful content that are smaller than that, as well as shallow basic games that for some unknown reason require double or triple.
How Can I Reduce File Size?
The difference of even just 10MBs could be thousands of uninstalls prevented over time. Take the time to audit your game’s assets before shipping it. Can you reduce the file size? It could be worth the extra time and effort.
Here are some ideas to help reduce the size of your app:
Design Your Assets with File Size in Mind
When you’re designing your game, keep in mind what needs a unique asset, what could be generated on the fly, and what doesn’t need to be there at all. That fancy menu border might look great in the concept drawing, but would a simple beveled edge look almost as nice? If so, you’ll end up using way fewer texture files, not to mention reduce work for your artist(s).
Whenever it would look okay, use a repeatable texture rather than a larger image. When you have to have a larger asset, ask yourself if you can break it up into smaller elements. Breaking up images into multiple files has other advantages. For example, it could allow you to add parallax scrolling effects to create the perception of depth.
Generate Assets Dynamically
It makes sense to have different color buttons in different parts of the game, but do you need separate image files for each one? Could you instead have a gray “template” button and recolor it programmatically?
Background music for games can also be a huge hog of disk space. Yet you don’t want the same 30 second loop to repeat over and over and drive players crazy. Try layering your music! Have various 30 to 60 second “base” loops (for example: base/drums) and then randomly layer on 15 to 90 second “tunes” (Ex. guitar/sax/whatever melody) on top. That way, the player will hear a randomly generated “song” each time they play.
The song may have repeating elements, but the unique way it’s streamed together will (hopefully) be good enough to keep the player from getting bored.
Compress Your Assets
Use the compression format that makes the most sense. JPGs are great for heavy compression, although they are notorious for artifacting. PNGs are great for sprites, as they allow transparency. Make note if you’re using PNG-8 or PNG-24. PNG-8 allows for up to 256 different colors, and PNG-24 supports up to 16 million. Do you really need all 16 million colors, or can you make your asset look nice using only 256? It isn’t wrong to use PNG-24, or even PNG-32 if you need per pixel alpha transparency. Just make sure you aren’t using them when a more compressed version would look just as nice.
Also, remember to crush them.
Remove Junk Code
It seems like every advertiser out there wants you to integrate their SDK. “Get set up in five minutes!” they’ll claim. Well, that’s right, but often you aren’t using all the features they offer. You may only end up using one aspect of their framework.
Take the time to go through their SDK and look at what you really need. Can this be simplified? Can whole files and assets be removed if you’re not using them? It’s not uncommon for companies to bundle in lots of stuff even if you don’t need it. If you can, try to cut the fat and remove the parts of the SDK you aren’t using.
Also, consider using ad mediation solution to reduce the number of advertisers SDKs you need to import.
Remove Temporary Files
If your game downloads or generates any files, keep close track of them. When you don’t need them anymore, clean them up!
During development, you will constantly install, uninstall, and reinstall your game. You may not notice the rate certain file(s) grow over time. In the real world, players will likely only install your app once per device they use. You don’t want to accidentally have your game become bloated.
What If I Can’t Reduce My Size?
This isn’t a one stop solution that will solve all your App Store Optimization problems. My goal is to make you think about your file size during your development, and to recommend to take meaningful effort to reduce it.
Gamers can be forgiving for certain types of games, but only if it’s earned by impressive graphics or hours of content. Even then, the bottom line is that the larger you are, the more likely players will uninstall over time.
Next Steps
I hope this article inspired you to think about different ways you can optimize your app store rank without just pouring money on the problem. If you liked it, didn’t like it, or had any questions or comments please, feel free to reach out to me directly! My website and contact information are located below.
Tobiah is a Game Evangelist at Microsoft and an independent game developer from the San Francisco Bay Area. After graduating college, Tobiah co-founded an independent game startup called “Yobonja” with a couple of friends. Over the course of 4 years, they made dozens of games. Their most popular is a physics based puzzle game called “Blast Monkeys”, which was the number one app on Android for 6+ months. The game was downloaded over 12 million times in the first year alone, and people still play it and its sequel today.
Then in 2013, Tobiah started working for Microsoft. As an Evangelist, his job is to speak to developers and teach them about the latest new technologies. His job lets him travel all over the US and help developers make better games and more successful companies. He has spoken in front of thousands of students and professional developers. From Microsoft events and media, to guest lecturing at various colleges and universities, to speaking at professional developer conferences.
Tobiah still makes games on the side through his second company, “PlayPerro.” His focus now is on creating experimental games and interesting interactive experiences. Most recently, his project “#DanceTogether” was a “Big Game Selection” at the IndieCade 2016 game festival.
You can follow him on twitter @TobiahZarlez, read his blog at www.TobiahZ.com, or listen to his podcast Be Indie Now, where he interviews other independent game developers.