OPTIMIZING iOS GAMES IN UNITY FOR UNIVERSAL BUILDS PART 2: Characters
In Nitropia there are 20+ Enemies with 6 playable characters. To speed up memory and load times, we decided from the start that playable characters would have one 2K image atlas for animations and one 512px for their effects. The enemy units would have an 1K image and the Bosses a 2K image along with their effects.
All the characters are loaded in to memory at the start of a level. We did this because we found a significant frame rate drop when you load large atlases into memory while the game is running.
One huge benefit from using the Unity Editor and it’s scripting functionality is the ability to create our own Sprite Packing method. This little tweak enabled us to test different compression methods and see what worked best. As I mentioned at the start, we originally planned to release in 2 versions; HD [RGBA 32bit] and SD [PVRTC] compressions. This was to address Retina and Non-Retina Displays. After a little research and testing we went with RGBA-16bit compression. RGBA-16bit is only good for solid textures but not so great for transparent ones. To fix this we had to reduce the number of tonal variations in our transparent images. While we lost some crispness, it was not pixelating which was a bigger win..
ENEMY UNIT ATLAS
BOSS UNIT ATLAS
PLAYABLE CHARACTER ATLAS
In our third part we go through some of the optimizations we did with the GUI and sound.