The mobile game ecosystem is comprised of all kinds of creators - from a small team hacking away and launching a new game with some friends, to large multinational companies spending up to $14M in production and another $10M in marketing for the next big title; the kinds of games being produced are just as varied as the companies that make them.

While there can be tremendous sophistication with established studios, there are also new indie game devs entering the industry every day whose goal is to take their shot at building a great new title.

Now obviously everyone in the industry wants to make a great game. Level design, character design, story, game economy, and game balance are just some of the things that game devs think about every day. One area that is not as widely discussed is game performance. A visually stunning game that takes too long to load might never get played. Mobile gamers can be notoriously impatient, so special care should be taken to make sure that users on average mobile networks get a good experience.

With that in mind, I thought it would be useful to discuss a few concrete items around your content delivery strategy that you should consider to make your game performance snappier. Depending on your game, there are a few ways you can go here. I've listed a few cases with what I see as pros and cons to each. :

Case 1: All in the App Store

Put the entire app up on the App Store / Play Store. In this case, your entire app is no greater than 100 MB

Pros

Cons

· Platform handles the whole thing
· No additional costs

· Hard to keep below 100MB and add content over time
· Limited to how quickly content can be modified (need to go through an approval cycle with the App store, which while better now, still takes time)
· Players have to download 100MB before they can start playing. This may limit your audience
· Slow or flaky mobile connections may cause the user to never complete the initial download

Case 2: Stub it

Make a small initial download (essentially a 'stub' app) and download the rest of the content on initial launch. Your total app could be any size but the point here is to make the 'stub' as small as possible

· Smaller initial download means an increased likelihood that users will actually install the game.
· You retain the ability to change the content up until the moment the user has actually downloaded it.

· Requiring the rest of the content on initial launch still blocks the player from enjoying your game immediately
· Cost from your origin or CDN regardless of how much the game is played.
· Paid user acquisition will kick in when the user launched the game, so you're paying for users who may not have actually gotten the chance to play
· Slow or flaky mobile connections may cause the user to abandon the game

Case 3: Play it fast with bundles later

Make a small initial download that's playable and enjoyable to a player and download the rest of the content in bundles as the user progresses through the game. This could be as the user advances through the game (every level), for particular content packs (I want the zebra skinned weapons), or other bundle type that makes sense for your game

Pros

Cons

· Smaller initial download means an increased likelihood that users will actually install the game.
· User is able to begin playing immediately
· Cost is spread through the lifetime of the user, so if they only get to level 3, you haven't incurred the cost of them downloading level 4-50
· You can choose if the downloads happen in the background during game play, or at discrete points in the game
· You retain the ability to change the content up until the moment the user has actually downloaded it.

· Thought needs to go into how you slice the game content
· Slow or flaky connections may cause the user to abandon the game

Case 4: Play it fast, get the rest on demand

Make a small initial download that's playable, download the rest of the content as needed as the user progresses through the game. This could be images that load in an in game store as they scroll through the menu, or enemies that are in the section of the map the user is moving towards.

Pros

Cons

· Smaller initial download means an increased likelihood that users will actually install the game.
· User is able to begin playing immediately
· Cost is spread through the lifetime of the user, so if they only get to level 3, you haven't incurred the cost of them downloading level 4-50
· Content downloads happen as the user needs them so it's the most optimal use of resources
· You retain the ability to change the content up until the moment the user has actually downloaded it.

· Slow or flaky connections may cause the user to abandon the game
· This case requires a connection at all times

Whichever strategy works for you, keep in mind that users today are fickle. If they feel that they're waiting too long to play your game, they may leave. This was true on desktop web, it was true on mobile web, and it's true in native mobile apps. I'd encourage you to choose a strategy that fits your game and your audience.