I’ve survived on a computer with an 128 GB SSD for about 10 years without ever running out of space on it. My iPad Air 4, on the other hand, is the base model with 64 GB and I find myself installing and uninstalling games daily in order to try new ones. Whenever I want to play Genshin Impact I have to remove Divinity 2 and XCOM from my game roster. What gives? Why do mobile games take up so much space?
Your Answer Upfront:
Mobile games are built from hundreds of different asset files like textures, meshes and sound files that take up space on your phone’s or tablet’s internal storage. The more complex and detailed a game is, the more and higher resolution files it needs. With hundreds of different assets each occupying various amounts of storage you can end up with games that eat up tens of gigabytes of space on your internal storage.
In this article we’re going to look at the anatomy of a game, go over all the assets (textures, models, sound effects, etc.) that make up a game and explain how they all add up to the tens of gigabytes of data on your internal storage. After that we’ll try and answer common questions regarding mobile games and how they affect your phone’s or tablet’s internal storage.
Anatomy of a Game – From Code to Assets (With Examples)
I’m a game designer and programmer and most of my business relies on making games and tools for clients, usually publishers or other game developers. A few times a year I work on my own independent games, some of them for this blog as case study materials to help developers and readers interested in game development.
Since I’m now working on two other games for this blog, one for another case study and one to be released in the summer as an official BSG game for you to play, I decided to use them as materials for this post and talk about the assets used inside of the game. Before we talk about the games, let’s go over what I mean by assets.
What are the assets that games use?
Assets, in short, are anything that a game needs to be built and run. They vary from standard textures, to 3D models, to sprites, particles, effects and game and logic data. In short, you can think of assets as “Files” with a specific, given, purpose.
Assets live on your storage device. When a game is built and installed they are part of the game. Together with the game’s code they take up space on your phone or tablet’s internal storage. When you start a game (or any app) the assets are loaded from storage into memory where they can be accessed really fast and displayed on your screen. Let’s go over the types of assets I mentioned previously.
- Meshes
- They contain data about vertexes and faces. The easiest way for you to think of a 3D model mesh is as a empty gray billboard. You can see it’s shape, size, angles, curves.
- Textures
- Textures are images and contain color and pixel data. Think of the McDonald’s logo with the yellow M on a red background. Think of the logo of a texture and keep it in mind for the next asset.
- Materials
- Materials are used to bind some textures to 3D meshes and contain data on how that texture should be applied and rendered. We mentioned 3D meshes before. Think of a gray empty billboard. Now the material has a texture reference. Let’s use the McDonald’s logo analogy. We can take the logo texture and put it over the billboard and now we’ll have a billboard with a red background and a yellow M on it.
- Shaders
- Shaders tell the GPU how to render a 3D model (mesh + material info + texture). You can think of a shader as a cooking book recipe illustrating the steps of what the GPU should do with that data. And the GPU goes over the recipe every single time the screen is drawn on.
- Particles and effects
- Models + Materials + Textures + Code allows you to create particles and effects. Imagine having multiple small meshes with red and yellow color data. Together with code you can turn them into a flame effect. We call the multitude of little meshes and textures used this way particles and, by using them, we can make multiple effects: from explosions to a health regeneration effect they’re all mostly particles.
- Music and sound files
- Music and sound files are exactly what the name implies. Files that contain audio data, some of it compressed, some of it not. Uncompressed sound files take up a ton of space. Normally developers compress them as much as possible but the caveat is, if extreme compression is used the game might not run very well on devices with a slow processor.
- If a developer wants to optimize a game to run on really low end devices they might ship the game with uncompressed music and audio files with the downside being that said app will take a lot more space on your storage.
- Game Data and Logic Data (scripts)
- This is basically the code that binds together all the above assets to tell your device how the game should behave. It takes the 3D meshes and textures of the fire effect we mentioned earlier and it tells the computer/phone that when the rocket 3D model intersects with the car 3D model it should stop rendering the rocket 3D model and render the flame particle effects.
Assets Being Used In A Game
Let’s look at all the assets above in action in a game I’m working on for this blog. Look at the video bellow and then I’ll break it down into all the components mentioned above and look at how much space each component can take.
The reason I chose this game as a demonstration is because it’s simple and uses a mix of both textures and 3D models to render the entire scene. It’s basically a re-make of 1980’s Outrun racing game for 8bit computers and the way the game is rendered on modern devices is pretty similar to the original. Let’s break down the video above in a single frame and highlight some of the elements used.

The blue car we control is a 3D mesh. Using a material and a simple color texture we can take it from a collection of points and lines to a filled 3D model.

