4
« on: August 20, 2015, 11:57:57 AM »
Actually there's one option that's quite popular among ios unity devs. The problem is that unity doesnt support png as native texture format on ios. It has performance penalty because decding is required, but sometimes it's the best way to go. Basically you put your texture as .bytes in your resources folder, load it on runtime as textasset and decode it into the texture.
In our case we have 90 character cards @1024x1024, 30 levels @2048x2048 (hand drawn, nothing much we can do about making them smaller)... the game was 900mb installed with all these things as truecolor textures. Changing characters to bytes saved us 300mb, altering levels will save us another 300 (did that, but haven't checked yet the gains). Last part is that we still have ~10 atlases related to game levels that have other content other than background. I guess it's another 100mb or so. What I am trying to solve now is how to make NGUI reference bytes files rather than image and load image during runtime only. We are ok with the decompression penalty, cause it's easier to show "loading" for part of the second rather than explain to user why his 16gb iphone shows out of memory warning after installing what appears to be casual timewaster.
Would be nice to have this out of the box in NGUI.