While Rapture In Venice is technical consulting I do in addition to full-time mobile work during the day, that doesn’t mean I can’t take it three levels deep and rendezvous elsewhere, right?
On September 29th, I got this unsolicited email from Paul Millman, Chief Chipmunk of FTM (no, really, that’s his title):
John, we’re looking for an iphone/ipad developer, who is also a dad, to join our new two-member company Fish The Mouse Media.
My expertise is not only in the creative and architectural process of developing apps, but also marketing and as a business manager. For Old Mac HD each interactive scene was hand-painted on canvas by internationally acclaimed artist Norm Magnusson (work in MOMA permanent collection), and original renditions of the Old Mac song were recorded in English by pop vocalist Jill Sobule, and in French by Dominique Durand of the indie band Ivy. All of this was produced under my direction.
Our second app, The Animal Alphabet is now ready for to go and we’re looking for a developer for this app…
The developer on their original app couldn’t commit the time for the new app and he was looking for someone who could do the job.
The email couldn’t have come at a better time. I was mired in a nightmare project at EffectiveUI and I had no current contract work going on with RIV. I got back to Paul and eventually asked to see the specs for Animal Alphabet. I was floored! The app was fully designed — AND HUGE! A 36-page PDF full of graphics and specs. As excited as I was to take this project on, I was terrified of the time commitment I would have to make.
I spent a few days considering whether to join up or not. I actually put together an implementation plan of how I was going to accomplish it so i could determine if I should. The big decision was whether to dive into Cocos2D or stick to the iOS SDK. I’d always wanted to learn Cocos2D and even hit up some 360 iDev talks, but it was a risky technical decision to have to make considering my lack of experience. I was able to get a look see at their previous app, Old MacDonald HD, and was horrified at the work the previous developer had to do to get a far smaller set of animations to work. Using the UIKit was even riskier!
No wonder he wasn’t going to commit to this one.
Ultimately, I decided to go the Cocos2D route and take the project! I still remember the excitement of the early days when I got the Angelfish working (it’s the first letter page — being A and all) and seeing it run on the iPad. I knew I’d made the right choice and was glad to have it confirmed. And every letter after that got more and more fun, but wow what a lot of work.
It’s been a tough road. Just a few weeks after taking it on, Michele (5 months pregnant at the time) went on bedrest for 3 months and I had to simultaneously juggle a full-time job, contract work (I took on two more projects in addition to AA), and take care of our two young kids while Michele was basically bed-ridden. I even came close to quitting the project a couple times simply because I was going insane.
It was all worth it, though. I hope that if you treat your kids to it, they’ll love it, but not only that, I hope you love it, too!
A little note on how it’s done…
For the developers out there who may be curious about the technology behind Animal Alphabet HD, here’s how it’s done…
The core architecture is Cocos2D, an excellent animation library for iOS that was originally ported from Python. The API is well-designed and makes coordinating a huge assortment of sequenced animations a piece of cake. (If you haven’t used Cocos2D, I assure you that someone needs to port the Actions API to UIKit!)
In addition, I use iBoost, a sidekick iOS library I’ve led development on that adds all sorts of useful categories and macros to the base SDK. Highly recommended of course.
And, of course, there’s Flurry for analytics. We’re keeping track of what the most popular letters are. So, for example, if you keep navigating to Q, you’ll probably see more jumping animals in future iterations.
In terms of Cocos2D construction, every letter is its own scene. They’re all based on a common scene that implements much of the shared functionality. Each letter scene has the bird game where you get the letter flag into the magic hat using the iPad’s accelerometer. The letter navigation selector is shared across all the scenes as well, reattaching as you go.
I also had to wrap the SimpleAudioEngine so that I could stop all sounds when a letter scene exits while keeping the background music playing. (Cocos2D doesn’t have a stopAllSoundEffects call that’s separate from the background music.) I was really impressed with how you construct animations, though. Sequences and parallel actions, just like my old friend, Flex.
And there you go. Animal Alphabet will see updates, including an eventual port to iPhone, in the future. Can’t wait.