Home > Blog > One Step Forward, Nine Miles Back

One Step Forward, Nine Miles Back

If you’ve been following along at home, you’ll know that we’ve been ramping up to iPhone development for the past – oh, six months or so. We bought an iMacBookUnibodyPowerProMini, or whatever the Hell it’s called. i dunno. It’s white. We picked up an iPod Touch. We took an “iPhone for Flash Developers” course. We bought into the Apple iPhone Developer Program, and were approved.

No Cavities

We’re still waiting for Apple to send our Secret Decoder Ring.

We’ve been building Kahoots™, our fun crime-themed puzzle game (which we’ve modeled entirely in clay) to the iPhone/iPod Touch screen spec, which is approximately 478 x effin’ tiny. i even went out and got one of those Apple tattoos, because that’s supposed to count for something. The one thing we haven’t done is to actually learn Objective-C and deploy something to the iPhone. Pfft. A minor detail.

With every step i take towards learning this new (to me) technology, it feels like a wall erupts out of the ground and up into my face:

  1. An industry pal told me that the CoreAnimation libraries for the iPhone were very, very slow, and that even the simplest game slowed to a crawl. i would need to learn to program in openGL-ES.
  2. Terrified by the prospect of having to learn the square bracket-crazy OBJ-C and openGL-ES (whatever THAT was), i was seduced by the apparent C#/javascript-based simplicity of Unity3D, a game engine for creating browser-based and iPhone games
  3. While evaluating Unity, every time i tried to access the software’s online documentation, their website was down
  4. With Unity’s site proving unreliable, i resolved again to learn OBJ-C
  5. At a recent iPhone developers meeting here in Toronto, devs told me that OBJ-C is mixed in with C++, so i should learn C++ while i’m at it
  6. At the same meeting, other devs mentioned that the whole thing is hung on C. Now i was faced with the prospect of learning Objective-C, C++, C and openGL-ES (whatever THAT was)

Fine. If that was my lot in life, then so be it. i’m not a stupid guy. i can learn things, like words and junk. And sometimes stuff. Sometimes i can learn stuff. And i wanted to program things for the iPhone, so if i had to learn four new languages in my off-hours, i was prepared to do that.

Midnight Oil

If “burning the Midnight Oil” refers to setting this guy on fire, i’m all for it.

Free Smarts from the Stanf’

Fellow devs mentioned repeatedly that i could audit a new publicly-available Stanford iPhone development course. The lectures are all recorded and posted for free on iTunes, and the assignments are all available online. Great! And the only pre-requisite was familiarity with Object-Oriented Programming, which i have under my belt since learning ActionScript 3 this past year. So off i went.

i watched the first two lectures, and then turned my attention to the assignments. Assignment #1a had me dragging things around the screen and breathing with my mouth open. No problem. i sailed right through it.

Assignment #1b asked me to write a few methods. Okay … no biggie. i know what a method is. i just didn’t know the OBJ-C format for writing a method. i know it starts with a minus sign, and you put the return type in there first, or some junk …

Assignment #1b asked me to open the documentation. So i did. Assignment #1b wanted me to look up the path-finding method for an NSString. i wanted to know how to write a method first. So i searched “method”. And then “method structure.” Nothing. Of course not – language references don’t exist to tell you how to build a car, or even to provide pictures of what a finished car looks like. They’re just encyclopedias of nuts and bolts you’ve never heard of.

Nuts and Bolts

I wouldn’t exactly say i “admire” people who can learn this way. “Fear them” is more like it.

To Google!

i started looking up OBJ-C code examples. Everything i found was needlessly complex. i just wanted the basic structure for a basic method with no arguments and no return types, and Google was all “but then you can flim-wang your fozzbuster!” And i was all “no thanks, Google! Just passing through.” And then i backed away slowly, trying not to make any sudden movements.

What was my last resort for help, short of asking my 60+-year-old mother for programming advice?

To IRC!

Internet Relay Chat is a magical place filled with verbally-abusive and generally terrible people who will sometimes help you with your problems if you appeal to their supposedly superior intellect and delusions of grandeur. i asked some folks in a related channel if they could refer me to a clean code example that would show me how to write a function. They copy/pasted exactly what i had written in XCode, which was throwing me errors.

One IRC person said that knowledge of OBJ-C was a pre-req for the Stanford course. i respectfully disagreed: the course syllabus only required a knowledge of Object Oriented Programming. Then he said something unkind about my 60+-year-old mother. i won’t repeat it.

Another person suggested that i go through Apple’s tutorial. So off i went to the Apple Developer Site, and found the Your First iPhone Application tutorial. Now i was getting somewhere!

“First” Apparently Has a Number of Meanings

The preamble to the tutorial mentioned that i should have both Objective-C knowledge AND Object-Oriented Programming knowledge before proceeding. It linked me to two different whitepapers. Somewhat afeared, i decided to take Apple’s advice and read up. One of the links was broken. Almost completely out of options by this point, i started in on the other link:Object-Oriented Programming with Objective-C”.

i made it about 3/4 of the way down the page before looking around to see if i was on hidden camera or something. If this was it – if THIS was the most basic, square-one starting point that Apple recommended for someone in their iPhone Developer Program, then clearly i’d have to think about evolving into a new species so i could fly off of this planet and nuke the site from orbit.

Here’s a taste of what the whitepaper offered:

A programming language can be judged by the kinds of abstractions that it enables you to encode. You shouldn’t be distracted by extraneous matters or forced to express yourself using a vocabulary that doesn’t match the reality you’re trying to capture.

