Game Development Community

submitting to the appStore

by Eyal Erez · in iTorque 2D · 01/19/2009 (3:12 pm) · 40 replies

I've just submitted my game to the appStore and I have to tell you that it was quite a pain.
I thought it would be a good idea to start a thread for all the problems people are experiencing with iTunesConnect.
I've found most of the help in this post:
http://discussions.apple.com/thread.jspa?threadID=1590980

I probably had to fix at least 4 of the stuff suggested there. the errors that you get from iTunesConnect has nothing to do with your problem. unfortunately you have to try it all. Here's what I needed to do.
1. getting rid of the Entitlements.plist
2. change the tgb_components_icon.png to icon.png (works for adHoc, doesn't work for appStore)
3. got rid of any underscores, astrix, etc... on your name appName (no spaces too)
4. change the bundle identifier to eliminate astrix

Off course, it doesn't mean that I did it right, but at least I was able to send the zip file to them. hopefully it'll get approved.
Page«First 1 2 Next»
#21
01/23/2009 (12:04 pm)
I did read it too.
I've also seen in at least 1 or 2 games on the appStore instuctions to reset (hold home+power buttons)if the game crashes.
How long did it take you to get the respond the second or third time you've submitted?
#22
01/23/2009 (12:53 pm)
it always took about 3 days.

I tried opening 8 safari instances and played music... it crashed on start up, but the next time i clicked on the game it ran again. i also tried opening and closing the game about 20 times in a row... no crashing. I'll let you know if i find a solution! But first i have to find the problem :-D

Oh and i seam to get the feeling that when using 2.0 as the "Active SDK" it runs more stable. I may be wrong though...
#23
01/23/2009 (2:18 pm)
Hey guys, there are some limits and tools you should be aware of.
1) The iPhone Device only supports 24MB of textures, the simulator allows more, so be wary of that. TGB pads images for animations and reformats them, so make sure only the ones that need the padding are set.
2) The iPhone Device has 128 MB of ram but we try to keep our games under 80MB to be safe.
3) You can check RAM usages for both textures and total ram by running the Start With Performance tools instruments from inside Xcode, it will show you your total usage and current. There is one for "Leaks" and one for OpenGL, both of which have several settings to track memory usage/Cpu usage/Frame Rate etc.

#24
01/23/2009 (3:20 pm)
Hey Paul, Instruments is very cool, I had forgotten about it. But where does it display texture memory usage?

Also, in regards to your memory suggestions, when you say keep it under 80 MB do you mean real memory only or real memory combined with the virtual memory? Our game is currently pulling 28 MB real memory and 87 MB virtual memory.

We spent a lot of time reducing our memory usage and loading datablocks only when needed and destroying them when not needed and now we haven't crashed in weeks.

Also, in order to shorten the initial load time, we load only the datablocks needed for our opening screen. This reduced loading from 40 seconds down to 11 seconds. Of course we still have to load the rest of it later but we are breaking it into manageable chunks.

We also have seen a slight speed improvement running under OS 2.2 vs. 2.1 but haven't really tested it to see if it's real and measurable.

#25
01/23/2009 (4:41 pm)
Thanks Paul. Instruments looks really cool. altough I haven't found the texture memory either.
Warthog, how do you destroy datablocks? the only thing I know how to destroy is endLevel()
Also, what about gui images? in my game they are definitely bigger than all my ingame images. can you unload them? I have a few gui's that are loading the same image. is it getting loaded multiple times for each gui ?

#26
01/23/2009 (5:41 pm)
is there any way to see the packing for guiImages ? like $pref::T2D::imageMapShowPacking = 1 for imageMaps.
If it works the same way as imageMaps than each one of these 480*320 becomes 512*512.

#27
01/24/2009 (11:58 am)
thanks for the tips paul.

... so i converted all my images to 256 colors and my audio to 8bit / 8k. Now my total image amount is 3.8 mb and audio is 5.6 mb. When checking the RAM usage i get something between 60 - 90 mb. I'm testing my program on two devices: 1x ipod touch and 1x iphone 3g. I don't have any difficulties with the ipod touch - i can restart the game as often as i like and it doesn't crash. But if i try it on the iphone 3g then i can only run it using the "build and go" button from xcode - if i try to start the game again then it shows the default.png then it goes over to my splash screen and dies after about 2 seconds. Even if i restart the iphone 3g i cannot get the game to go past the first 2 seconds. Does anyone have any advice?

