I spent the whole past weekend at the Voices That Matter Developers Conference which was hosted in Philly, right in that new glass and steel high rise that is connected to 30th street station. It was awesome. I think the best part was a dream I've had for most of my life actually looks achievable to me instead of like the thing I'll always wish I'd be able to do.
When I was a youngster my father had a Radio Shack TRS-80 and a cassette drive and somehow had acquired some games on cassette, he may have purchased them or dubbed them from someone in a club, I really have no idea I think I was somewhere between 8 - 10 years old. I played some of the "You are in a dark cave …." style games. I tried my hand at writing some in Basic. They were simplistic and pretty boring, even to me, after I got over the initial thrill of having created them.
Soon after I was given a C64 courtesy of my Uncle Jim. And I had hundreds of video games on 5-1/4" floppy for it and it was then I started a seed that has been with me for all of my life. I've always vaguely wanted to make games, but for some reason never took real steps to make any.
I mean I took some steps. When I had the C64 I bought Gary Kitchen's GameMaker, and went through some of the tutorials but never really committed to figuring it out. I didn't do much on that front for years, I was quite busy growing up, playing football, reading and really pursuing all sorts of other interests like earning some engineering degrees. But then after college at some point when a company I was working for wasn't very interesting I decided once again to "pursue" video game making as a hobby. I bought a book on .NET game development—I wasn't going to fall into the trap of doing it in Linux my preferred environment at the time, I knew I couldn't make a living with that. As I read a bunch of the book, I saw this huge expanse of uncharted territory opening up before me. It looked hard. I knew I had lots of other things that were important, and although I told myself this was important, I hadn't really decided that it was. It was the sort of thing I could do later, like work out or learn to speak Spanish or learn how to play an instrument. There was a vague floating abstraction in my mind of how it will be when I'm a "game programmer" sort of how people think about how it will be when they win the lottery.
I had that typical mindset of most people who fail at some goal or another. I wanted buying the book or software to be the hard part. I wanted the software or book to replace me as the driver on the way to my goal.
Now to cut myself a break, I was achieving other values the right way with me in the drivers seat, all this time. But at some point I need to either let go of that floating ideal or decide what it really means, if I want it, and how and when I'll get there.
When I started developing for the iPhone I of course thought of games but didn't have any ideas, I looked at how to get that done a bit but I saw this huge undertaking ahead of me, most of it consisted of: understand OpenGL which although confident I could figure it out, was not motivating at all. The cubes in all the examples don't inspire confidence, neither does the linear algebra that I've more or less forgotten at this point. And even if I could figure out openGL, I had no idea on how to tie that knowledge into whatever else I didn't know about game programming. It seemed like I stood on the edge of a vast unexplored wilderness and knowing that if I were committed I could plunge in and build a little industrial town along one of the rivers out there, but also looking at the fact that I given my current pursuits I could hope only to do maybe 8 hours a week on this dream and see that I'd never even have a vague idea what a game should look like (on the inside) for years. So I plunged in on iPhone program with the idea for ReadingTree, which I never classified as a game, although I guess in some respects it is. I knew what I wanted and I achieved it to some degree. Which I thought was just awesome, and still do. And I've been working on a few other apps in the mean time, having a great time. But figuring that game programming was something I'd do later, I'd get rich with my other apps, and full time job and then have 5 unbroken years to learn how to do game programming and finally get down to it.
Well thanks primarily to Mike Daley and Rod Strougo my premise of requiring omniscience to become a game programmer has been shattered, as they have pulled aside the first layer of underbrush and shown me a general path toward the promised land of "Game Programming." And in just a few hours this weekend I cultivated some idea of what game programming would actually be, and more importantly decided that I will be launching a game in the Apple app store for an iOS device near you.
During the first day I, somewhat reluctantly, purchased Mike Daley's book Learning iOS Game Programming. I didn't want to have another game programming book sitting around collecting dust, but I planned on attending the game programming sessions so figured maybe this was the lottery ticket I'd been waiting for.
Then on the second day in the morning Rod Strougo of Prop Group, LLC gave a great talk on using cocos2d to create games. He made it seem very achievable and tied the concepts in his talk to a simple example game which he dissected throughout and demonstrated the effects of simple changes. I left convinced I could do the things he demonstrated and actually package a cocos2d game.
Finally the last session of the day was by Mike Daley, of the blog 71Squared, gave my favorite presentation of all time called Moving to 3D. The idea was making an OpenGL ES 1.1 app on an iPhone from scratch, so he introduced quite a bit of basics. He created an app (source available) which put you in the center of a 3D world where you were subject to bombardment by ships flying overhead, you could use the gyroscope in the iPhone 4 to move the phone and change where you were looking in the world. And tap the screen to fire missiles at your attackers. His talk was basically an introductory walk through the essentials of making that game, diving into the code, jumping back up into theory when necessary, but only covering the absolute essentials in a way that was accessible to someone who is mostly clueless when it comes to this stuff.
Things that made zero sense to me before were clear. I obviously know very little more now about actually creating a game, but I had built a conceptual framework of what was essential to know and how to begin learning what I needed to move ahead. I am now very excited to have purchased his book and was brainstorming game ideas with my wife over breakfast.
I am going to dive into getting my current app finished and into the store as quickly as possible so I can get started on my game.