While many won’t understand the significance of this, this really is kind of a big deal. After accidentally stumbling on the source code for the original Prince of Persia, its creator, Jordan Mechner, has released it as open source. It took some magic to get the code, written in Apple II assembly, off the 23-year old disks. Prince of Persia created an entire genre and left an impression on the games industry that lasts to this very day. Having the original code out and about is huge.
prince of persia was the first game I tried when I got my first pc(a 486), I had to go back to school that afternoon but I couldn’t stop playing, I guess that’s when my videogame addiction started
Or is this the same code built with different utils?
Or just not found yet?
The PC version will be a completely different codebase.
The Apple ][ source code that’s been posted to github is all in 6502 assembler. PC’s ran (and still run) on x86. Even all the graphics are encoded into 6502 assembler – there’d be zero common code between the two versions.
Jordan Mechner’s journals of the time he spent working on Prince of Persia 1 and 2 are on his site, and they are an amazingly interesting read. These aren’t blogs, in the modern sense, where the content is exclusively about the development, they’re his personal journals, and reading them feels like modern archaeology digging up fragments of the game industry as it was, and the hardware that was used, and it’s a good personal story, too, since being his personal journals, they’re mostly concerning Jordan’s life at the time. I really recommend you check them out. To my point, though, the journals contain some interesting stuff about the development process on the Apple II and the Macintosh, and the lengths he went to to port it to PC.
I understand the significance of the original Prince of Persia, but I always hated that game. I just found it repetitive and dull (yet weirdly I was always hooked on Pacman and breakout clones -stuff a great deal more repetitive- around the same sort of time)
It’s funny how different games have made a different impression on different people.
When I worked at a police station it was a very popular game (together with Wolfenstein). I never liked it either, probably because it had to be played using the keyboard while as a Commodore 64 and Amiga user I was used to joysticks.
As I recall it was mainly the graphics and animation what excited people. The game itself never impressed me. Probably because I had played a lot of games by then and most people back then only were able to play games at work or had an Atari 2600.
At work I preferred to play X-Wing, which wasn’t easy to control with a mouse either.
Wolf3D*. How had I forgotten about that game? I loved Wolfenstine so much.
Was that really around the same time as Prince of Persia? I though it was more recent than that.
I could see the appeal of PoP for the graphics, but the game play always felt a little sluggish for it. I guess I was just used to 2 frame sprites
* though Wolf-pseudo-3D would have been a more accurate name. More than 8 chars though.
Edited 2012-04-17 13:13 UTC
Too lazy to ask Google, but I think Wolf 3D predated Pop. I’m guessing this because PoP showed up at the police station after Wolf 3D.
If you enjoy Wolf 3D and have a ZX Spectrum around doing nothing:
http://www.youtube.com/watch?v=vzm9KkJ5lGI
Not at all.
I was playing the original PoP for PC on a PCW 1512 running on EGA graphics, around 1990. Way back anyone would come with an idea to create Wolf 3D.
Okay, I looked it up.
PoP was released for the Apple ][ in 1989 and for DOS and the Amiga in 1990. Wolfenstein 3D was released for DOS in 1992.
In 1994 PoP 2 was released. I worked at the police station between 1993 and 1995.
My guess is after people got bored with Wolfenstein 3D the sequel to PoP made the rounds.
PoP was released in 1989, Wolf3d in 1992. Considering the time it was released PoP was pretty darn spectacular.
Also, you could play it with a joystick if you wanted, at least on the PC.
To most of today’s programmers having assembly language source code is like having no source code at all. Maybe someone should cross-compile it to JavaScript and HTML5 canvas for them. Wait, I just heard that JavaScript is the assembly language of the web and thus too low-level. So CoffeeScript it should be.
Edited 2012-04-17 09:13 UTC
You maybe should’ve included a few dozen smileys here and there, since that “them” might just not be enough for survival
Anyway, events like this can make my day. It’s really a nice experience to be able to go back to such old memories and look at them with a really “deeper” look, right down to these sources, it’s just plain fun.
Heh, yes as someone who first learned programming back on the c64 in 6502 assembly (turbo assembler FTW!) stuff like this brings me sweet nostalgia.
Also I really liked Prince of Persia (unlike Mechner’s previous game Karateka). There’s a recent ‘reverse engineered’ remake made for the C64 here together with an interesting devlog:
http://popc64.blogspot.se/2011/10/prince-of-persia-for-commodore-64…
Bet he would have loved to have had this source code and is likely having alot of fun right now comparing the way he solved certain things compared to Mechner.
I voted +1 funny but actually it’s not funny at all but a sad reality.
Adam, please add an +1 sad reality voting option. Using JS, of course.
Having written my share of 6510 and 68k assembly, I looked at the linked source code and thought to myself “thank god we’re not writing things in assembly any more”. There are already too many moments when I wish I was using more Python and less C++ at work.
Assembler code does look very cool.
I wrote a fairly large (for the time) GA flight displays package in 6502 assembler for NASA back in 1983 (I think). We took it to the Oshkosh Air Show, running on two Atari 800s and the flight sim proper on a small minicomputer, all linked with RS-232.
While I mostly write Python now (when I have time to code at all), the one thing I miss about those halcyon days is that I controlled every single machine instruction running on each 6502. And given De Re Atari, I’ve never had as deep of an understanding of any machine before or since. Well, except perhaps the CPU I designed and built as my senior project – but it lacked a good display processor. ๐
Abstraction is great, but sometimes you need to understand what’s happening at the bare metal.
Raspberry Pi, perhaps? ๐
Now this is just awesome. Prince of Persia was one of my first games. When I had a machine with a 286 processor and Hercules monochrome graphics. Yeah, those were the times…
This makes me remember my 8 year old self being blown away by being able to hear things like footsteps, tiles crashing down on you, and sword noises when we added an original 8-bit Sound Blaster to our 286.
Wow, this guy wrote some really clean, well documented code.
Who will be the first to port it to JavaScript? If I’d more time and/or would know that no one would beat me to it, I’d do it.
Anybody has some clue on how to build it? I never had an Apple II, all my assembly skills are in x86 (DOS, Win32, and BeOS).