update: hum... i found this thread (http://www.garagegames.com/community/blogs/view/12968) about "radical reduction in TGB memory usage". I did the gTexManager.cc changes and set all my ImageMaps to filterPad = "0"; ... now i'm saving an average of about 10MB of virtual RAM (so now i'm at 80mb at the most). But my problem above still exists.

update2: i tried safedeleting everything that was not currently needed, which reduced my memory abit, but still no luck.

update3: for testing purposes i removed the audio from the game (so my game is only 4MB), but it didn't have any effect on the virtual RAM nor did it solve my problem! How can a game that is only 4MB large caus memory issues?!
#28
01/25/2009 (1:32 pm)
Yuhuu - It works now! The big problem was the images. I converted my images to 256 colors and saved them using gimp (saves a png file with - for example - 80k instead of 100k when saved using photoshop!). I am now also using my original audio files, instead of the 8bit / 8k versions. Hopes this helps anyone in the same situation.
#29
01/25/2009 (3:18 pm)
Congratulations. that's great news.
I'm gonna apply the changes gTexManager too and hope for good. unfortunately, I already resubmitted the app so I should expect another email soon :)
#30
01/28/2009 (10:16 am)
sweet. "Sushi to Go" is on the appStore.
definitely unchecking the preload for all the images helped a lot.
The game loads using 35Mb of ram. then when you start a level, it loads the rest and get to 45Mb.
so I suppose a good practice would be loading only the minimal stuff you need for the main menu to work. then load again when you need it. there are no hiccups in performance since all my textures are loading before the level starts.
#31
01/28/2009 (10:28 am)
@Eyal - Congrats! That is great news!

When you quote ram figures, is that real ram or real ram and virtual ram combined?

Also, how long does it take to load the first real screen?
#32
01/28/2009 (11:24 am)
it's real Ram. however, it's not on the iPhone, it's on the Mac using Activity Monitor.
I was able to sample on the iPhone using Instruments. but I have no idea how to look for Ram so I couldn't tell. I'm a total Mac noob. if you explain to me how to use it. I can find out what kind of ram it uses on the iPhone.
I've just realized ever more important factor which we've discussed before. the 10Mb limitation for 3G.
My uncompressed app is 14.5Mb the zip compressed is 8Mb, so I was thinking of starting to upsize my sounds and images.
Thank god I was too lazy to do it. the game shows up as 9.4Mb on the appStore . no idea how they got this number, but I would suggest not to push the zip file to 10Mb.
#33
01/28/2009 (11:53 am)
17 sec to get to the iTGB splash screen and 21 to the main menu. I was generous with the iTGB splash :)
This includes loading a song and start playing it. nothing else is loaded at this point. so Default.png iTGB.png and mainMenu.png with 4 bitmap buttons and a 1Mb song.
#34
01/28/2009 (12:04 pm)
Someone reported that the zip Apple uses is not as aggressive as the zip built into OSX, because large programs were taking too long to install (unzip). But that now gives us a point of reference. 8MB OSX zipped becomes 9.4MB iphone zipped.

To see what ram you are using on the iPhone, run with instruments from Xcode, and choose the Activity Monitor instrument. Scroll down till you see your app and it tells you how much real ram and how much virtual ram. That should be very interesting to see if it is similar to what it is when running on the Mac.

How did controlling the character with tilt work out for you? I will buy a copy of your app once I move my phone to the 2.2 software, but I am staying at 2.1 for now for testing purposes. Why did you choose to build for 2.2? Some improvement (I think it may be faster) or just to be current? We are thinking of building for 2.1 to be compatible with more phones.
#35
01/28/2009 (12:12 pm)
Very interesting on the loading time! We moved almost all our datablocks for the game to a separate file that execs when you leave the main menu, and managed to get loading down to 11 to 14 seconds, depending on the humidity ;-), then it takes an additional 6 to 7 seconds to load the rest of the datablocks and the next level, once they've clicked play. we also create all menus and help screens etc in the code, and only when called for. That saved a lot of loading, and rather than hide or move them when done, we delete them to release the memory. All these steps have virtually eliminated crashing (we think!).
#36
01/28/2009 (12:46 pm)
When I run from xCode I get a Yellow line saying "target terminated too early to collect data".
I am able to use Attach to Process instead and record a sec or two. this gives me a purple line but no data in any of the columns.

The tilt is working nice for this game , although I've also added a touch mode to prevent a sore neck.

As far as the 2.2 I didn't even think about it. just installed the latest thinking everyone would probably update their firmware too.
I guess you have a point about 2.1 being more compatible. especially in countries where they unlock the iPhone and too afraid to upgrade the firmware :) then again, they are not your customers anyway.


#37
01/28/2009 (12:50 pm)
great idea about removing the gui's . how do you do that? is there a safeDelete() for it like the scenegraph?
Also, would that remove all the images from memory? if so I can optimize a lot.
#38
01/29/2009 (10:15 am)
Warthog, I got instruments to work.
I've also took your idea about loading gui's only as needed. that shaved at least 10Mb when loading the game.
So now I'm getting 13.86Mb real memory and 64.89 Virtual when I load the game with only iTgb splash, main menu and song.
when I play a level it's about 25.5Mb real and 74Mb virtual.
However, these numbers are still lower than what I previously had since not the endGame , option and a bunch of other guis are not loaded.
Thanks for the tip.
#39
01/29/2009 (10:43 am)
Eyal, thanks for the memory feedback, glad you got it to work. Our game runs slightly heavier in real ram and slightly lighter in virtual ram. Glad the gui tip could help. Every time we display a menu or help screen or any overlay, I create it fresh in the code and safe delete it when done, rather than hiding or moving it off screen like we used to do. That really helped.

I would be very interested to know from Apple what percentage of phones updated to 2.2 and how long adoption takes for each new update.

Good luck with sales, hopefully they will pour in! Are you planning any marketing to drive sales?
#40
01/29/2009 (12:05 pm)
After I've read you post yesterday I went and looked at the all the top paid games, and almost all of them are 2.0 or 2.1 so maybe it is a good idea to keep yours 2.1.
I did however found one game (monopoly) that was #5 and is 2.2. so at least everyone who played monopoly had to update to 2.2
As far as marketing I haven't looked into it. are you talking about iTunes marketing? do you know how it works($$$)?
I do want to make a lite version though.
Page«First 1 2 Next»