Monday, May 14, 2007

The 7th Guest, Powerpoint Limbo, and How I Became a Game Programmer

bI was just reading Glenn's Blog wherein he mentioned that he started programming in C when he was still in swaddling clothes. (Ok. So Maybe I am exaggerating a bit...but not much.) It made me reflect on how I had gotten it into my head in junior high that I wanted to be a game programmer. I could not program in swaddling clothes...in fact, until I was a junior in highschool, I didn't even know anyone who *could* program. Well, there was that guy down the road when I was in highschool, but I had a crush on him and I sure as hell wasn't going to go over there, knock on his door and ask him to teach me assembly...that might betray my raging hormones!
I was, however, interested in computers from a young age. I was interested in computers as a means to an end--and that end was games. My parents were of the correct conviction that Nintendo rotted a child's brains, so I made friends who had consoles and C64s. I begged my mother to let me stay after school to play the ascii driving game called, creatively, "Driver" on the Apple ][ machines at my primary school. I got very good at pretending I was controlling the actions of characters in the arcade games at the local Taco Time without actually inserting quarters into the machine.
When I was in 4th grade, my parents purchased a brand new, shiny, atom smashing Gateway 2000 486/66 with 8 megs of RAM and a SoundBlaster sound card. They also bought my sister and I a copy of Sim City 2000, which I never got very good at. Now I know people who worked on SC2000. And it's kind of creepy.

Around that time, I first played the 7th Guest at a friend's house. In stunning 3D, it was the coolest game I'd ever seen. My friend and I worked on the massive maze in the dungeon of Stauf's mansion and at every dead end, we'd look at eachother, giggle, and recite, along with the computer: "Feeling....Loooonely?" When I finally scrounged up enough birthday money to buy my own copy of The 7th Guest, I was dismayed to discover that it wouldn't run on my family's 486! It was the first time I'd ever had to troubleshoot the computer. (The soundcard settings were incorrect. I still remember that the IRQ channel for the later first gen Soundblasters is 5 and not 7 like it says in the manual.) I became fascinated with troubleshooting and started reading any literature on DOS that I could get my hands on. Which wasn't much.
Programming was completely alien to me at this point. I thought that writing batch files was equivalent to coding, and I was totally baffled by the fact that when you opened an .exe file in notepad, it was gibberish. I didn't even know that you
needed a compiler, nevermind what one was.
The offerings for programming at my highschool were non-existent. The highest level computer class was basic HTML, and there were only four other people knowledgeable enough to take that class. My highschool had a lamentable lack of other geeks. The other marginally interesting sounding computer class was "Computer Media", which was really "How to use powerpoint". All computer classes were presided over by two incompetent vultures. Of this Clarice and Cora of the Computer Lab, I won't say much, except that I had no basic understanding upon which to learn how to program. Someone was going to have to teach me, but it certainly wasn't going to be these two.
At this time, I had developed a sort of hero worship for Graeme Devine, who was the head programmer on...you guessed it...the 7th Guest, and the 11th Hour. I'd found and xeroxed an article he'd written for Wired Magazine about developing the 11th Hour and the benefits of Object Oriented programming. I looked OOP on the internet. The first site I'd found talked about a black box and something called "encapsulation". WTF is THAT?
I thought, "I want to program games like Graeme Devine!"
At my second Highschool, I started learning how to code in Visual Basic. I wrote some rudimentary programs of the type that highschool kids write. I can't remember any of them. Faced with code and deadlines for the first time, I made a resolution that there was no way in hell I was going to do this as a career. So I applied to college as a major in biology.
Except that my resolution to stay away from code fell through...
Freshman year in college, a friend came to me and said "Hey, you want to take Object Oriented Programming with me? We get to write Tetris!" I said yes for three reasons: a) I finally got to learn what OOP was. b) TETRIS and c) misery loves company.
It wasn't miserable though. It was more rewarding than any of my biology classes.
OOP became Assembly.
Assembly became GPU coding.
C++ happened on and off, in patches throughout.
...and next thing I know, I'm working as a coder for the artist formerly known as Maxis!

No comments: