What's the average size of a 3D game?

I’m currently building a game engine for my game and my game takes up 56mb(installed). I only have two characters with animations, a few houses, four large playing areas, a control system, a camera system, and a general layout for the logic.

It’s the large texture files that’s taking up so much space.

How big are some of the popular 3D Android games?

What image format are you using? Make sure it is compressed and make sure that they are not needlessly large images. For example: if the image has a higher resolution than the average android screen (without specific reasons) then your doing something wrong.

I know that Asphalt 8 takes up about 800 mb but that is one really good looking mobile game so I would aim for less than that

Well it’s really all the textures and models. The code hardly takes up any space.
So with some simple shaders and lighting, you can make a really nice looking no texture game. You can take it even farther and just program primitives such as a sphere generator, a box, and prism. With that you can make a simple, smooth, and beautiful game.

However, if you’re going for a shooter or realistic racing game, you need tons of textures and models. These will take up lots of space.
A trick with the models is just to make a simple per pixel lighting shader. This will make the normals across each face of the model seem smooth, so you can use much less vertices and indices and still have the model look the exact same as it would with millions.

I’d say it doesn’t really matter too much and you shouldn’t care to much, but it’s always good to not wastefully bloat your game, e.g. using WAVs for long audio tracks (yikes).

You could employ tricks like optimized png images, but then load time will increase, especially since it’s going to be on mobile.

Procedural content is also an option, but I wouldn’t recommend it if you don’t need it.
As an example of just how far the rabbit hole goes: This video (music and all) is created by a program that is 64kb in size.

Well, I change the textures for my “gaming worlds” to just a tiny green area(for grass) and the size dropped to 4.30mb(installed) but it looked like crap. Didn’t surprise me though, these files are huge.

I want these dirt pathways that lead around to houses and whatnot. I used the Texture Paint feature in Blender to make the texture. If I use smaller images, the texture looks blurred. This is a picture of my model in Blender with the texture showing…

The file is saved as a PNG file. Here’s a picture of the size…

I know that I can make the entire model textured with the grass alone and it only requires the small grass texture, but I really want these dirt pathways. Maybe I can select everything except for the faces that the pathways are on, do a UV unwrap, use the small grass texture, scale it way up, then do an invert selection, do a different UV unwrap to a different image, and paint in the dirt pathways surrounded by grass.

Any ideas?

Nobody uses 1 giant texture for terrain, it is almost always a small (ish) texture that is then tiled. The tough part is getting a texture that tiles nicely, to start out I would just use something like this: http://www.webtexture.net/photoshop-resources/patterns/super-high-quality-seamless-green-grass-texture/

You want to look for “seamless” textures, which means they can be tiled without looking crappy. You can also find tutorials on how to make your own seamless textures.

For the roads, you would have to render those on top of the terrain, again probably with a seamless texture. The roads would be loaded in as a series of points that can then be connected together.

Real nice blog post by the dude behind Outerra on road generation: http://outerra.blogspot.com/2010/05/integrating-vector-data-roads.html
Note that all the terrain texture is procedurally generated, down to every last blade of grass!

Thanks for the link.

I’ve changed the ground texture to a small grass/moss texture and tiled it, but I think I must have scaled it up to much, because it’s was running way slow on my phone. I scaled it down a bit and it ran much faster.

ZeptoRacer 3D is 760k
Tank Massacre 3D is 1064k
Neon Puck 3D is 1475k
Evil Kitty 3D is 35MB 25MB is for music

So it depends on your game. You can make a 32k 3d game or you can make a 32 gig 3d games. It is up to you.

For Android I recommend the less than 4mb and double that every 18-36 months.

It’s never a good idea to clump everything together into one giant file. For example, I’m making a game called Diamonds. Instead of using the conventional sprite sheet, which takes up a lot of room but usually doesn’t contain that much data, I use 5 or 6 2KB apiece files. So, when I export the game for distribution, instead of coming to a couple of megabytes, it comes to 111 KB. That’s just my 2 cents on this topic.

I just added a model of a three story house and the size only went up 256KB(.25 MB). I’m going to have to learn a bit more about applying textures, although I think I have most of it down.

Here’s a video of what I’ve got going on…


I also have five other worlds(of the same size) with different hills, two small houses, an animated switch, a small fence, and a NPC that walks along a path(although that path isn’t there currently).

Kinda a derail, but why do you use this ponderous control system? And dont even make the rotation faster?

This is only the beginning.

I now have it set up so that the character slides along the walls, rather than just stopping.

Next is jumping, which should be easy.

True, if you consider John Carmack to be nobody: Megatexture

I will revise my statement: No sane person uses 1 giant texture naively without caching precautions.

That said, OP could also use a technique like that, but it’s probably more than it’s worth for someone in his situation.

Yes and no. You wouldn’t use it to texture the whole terrain but you can very well use one larger (i wouldn’t call it “giant”) texture as a splatting texture and that’s often done for creating pathways, which is what ImTroyMiller wants to do. So you basically create something similar to this:

and then use a shader to mix your (tiled) textures based on this to create something like this:

The yellow circle in the splatting texture shows the part that is responsible for the result that you see in the second image.