So, I am doing everything I can to keep my resource usage down. But doing a google search just doesnt help w/ the following questions:
1) What is the recommended limit for memory usage (Real Memory on the profiler)? Right now, I am trying to stay under 40MB as most games I see do this. But what can I push? I am attempting to court iPhone 3G and on.
- Angry Birds: ~36MB
- Tiny Wings: ~17MB
2) What is the recommended limit for CPU usage? I have noticed that CPU usage doesnt quite relate to FPS. I have been (up until recently) only using around 10% CPU usage and FPS was pegged between 59-60. Now im around 35% as I have added game logic and although "most" of the time my FPS is around 59-60, I do see drops to 45 during transitions (i.e. threading changes).
3) With threading in mind, is there a way to lower the priority of a thread that you kick off? Almost all of my thread required code is NOT time sensitive. Which means, when I kick off a thread, I can happily wait to do anything with the results until its done. I would like to kick off a thread at a low priority and let the game run as fast as it can... when the thread is done THEN I do whatever I need w/ the results of the threads resulting work.
4) If you are using a scrolling background and tiling the textures for the background, would you recommend using straight pngs for EACH tile or would using a spritesheet for the tiles be a good idea? The main reason I ask THIS question is that when I was using individual images for each tile, I had no tiling lines. Now that I have my backgrounds in a spritesheet, I am seeing tiling and no matter what I do I cannot get rid of them. I tried offsets, I've tried different formats of the spritesheet container (i.e. png vs pvr vs compressed pvr). I am pretty much ready to give up and just use straight images for my tiles but that does use more memory :(
5) When using CCSpriteFrameCache "removeUnusedSpriteFrames" and CCTextureCache "removeUnusedTextures", I notice it removes everything that isnt currently used (even though not 1 frame later there might be a sprite in a frame you need). So I'm going to assume it isnt very smart. But one thing I HAVE noticed, is after awhile (i.e. running the game for a couple mins) my memory usage goes up to the level I would have if I had loaded and kept all images in memory but these removeUnusedX calls still remove a lot of images AND cause stuttering. Is there some special way to use these that is not documented anywhere?
6) Is there a document that tells "Things to look for that Apple will use to refuse your game"? So, if they see me using XMB of Real Memory that will be a red flag. Or some other set of criteria to watch out for.
7) What is the recommended maximum size of a game? I read somewhere that 2GB is the limit.. now I will never reach that w/ this current project but the answer would be nice to know.
Thats about it for now. Thanks much for any responses!