Every so often I get hit by a wave of computing nostalgia. This weekend it was a veritable tsunami triggered by the discovery that a number of old MS-DOS games are available to play online in your browser, including the seminal Prince of Persia. This game has a strong connection with AutoCAD, for me, so today I’m blogging about that.
I first started working with AutoCAD while I was still at high school – it must have been around 1989. After a successful (but mind-numbingly boring) summer project at a local manufacturing company, converting their old engineering calculation routines from PET BASIC to GW-BASIC (which mostly involved typing code in from dot matrix print-outs, as far as I recall), I started reading the manuals for their new CAD system, AutoCAD R10. In due course I was creating LISP routines to automate the 2D drawing of nozzles and flanges for their plastic pressure vessels. This work set me up with some spending money for my later studies, and I have very fond memories of that period of my life.
Back when I got started, our drawing office used Compaq DeskPro 386 machines. These were great machines, not only for running AutoCAD for DOS but also for running early PC video games. The game that captured our collective imagination, from around 1990-91, was Prince of Persia. We would play it at any opportunity outside normal working hours.
This game was simply unbelievable. Until then I’d probably been most impressed, character animation-wise, by ZX Spectrum games such as Tir Na Nog and (to some degree) Heavy on the Magick. But Prince of Persia blew these out of the water – the way the main character moved was incredibly realistic.
So on Saturday afternoon, after playing the game for a few minutes – sadly my muscle memory for the gameplay has faded to nothing and I don’t have the patience to reacquire it – I decided to look into its origins. Fairly quickly I came across the original User’s Guide for the game, at which point I realised the game was developed in San Rafael, Marin County. Close to where I’d myself lived and worked for a number of years at Autodesk!
This struck me as pretty amazing: both pieces of software I was using at the time had been developed in the same Northern Californian town. (OK, in fairness AutoCAD was developed in Mill Valley and Sausalito during the period in which Prince of Persia was developed – Autodesk moved its HQ to San Rafael in 1994 – but this was definitely a topic worth looking into.)
The creator of Prince of Persia was Jordan Mechner, at the time a twentysomething from New York and recent Yale graduate. He’d previously written the popular Karateka game (not one I played myself) and ended up moving out to the Bay Area to work on a new title – which became Prince of Persia – for Brøderbund Software. These were the days when mainstream computer games were still often written by individual – albeit highly talented – programmers, something that’s now only really possible in the indie games scene or for rare breakouts such as Minecraft. Although interestingly – and perhaps this is also something that makes him exceptional – Jordan’s passion was cinema: he was also working hard during this period to succeed as a screenwriter.
Jordan kept a journal during his years developing the game, which you can buy from Amazon or access via a historical snapshot of his blog. The journal makes fascinating reading, talking about the animation process, going from videoed real-world footage – often of his younger brother, David – to individual frames. This rudimentary, rotoscoped motion-capture approach has arguably become the foundation for most 3D games, today.
Image copyright Jordan Mechner.
If you’re interested in seeing how this process translated into the game at various stages of development, be sure to check out the videos Jordan has posted on Vimeo.
Reading the journal was heavily nostalgic for me: Jordan describes the video camera’s battery dying while he was trying to pull himself upwards, hanging off the bus shelter at North San Pedro Road (the freeway exit I used to take to go home to the place we rented in Santa Venetia). Basically in an attempt to capture the frames for climbing up onto a ledge from a hanging position (which is understandably really hard to do).
Given the benefit of hindsight, the journal is also poignant in places. In a number of entries Jordan describes the beauty of Tina LaDeau, the 18-year old actress – and daughter of a colleague of Jordan’s at Brøderbund – who came in to be captured for the role of the princess. In a later entry she’s described by a friend as having “the ephemeral beauty of an 18-year-old.” That turned out to be all too true: Tina tragically passed away in August 2012 at the far-too-young age of 41.
Jordan talks about many of the struggles behind making Prince of Persia a success: for instance, it very nearly flopped due to lackluster marketing as well as having been developed initially for the dying Apple II platform (its success eventually came once it was ported to the IBM PC). He also paints a vivid picture of his life at the time, describing personal relationships and current events such as the first Gulf War and the 1989 earthquake. He mentions eating at Marin Joe’s and the Royal Thai as well as a picnic at the Marin County Civic Center duck pond – all of which I remember well from living in San Rafael in the early 2000s.
After reading the journal for the Prince of Persia years in one sitting – it was compulsive reading – I decided to check out the game’s source code. While fans have been sharing disassembled versions for years, Jordan rediscovered the source for the original Apple II game a few years ago and posted it to GitHub. While the code itself is mostly incomprehensible to me, I’m always fascinated to see the how programmers during the early part of the personal computing era overcame significant resource constraints to push boundaries and essentially create works of art, much as Ian Bell did when creating Elite. One example from Jordan’s diary: the “Shadowman” character was born because so much of the available memory was taken with the main character’s animation frames. XORing the frames with a single pixel offset allowed Jordan to introduce another character with near-zero memory overhead – and it took about two minutes to implement. Later on additional adversaries were able to be introduced into the game, but you have to admire the ingenuity behind this initial one.
Here’s the point at the end of level 4 where Shadowman gets created as you jump through a mirror. Totally cool.
Prince of Persia’s success didn’t end with the initial game (although admittedly I personally haven’t followed its progress since): the first game spawned a successful series of games and even a movie – which is great for Jordan finally to have made the crossover from video games to cinema, having written the first screenplay and been an executive producer for Prince of Persia: The Sands of Time. Interestingly the whole Assassin’s Creed series was essentially a Prince of Persia spin-off (the initial game was being developed by Ubisoft as “Prince of Persia: Assassins”). Describing this game’s impact on the entertainment industry as significant would be quite an understatement.
So if you feel like playing this game – whether for the first time or, as I did, to remind you of good times – head on over to the Internet archive and take it for a spin. There are lots of other gems posted there, too: is your favourite MS-DOS game?