The making of a Prince
Apr. 19th, 2012 12:16 pmThis is absolutely fascinating (disclaimer: this might not be very interesting)
Jordan Mechner recently released the long-lost source code for Prince of Persia on the Apple II after having to drag it through several layers of gradually advancing disk drive technology. Along with reams of assembly language with wonderfully descriptive comments like lda #Splat ;yecch, he also unearthed a design document that he sent to the people who worked on the various ports, who dutifully ignored it and messed it up massively instead.
That document is an interesting, understandable look at how the game works underneath - revealing things like the way that all the enemies are actually treated as the same object (named as Shad even though it's very rarely used for Shadowman, as he has now been christened) which is loaded at the start of the level, which is why the levels with the skeleton and Fatty are unique in having no other enemies on them. It's also quite clever how he managed to make the game so fluid - the levels are drawn on a grid but characters only adhere to it when it's absolutely necessary, and it's impressive that he draws parts of the screens that are hidden off the edges of the visible area to keep objects active nearby.
A table near the beginning describes the background graphic sets and enemy types, and it confirms the game's long-standing numbering confusion in that it has three separate levels at the end that are all called "Level 12" - but the biggest surprise for me was that all the levels were actually given names!
Some of these are very obvious, like "Demo", "Tower" and "Cell" - I assume that "Newskel" and "Newmirror" replaced earlier attempts that he had at the skeleton and mirror levels. "Thief" is the level where the shadow steals the potion from you, and "Quad" starts you off in a room with four doors that you have to revisit a couple of times. I was less sure about "Wild" and "Wtless" (though
rakarr realized that it was short for the level with the "weightless" potion) and am absolutely mystified by why level 8 is called "329". It doesn't physically resemble the number, and its special feature is that you're rescued by the mouse - the release of this design document has created an entirely new mystery of its own.
Jordan Mechner recently released the long-lost source code for Prince of Persia on the Apple II after having to drag it through several layers of gradually advancing disk drive technology. Along with reams of assembly language with wonderfully descriptive comments like lda #Splat ;yecch, he also unearthed a design document that he sent to the people who worked on the various ports, who dutifully ignored it and messed it up massively instead.
That document is an interesting, understandable look at how the game works underneath - revealing things like the way that all the enemies are actually treated as the same object (named as Shad even though it's very rarely used for Shadowman, as he has now been christened) which is loaded at the start of the level, which is why the levels with the skeleton and Fatty are unique in having no other enemies on them. It's also quite clever how he managed to make the game so fluid - the levels are drawn on a grid but characters only adhere to it when it's absolutely necessary, and it's impressive that he draws parts of the screens that are hidden off the edges of the visible area to keep objects active nearby.
A table near the beginning describes the background graphic sets and enemy types, and it confirms the game's long-standing numbering confusion in that it has three separate levels at the end that are all called "Level 12" - but the biggest surprise for me was that all the levels were actually given names!
| Level | Name |
| 0 | Demo |
| 1 | Cell |
| 2 | Guards |
| 3 | Newskel |
| 4 | Newmirror |
| 5 | Thief |
| 6 | Plunge |
| 7 | Wtless |
| 8 | "329" |
| 9 | Twisty |
| 10 | Quad |
| 11 | Wild |
| 12 | Tower |
| 13 | Final |
| 14 | Victory |
Some of these are very obvious, like "Demo", "Tower" and "Cell" - I assume that "Newskel" and "Newmirror" replaced earlier attempts that he had at the skeleton and mirror levels. "Thief" is the level where the shadow steals the potion from you, and "Quad" starts you off in a room with four doors that you have to revisit a couple of times. I was less sure about "Wild" and "Wtless" (though
no subject
Date: 2012-04-19 11:43 pm (UTC)no subject
Date: 2012-04-20 12:56 pm (UTC)no subject
Date: 2012-04-20 01:39 pm (UTC)no subject
Date: 2012-04-20 01:51 pm (UTC)Having the source code almost takes the fun out of guessing stuff. ;P
Of course... you could always just write to him and ask!
no subject
Date: 2012-04-20 02:08 pm (UTC)I took your advice and threw a comment in! Uncanny auto-generated icon, isn't it.
no subject
Date: 2012-04-20 02:44 pm (UTC)http://jordanmechner.com/wp-content/uploads/resources/POP_sample.pdf
(this is the first 40 pages...)
It's kind of charming to know that even the people who made such unquestionable classics were wracked with doubt over whether they should bother...
no subject
Date: 2012-04-20 03:00 pm (UTC)Hah, I've just remembered when my dad last came over, he told me that he'd seen "Prince of Persia" on the plane and asked "Wasn't he the little man who climbs up the walls?" And I explained to him that yes, Jordan Mechner had written the game and was now a screenwriter who had reworked it into a film... he just couldn't believe they were born from the same thing :)
The part I really like is that "Prince of Persia" was meant to be a placeholder title, suggested by someone else... that makes me feel less bad about my own games, which are always named out of a sort of desperation when I can't think of a better title.
no subject
Date: 2012-04-20 08:03 pm (UTC)http://en.wikipedia.org/wiki/Achaemenid_family_tree
Possible history lesson?
no subject
Date: 2012-04-20 08:10 pm (UTC)no subject
Date: 2012-04-20 11:18 pm (UTC)I am so unspeakably glad that the game went a different route from this!
no subject
Date: 2012-04-21 01:59 am (UTC)