i read that sentence, and then i noticed a little feedback box at the bottom of the page. It asked “Hey. How ya doin? Are you digging the article so far? Hey? Has it met your needs, kiddo? If not, click here.”

i clicked so hard on that button that i dented my web browser.

What followed was somewhat of a tirade. The feedback went something like:

Are you serious? Did you guys proofread this before publishing it? It sounds like it was written by Little Lord Fauntleroy.

Little Lord Fauntleroy

Oh, yes! (clap clap clap) Let us code for the iPhone forthwith, mummy! That would be resplendent!

i called the whitepaper heady and pretentious. And then, for good measure, i threw in something about Apple’s 60+-year-old-mother. That bit was fresh in my mind already.

But if this is the starting point, this is the starting point. Apparently, against my best wishes and hope for my own sanity, i somehow need to learn three new programming languages across two paradigms in reverse order of development AND openGL-ES (whatever THAT is) if i want to build games for the iPhone … which i do, because i’ve heard you can make like NINETY MILLION DOLLARS on a FART APP.

Or i can save myself some pain and suffering and eat a chimichanga. (** FRAAAPP! **) Ninety million dollars please?

Ryan Henson Creighton is a Toronto-based game developer, and founder of Untold Entertainment Inc., specializing in online games for kids, teens, tweens and preschoolers.
Ryan Henson Creighton
Ryan Henson Creighton
View all posts by Ryan Henson Creighton

Popularity: 9% [?]

Rate this Post:
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...
                      

                                 
 

11 Responses to “One Step Forward, Nine Miles Back”

  1. Bwakathaboom says:

    Ha! Flash development’s not looking so bad anymore!

    Congrats, though. You got further than I did with the iPhone. I’m tired of each platform having it’s own language and tool requirements and flat out refuse to bother anymore.

    I’ve heard the fantabulous tales of millions made on iPhone apps. But then I had heard splediferous tales of millions made on dowloadable games, right before I got into that business and made no money. Then I heard the orgasmagorical tales of millions made with Flash webgames, right before I got into that business and made no money. Like George Bush says, “Fool me once….shame on you! Fool me twice…you…you can’t get fooled again!”

    It’s just easier to make no money with Flash than it is to make no money with the iPhone.

    • If it comes down to a slim chance of making some money on the iPhone, vs. a 100% chance of making no money with Flash, i’m going to persevere and build for the iPhone.

      How did you manage to come up short in the casual downloadable space? Kahoots is straddling the casual downloadable and iPhone markets, with the hope of scraping maybe a dollar together between the two. Is there anything i’m likely to screw up in the downloadable space that you can warn me against now?

  2. Joel Walsh says:

    Ryan … checking up on your project and found this post. Too bad about iPhone. I feel its too crowded anyway. Best of luck keeping Kahoots going it looks great.

    • Oh – don’t mistake me. i didn’t come all this way to NOT rock your socks off. i WILL learn this stuff … just like i learned Actionscript3, and complained about it bitterly the whole way through. There are still aspects of AS3 that anger me on a daily basis, but here i am, building great games with it.

      i guess i’m just griping because neither Apple with iPhone development nor Microsoft with C#/XNA know how to properly introduce a newb to their products. i was spoiled by Flash 4 when i started back in 2000. You’d open up the program, and right there on the Start screen, there were ten excellent tutorials. i completed all ten tutorials in a weekend, and then felt like i had a reasonable grasp on what Flash was all about.

      These days, Flash has been taken over by the same egghead types who are writing documentation at Apple. Even Colin Moock, who wrote the excellent AS2 primer for Flash a few years back, somehow got lost in his own brain while writing Essential Actionscript 3.0, which was a confusing mess.

      i’m guilty of it too, though. Kahoots is a complete mystery if you can’t read my mind. Thank God for the Closed Public Beta and the suggestions everyone sent in. i’ve spent weeks clarifying and simplifying the game. It’s slow and painful to have to be so explicit about every little detail, but you gotta step out of your own head once in a while if you want to bring people into your world.

  3. Keep at it Ryan! This is excellent timing to get into the iPhone despite the naysayers. Once Apple opens up the other cell phone carriers, you’ll get another wave of new users.

    http://www.gamedevigner.com/2009/05/18/catching-the-iphone-wave/

  4. It looks like at least until 2010. They may renegotiate for more time. From what I understand, Apple is just bidding its time until more advanced networking technology becomes mainstream. From what I understand, iPhone is GSM-only which is supported by T-Mobile and AT&T. Verizon and Sprint are CDMA. However, Verizon’s 4G network is GSM-based.

    I think that in either case, there is time between now and 2011-2012 timeframe to get some great games lined up for the feeding frenzy once the iPhone goes non-exclusive. Plenty of time to get good practice with Objective-C or Unity3D.

  5. PeleKen says:

    That’s almost as crazy as trying to learn ruby (http://poignantguide.net/ruby/) the manual is a popup book about bacon eating star monkey’s! Serves me right for attempting to better myself through learning.

  6. I’ve built 3 apps for the iPhone, and I hated every second of it. I was really annoyed by the fact that I had to draw a million lines from different pictures and text and colorful boxes in the Interface Builder and then learn Objective-C, which I’m not a fan of. The deployment process was a mess. So many little certificates and authentication type-things. Honestly, I gave up after months of trying.

    Then a met a kid at camp who told me he made $6000 from a Flash game (though he gave me a more than confused look when I asked him about AS3 coding) “easily”. So, here I am at Flash making a couple cents a day… I feel rather frustrated.

Leave a Reply