Classic Adventuring in JavaScript

Ajaxian more than earned it’s spot on my RSS Reader this week when they told me about sarien.net. Now, if you’re around my age, you have really fond memories of the old Sierra Adventure games, and sarien.net is the perfect way to honor these classic games, by making them playable in your web browser.

Now, there have been other browser-based retro gaming sites, but in this case, it’s implemented in JavaScript and Canvas. Of course, this means it only works in new browsers (Safari 4, Firefox 3+, etc), and that it doesn’t work in IE at all, but this is a seriously cool hack.

Martin Kool, the guy behind the site, has a pretty decent write-up about the tech, though I’d like some more techy-details, that I’ll have to go to the source for.

So, how’s it work? Well, Martin has extracted the data files from the old Sierra games, and run them through a special parser that converts the AGI code to JavaScript. This is no small feat, really, as JavaScript has no support for things that AGI requires (like GOTO), and using the Canvas support in modern browsers to render the images. He does add support for the Q42 multiplayer engine developed at the company he works for so that you can visit with other players while you’re playing, though I’m unsure how interested I am in that, luckily, you can turn that bit off.

Martin’s rewrite of the javascript code, converts the application into an enormous switch-case block which allows a reasonable equivalent to the ‘goto’ that AGI uses. I haven’t had a chance to analyze the exporter, so I can’t say much about it, but I agree with Martin, that I hope Activision-Blizzrd (the current copyright holders of the old Sierra games) allow this site to remain as what it is, a beautiful shrine to these fantastic games, and hopefully it might encourage more movement on the adventure game front in the modern world.