See the gray car in the first image? It’s the same car model as the blue car but instead of using the blue areas of the texture above, we use the gray ones to give it the gray color. In the the early days developers used tricks like this to save space, instead of loading separate textures in memory, they would just “change” the color palette.
Alright so we understand what the assets are and how they work together. But why do they take so much space?
An Example of Assets Taking Up Space
Let’s look at the billboard image.

I scaled up the billboard image from 80×94 to 512×614 so you can see it better. At it’s default size it only takes up 2 KB of storage. An iPhone 13 has 128,000,000 KB of storage (128 GB) so that image takes very little space.
However, modern games don’t rely on such small images. In order to achieve better graphics they use much larger images with a lot more details. A standard texture used nowadays has a resolution, on average, of 1024×1024 pixels. Let’s see just how much space our billboard would occupy as a .png files of 1024×1024.
By scaling the image up to a “standard” resolution the image goes from 2 KB to a size of 303 KB. That’s quite an increase but still not enough to make much of a difference. What if we scale it up to a 4K resolution, that seems to be all the rage in modern games. What’s the impact?
Now the image takes 3.2MB as a compressed PNG file. Imagine we have 50 different billboards we want to use in a modern game and the billboard texture get’s applied to a simple 3D model. The car for example takes about 300KB of data and it’s honestly not much more complex than what a simple, low poly, billboard mesh.
So we have 3.2 MB X 50 textures + 300 kb for the base model and we end up with 160.3 MB.
Now let’s say we want 20 different car models, each with a more complex texture than our base car texture. Something similar to the car textures and models from Need For Speed: No Limits for mobile.

NFS No Limits looks amazing as is graphically more complex than our Outrun re-implementation. It doesn’t just use a single low poly model for the entire car with everything being built up from multiple meshes with multiple textures, shaders, materials and effects.
So let’s assume that each car model has 3 textures it uses to keep things simple. 1 for the color of the car, 1 texture for the bump map (to make the details look like they are 3D) and 1 for the specular effects.
We have 3 textures @ 1024×1024 resolution + the 3D mesh details. Off the top of my head we’d have about (4 MB / texture * 3 textures + 4 MB / car model) * 20 cars => 16 MB * 20 = 320 MB of texture and mesh data just for the car. And, to be honest, there are probably more textures maps used than I described but let’s go with this.
Now the game is comprised of more than just the cars. There are multiple road meshes, light fixtures, terrain details, mountains, rocks, particle effects, house models and more. So let’s say there are about 200 models in total used in the game (which, once again, is lowballing the entire deal).

We update the previous calculation to (4 MB / Texture * 3 textures + 4MB / model) * 200 models = 3200 MB or 3.2 GB of data. And we haven’t even talked about audio, music and the assets used for the graphical interface (menus, buttons). We haven’t even talked about the data files for the maps which also take space.
So you can easily see how things creep up, massively. The good thing is that not all models and textures used in the game have to be the same size. There’s no reason for a rock to have a texture as big and as detailed as a car. Why? Because you constantly see your car on the screen but that rock might be there for only a split second as you fly passed it.
Developers get a chance to optimize their game based on this. They can keep the car textures at 1K or 2K resolution while the rock itself get’s a texture that 4 to 8 times smaller.
Similar things can be done for many more assets. Sound effects that get mashed together when an impact happens? Like the sound of an explosion, the sound of sparks and sounds of metal colliding? They don’t have to be extremely detailed so they get compressed and have a lower bitrate. It’s not uncommon to take a 40 MB sound file and compress it down to just a few KB.
Why Do Mobile Games Take Up So Much Space?
Mobile games are built from hundreds of different asset files like textures, meshes and sound files that take up space on your phone’s or tablet’s internal storage. The more complex and detailed a game is, the more and higher resolution files it needs. With hundreds of different assets each occupying various amounts of storage you can end up with games that eat up tens of gigabytes of space on your internal storage.
Where To Next?
I write extensively about the mobile gaming industry, their tactics and how greed influences a game’s design, subjects which were brought up in this post.
I believe that you might be interested in more articles on game monetization. So if you want to stick around, you can check out “How Do Free Mobile Games Make money“, “Why Do Mobile Games Have Fake Ads” and “Why Do Mobile Games Have In-App Purchases“.
There’s also a monster post (about 4000 words) that answers the question: “How Hard Is It To Make A Mobile Game“. It goes in depth with actual examples on how Experience, Resources and Financials affect the difficulty of developing and releasing new mobile games!
If you like our content and want to stay up-to-date, you can subscribe via the mailing list widget on this page! Or give us a follow on twitter. Is there something else you’d want covered on our Best Smartphone Games blog? Let us know in a comment below.