Friday, December 11, 2009

Video games

As a child I loved video games. No really, I liked video games more than just about anything else in life. I grew up in the golden age of arcade machines and I spent hours watching people play Pacman, Donkey Kong, Tron, Mr. Do, Mario Bros. (just the regular, not the super), Spyhunter, Dragon's Lair, and many others. And when I say I loved video games more than anything, well, here's a few examples.

In grade 2, I had a huge crush on Leah Hilson. My very generous sister somehow manage to arrange a playdate over at her house on my behalf. I went over to Leah's house and her mom asked me what I wanted to do, listing the swimming pool, treefort, board games, and the Atari. Bingo! I sat and played Pitfall for 6 hours and didn't speak to Leah once.

When I went on ski vacations with my family, the lodge had an arcade on the second floor. Many days I would claim I didn't feel like skiing in the beautiful Wasatch mountains and instead spent the day hanging around the arcade watching people play video games. Of course there was always that dead time between 10 and 3 where everyone was out skiing and there was no one playing in the arcade and I didn't have any quarters. But I didn't mind. I'd just watch the endless 15 second loops of sample game play that the machines used to lure you in.

During the summer holidays, there was nothing I liked better than to bike to downtown Burlington and spend my day hanging out in the Golden Nugget Arcade. It was a dark, grimy, smoke filled, heavy metal playing, drug dealing pit. But I couldn't be happier than when I was hanging around there watching video games. Every so often, I'd find a quarter on the floor, or a leftover credit on the machine, and then joy of joys, I actually got to play video games.

Naturally I wanted a home system so that I could play video games all the time. I really hoped that my mom would buy me an Atari, or a Colecovision, heck I would have even settled for a Vectrex. Instead she got me a TRS-80. Unlike the previous consoles I mentioned, the TRS-80 actually had a full keyboard, and a pretty good embedded BASIC system so that you could learn something about computers. You could even play great games like Dungeons of Daggorath.


This attempt to sneak something educational into my life was surprisingly effective. Rather than spend money on expensive games, my mom bought me a book of code listings. Yes, I could play a game if I just first transcribed multiple pages of dense BASIC code onto the computer. Luckily you only had to type all the code in once, so long as you had an attached tape recorder to save your work. Any boombox would do, so long as it had a record button. Old BASIC code is terrible. Rather than naming the slots that store your scores with descriptive names like PlayerScore and HighScore, the severe memory restrictions of the computer meant that these slots would be called PS and HS, or as was often the case AA and BB. So it wasn't easy to learn anything from transcribing these listings, but I did get a sense of how to branch execution, assign values, and abuse GOTO statements.

In High School I started taking some programming courses. But I was bored with all the data structures and information processing. I wanted to make video games, and you couldn't easily access the graphics hardware from Basic or Turbo Pascal. So I purchased a copy of Borland's C++ and learned to program by reading the manuals that came with the compiler. Ouch. Later I found a great book on graphics programming, and wrote a few games using the secret Mode X VGA resolution of 320 x 200 (just a wee bit smaller than the iPhone's resolution of 320x480). Then it was off to University, with dreams of becoming a great programmer, and hopes that I might one day work for a real video game company like Blizzard.

Sadly, in University I was exposed to women, socialists, and scientists, and my dreams of becoming a video game programmer started to crumble. Instead my 20s saw me through a string useful, but dull programming jobs:

Writing scheduling software for Inco - oh the girls are out to bingo and the boys are getting stinko and there'll be no talk of Inco it's a Sudbury Saturday night. Yes, that Inco.
Writing cash register software, or point of sale software as we liked to call it.
Working for the investor ripoff con ModernGroove.com.
Writing a filter to import Outlook 2000 mailboxes into Outlook 2001.
Writing plant control software for Lehigh Cement.
Writing translation filters to import data from PeopleSoft into Business Objects.
Developing visualization software to overlay microarray data onto protein interaction networks (yes Masters degrees are fun.)
Writing software for high throughput analysis of flow cytometry data.

I was once offered a job to develop a massively multiplayer online 3D game. But as it turned out, that game was poker, and I didn't really fancy getting involved in online gambling. In the meantime, Eddy, game designer extraordinaire, had been busily working on his hobby project Osmos. I played some early prototypes in Montreal and thought it was pretty darn fun, but when I saw the finished project I was blown away. I knew I needed to be a part of it. Luckily at that time, Eddy was nearing a total breakdown, and he was happy to offload some of the work. And so it was that I quit my cancer research job, and finally returned to the dreams of my youth to program video games. I've spent the past 2 months furiously working on the Mac version of Osmos, and it has been released today! But this time, I didn't skip any ski days for video games.

Go check it out at Hemisphere Games: http://www.hemispheregames.com/osmos/.




Addendum: I should point out that the finished product was incredibly awesome, thanks not only to Eddy's work, but also the rest of the team, Dave, Kun, Andy, and many more.

Monday, December 7, 2009

More skiing

My life seems to revolve around skiing these days. Here are a few more pictures to help you understand why. All pictures courtesy of Matt Sumner.


The rosy cheeked glow of a windy -18 degree day.


Our favourite ridge. The skiing in the trees down the left side is phenomenal. I suppose I ought to keep it a secret, but there just seems to limitless powder for everyone. No new snow falls, but everyday there's fresh powder off the ridge. It's magic.


Looking back over Whitewater at 2:30pm. Oh but these winter days are too short.

Saturday, December 5, 2009

The Internet is awesome.

The Internet is awesome.

I woke up this morning cold. Using my modern survival skills, I walked over to the thermostat and turned up the heat, but nothing happened. Yikes, a cold snap is approaching Nelson, and our furnace appears to be broken.

Well, I thought, perhaps a fuse has blown, but a quick trip to the fuse box ruled out that possibility. So I headed downstairs to have a look at the furnace. The gas hot water heater was happily burning away, so I knew that our bill had been paid (a troubleshooting step that hasn't been solved for Matt's wireless Internet connection.) So what was wrong with our furnace?

Now, I'm not a particularly skilled handyman. I don't own any tools aside from a Leatherman and some duct tape, not even a pair of vice grips. But, as one of the manliest men in the world once told me, sometimes the secret to fixing things is to pull off the cover and have a poke around.

I pulled the cover off the furnace to be greeted by darkness. Clearly the pilot light was out. Or perhaps this was a new furnace that has electric ignition and doesn't have a pilot light. But somehow the font for the furnace name didn't exactly scream new furnace to me.


Now the handy Airco corporation had included a set of instructions on how to relight the pilot light.

But I was stuck on the second sentence of step 2. "Light Pilot." Well, how do I do that, I wondered? The pilot light is easy to find when it's glowing a nice shade of blue, but when it's out, how do you find it?

Enter the Internet. A quick search brought up this wonderful page on how to troubleshoot gas furnaces. These instructions also assumed you knew where to hold your lighter when lighting the pilot light, but fortunately their explanation of how the whole system worked allowed me to reason through it. If I'm holding open a valve to relight the pilot light, maybe I should follow the tube the valve is connected to. Voila, pilot light burner found.

Sadly, the pilot light wouldn't stay lit. But oh sweet sweet Internet, you held my hand through this problem too. A quick trip to the hardware store, $8 for a new thermocouple and we have heat again.


Would I have been able or willing to repair a gas furnace without the Internet? Not a chance. But thanks to the modern information age I sit here toasty and warm, with the happy satisfaction of having fixed the problem myself. Maybe I'll go buy some tools.