For iPhone: Multiple small textures or one large texture for towers in a Tower Defense game?

Hey guys,

So I am making a tower defense game in Unity3D for the iPhone/iPad. The game is a Tower Defense game, so there will be many towers on the screen…each tower will be different, but many of the towers have the same textures.

For example, all the towers have the same BASE model/texture, but different weapons on top.

My question is would it be better to load all of these textures on various smaller textures (one texture for each tower), or one large texture sheet(1024x1024).

I would imagine it makes more sense to have multiple smaller textures as you dont have to load such a large texture each time the user places on the tower…or is this wrong?

(Then again I heard that loading each texture increases the number of drawcalls when using smaller textures)

Thanks

Then again I heard that loading each texture increases the number of drawcalls when using smaller textures

First of all this is wrong. Draw calls are to draw geometry.

You said that towers have same base textures. Those will not be duplicated, they will use this one texture if you “dropped” it on all towers in the editor.

As for other different small textures. Putting them in one big atlast will increase complexity of your shaders unless you are using a library which does it for you like ex2d for example. Of course a texture object adds some overhead, so having only one texture seems to be better. And talking about loading textures, it won’t be reloaded every time a tower is placed. It’s the other way around, if you load your atlas texture in the beginning it will be already on GPU when you place a new tower. Unlike small textures wich will have to be uploaded on GPU every time a new tower type is created. Otherwise small textures stay on GPU.

But I would advise you first to make your project as simple as you can and only when you see lags and fps drops start optimizing. It may turn out that the biggest bottleneck won’t be textures loading.

So it sounds like if there are going to be many objects on the screen, its usually a good bet to go with one large texture that can be loaded in when the game starts?