Monday, February 23, 2009

20 year old game grosses $3/4m in iPhone remake


"iShoot, a top-selling iPhone app that was a best-seller for weeks and has now earned the man more than $700,000 ".
http://tech.yahoo.com/blogs/null/124073

Interesting. It's just a clone of a game that appeared in the mid 80s called Tank Wars. The Scorched Earth PC game from the early 90s is the one I remember playing. The most memorable feature was a special hidden key combination where it would yell out "No Kabitzing!" I suppose the idea was to put down opponents that were ganging up. Wow, it doesn't seem all that long ago when the idea of a "LAN party" was to sit side-by-side at the computer with your brother and battle it out with tanks.

If a game once had replay value and appeal it probably still does. It's a great argument for putting the mind into park and simply bringing clones back from the dead. Classic game play will always be appealing for new generations.

Labels: ,

iPhone app-dumping

Familiarize yourself with File Juicer. This application will dig through a binary finding all the text, images, movies, and sounds in any file. This is particularly revealing with iPhone applications. After syncing your iDevice, point File Juicer at the IPAs appearing in your ~/Music/iTunes/ MobileApplications folder.

The images to the right are from BoltCreative's Pocket God. The game is fun and the developers are great guys.

With File Juicer you'll get some insight into how some developers choose to build their tile sets and fonts. I was looking at the Rolando dump and a couple of things immediately struck me. First there is at least one easter egg in there. Secondly, HandCircus chose to repetitively duplicate screens over and over for localizations. Unclear why they didn't leave the screens void of text and localize at run time by drawing the fonts. This would have greatly reduced the binary image footprint.

Labels: ,

The Clumsy CrashLander

I can see why Apple removed the CrashLanding sources from the iPhone developer's area. People were using it to create game engines and that wasn't really the intention with it. It was just a quick and dirty demo of the Text2D wrapper for OpenGL and the SoundEngine wrapper for OpenAL. It didn't support a tile atlas, object oriented sprites, a proper frame thread, correctly working collision detect, compressed audio, or a properly configured accelerometer. Apple probably got tired of people reporting bugs against it and using it as a core for so many games. Even I have a few open bugs with Apple against it still.


Labels: , ,

iDevice. 32bit or 16bit?



The iDevices contain an ARM processor. These processors support two instruction sets, the ARM and Thumb. Thumb mode uses a 16bit instruction and register set while ARM is all 32bit. Thumb mode typically reduces code size by about 30% compared to ARM. Most applications perform simple operations that don't take advantage of the 32bit instruction set and data type width. It is this fact that has lead silicon designers to create the ARM Cortex (an exclusively Thumb mode ARM) to reduce power consumption and manufacturing cost.

However, if an application makes extensive use of floating point code it may perform better in the ARM mode. Take for example, an application based on the Box2D or Chipmunk physics simulation engines.

BTW: Compiling for 32bit ARM mode in Abby Crabby only increased the image size by 3%.

Labels:

Friday, February 20, 2009

Generation M

Mobility Defines the Teen Generation
Today’s teenagers have largely been defined by mobility. These teens (“Gen M”) represent the first generation to grow up in a mobile world since the first commercial cell phone service was activated on October 13th, 1983. Now they are taking control and their demands are redefining what mobility will be.

General Teen Mobile Facts

  • Teens are a huge consumer market segment and spend more than $100 billion annually
  • Today, approximately 79% of all teens (17 million) have a mobile device – a 36% increase since 2005
  • Most teens have a conventional cell phone while about 15% own a smart phone
http://www.ctia.org/advocacy/research/index.cfm/AID/11483

Labels:

Thursday, February 19, 2009

Abby Crabby 1.2 released

We've added a new crab trap toy. Actually, it's not all that new as we've had the artwork in since 1.0 but it wasn't used. It's a little like the ship capture feature in the 80's classic arcade hit Galaga. Instead of avoiding the trap, players should let the trap capture a baby crab. Throwing trash at the cage will break it and release the baby crab before it's taken from the sea. The trap toy gives a little more variety to the game and gets players some good points.


This is also our first application to include a button that sends customers directly to iTunes to submit a review. The number of reviews increases iTMS rank and therefore sales.

Labels: , ,

Wednesday, February 18, 2009

Apple Store "In Review"


The first time we submitted an application for review with Apple it took nearly a week to be approved and another day to actually propagate into iTunes. It takes another day before those changes are propagated through all the seven iTunes stores worldwide.

After your first application, the second application and updates to applications usually take just a few business days.

We recently submitted Abby Crabby 1.2 to iTMS. A few days into the process we had an additional change we wanted to get in under the wire. There is a process to leave the submission be but reject the binary. We tried it and pushed a new binary.

The question was this... does this delay your release? The application is still standing, it's just that the binary is changing. Certainly Apple hadn't actually gotten to reviewing or running anything yet. Well I believe we have an answer, it seems that you go back to the end of the line. It's been almost a week now since the 1.2 submission and it's still "In Review".

The lesson here is, never reject a binary. Wait for it to appear in the store and submit yet another version.

Labels:

Sunday, February 15, 2009

OpenAL for iPhone does not support HRTF.


HRTF is the head related transform function used in three dimensional audio that models the shape of the head and ears. HRTF basically enables a low pass filter when the sound source is behind you making it sound as if... it were behind you.

In oalTouch (Apple's OpenAL demo source) the sound is the same when the source is either behind or in front of the listener. This seemed strange so I reported it as a bug to Apple (Problem ID: 6576577 in fact). I also noticed that the same problem exists on the Mac OSX Cocca native with the PIGE-OpenAL demo.

Got my answer today... "Engineering has determined this issue behaves as intended based on the following information: Please note that OpenAL doesn't support HRTF rendering."

This is disappointing. It means OpenAL only supports fading left to right and volume. It doesn't really take advantage of all the 3D positioning information. The phone certainly has the horsepower to do the computations for HRTF.

Labels: , , ,

Rolando sources


Through some digging around I found that ngmoco's Rolando "platformer" game uses the Box2D physics engine. Box2D is open source, but doesn't have an iPhone port. Since Hand Circus used this open source and modified it they must release the modifications under the GPL. One of the changes they made was to accept accelerometer input for a general force vector on all objects in the simulated world.

The sources are available here:
http://sourceforge.net/projects/box2d

It's not Rolando, but the demonstrations of the Box2D physics engine are inspiring for new game ideas.

Labels: , , , , ,

Saturday, February 14, 2009

Linking your way to the top!

Here are a few iTunes link strategies that appear to be largely underutilized by the community.


Web links that *always* work


It has always struck me as strange that the big brand name players can't figure out how to make an iTunes Application link from their website that actually works on the phone! The 1.1 software had a kink of sorts that made it especially hard. But there is one trick that always works. Use a link that does a search.

Ignore iTMS Link Maker, which tells you to use: http://itunes.apple.com/WebObjects/MZStore.woa/ wa/viewSoftware?id=000000000

Instead use: http://ax.search.itunes.apple.com/WebObjects/MZSearch.woa/ wa/search? media=software&term=Your%20Application%20Name%20Here

This even works for a 1.0 release where you don't yet have a software ID from Apple.


Brand name synergy


Applications under your brand name have sales synergy. Foster this by putting a button in your application that links to all your applications in your brand. Again use a search.

NSString *link=@" http://ax.search.itunes.apple.com/WebObjects/MZSearch.woa /wa/search?media=software&term=My%20Company";

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: link]];


Live and die by reviews


Getting reviews (even bad ones) is important for your application's ranking. The problem is that people don't often review their applications. Based on my sales, I'd say 1 in 100 actually review. Put a button into your application that sends people directly to the appropriate App Store review screen.

NSString *link=@" http://itunes.apple.com/WebObjects/MZStore.woa /wa/viewContentsUserReviews?type=Purple+Software&id=000000000"

Side note, "Purple" was the internal iPhone code name.


mailTo links

You may be using openURL and mailto to send email from your application. If the content of your email contains an iTMS link it will certainly contain the '&' ampersand symbol. This will not work as iPhone's mailto will truncate the link and your iTMS link won't work.

Instead put a simple URL into the email that redirects to the real iTMS link. You could use TinyURL or host your own redirect. If you host the redirect yourself you can track the click through.

Labels: ,

Thursday, February 12, 2009

Finally a real Abby Crabby review!



Touch My Apps gave Abby Crabby 1.1 a "Grab It" (which is like a 4/5 star rating).

Labels: ,

Monday, February 2, 2009

Do application updates boost sales?


I've always been a firm believer in releasing finished code. But alas, I've learned a new iTunes App Store lesson today. It turns out releasing updates helps get your application attention and sales. It makes sense really. Once your application is installed on someone's phone you have a slice of real estate. The App Store will bring the application back into people's minds when an update is published.

So here's to all those people releasing half finished applications and updating every couple of days! Well, and those applications like Labyrinth, Fuzzle, Eat Bunny Eat, and Where To that seem to be milking the update to ranking boost trick for all its worth!

Labels:

Sunday, February 1, 2009

Compressing audio

During the initial development of Abby Crabby our binary (application size) swelled to about 10MB. We became concerned knowing that applications over 10MB cannot be purchased over cellular connections and yet we still had a good deal more sound and graphics to put into the game. Impulse buys are lost if buyers are forced to desktop iTunes to make their purchases.

I met the CEO of PlayScreen on LinkedIn a while back. We've had some great conversations about the iPhone market. He passed me some promotional codes for his applications and I looked them over. Pigs A Popn is my favorite of the bunch, but recently Bounce Trap Tilt has been getting some attention as an iTunes featured application.

The secret for being featured? According to William it was just a matter of updating the application to meet user requests. You can read more about it on his blog. One of the things mentioned there is "a new audio driver and shrunk the game from 26MB to 9.3MB". He had also taken my advice on audio compression!

The Apple's OpenAL example sources use uncompressed CAF files (little endian AIFF files) only. We were using these sources. Our size budget was nearly blown after we added our in-game and menu sound tracks. The way around these issues is to switch to a compressed audio IMA4 format. Existing CAF files can be converted with usr/bin/afconvert at the command line on a development machine. From there the OpenAL wrappers in the application must be modified to read and uncompress the audio at application launch. The IMA4 to CAF conversion achieves a compression of about 4:1. The Abby Crabby binary dropped from 10MB to 2.5MB without any perceivable difference in operation to the user. This provided plenty of headroom for more sounds and graphics while still remaining under the 10MB mobile download limit.

Labels: , , , ,