How Prince of Persia Defeated Apple II's Memory Limitations | War Stories | Ars Technica

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

Very interesting video, even though it's more about game design iterations than memory usage tricks

👍︎︎ 209 👤︎︎ u/jjibe 📅︎︎ Mar 18 2020 🗫︎ replies

Fun fact about Karateka... he also made an easter egg where the other side of the disk contains the entire game rendered upside down.

👍︎︎ 45 👤︎︎ u/mrkite77 📅︎︎ Mar 18 2020 🗫︎ replies

I'm pretty thrown off by the ending. The entire video he's talking about not being able to add another character. But then at the end he adds guards and a final boss without much fanfare.

👍︎︎ 75 👤︎︎ u/ckach 📅︎︎ Mar 18 2020 🗫︎ replies

TIL that I’ve been pronouncing Karateka (Karate-ka vs Kara-teka, as he says it) INCORRECTLY all these years! :(

👍︎︎ 53 👤︎︎ u/ahrexx 📅︎︎ Mar 18 2020 🗫︎ replies

xor is such an elegant operation. It's great for things like graphics operations for example drawing something then easily erasing it.

👍︎︎ 63 👤︎︎ u/revnhoj 📅︎︎ Mar 18 2020 🗫︎ replies

Those machines were definitely pretty cramped programming environments. We had several of them in high school back in the '80's and my first 3 years of high school were somewhere with a decent set of programming classes. I changed schools for my senior year (Something I still regret decades later) and they'd just gotten some Apples at the new school. So my senior project was a graphing program written in the Apple Pascal environment. It used turtle graphics for the graphing parts and could do bar graphs, line graphs and pie graphs with an arbitrary number of data points on the graph you selected. You could also label the data points and the labels would show up on the graphs. By the time I was done, memory was so tight I had to swap all the keyboard input routines out to floppy. I also had to put the pie chart portion of the program on another floppy. IIRC all the code for it was neighborhood of 20 kilobytes.

👍︎︎ 15 👤︎︎ u/FlyingRhenquest 📅︎︎ Mar 18 2020 🗫︎ replies

I love that he talks about the rest of the PoP series but just completely skips PoP 3-D!

👍︎︎ 16 👤︎︎ u/vomitHatSteve 📅︎︎ Mar 18 2020 🗫︎ replies

In late 1990, while working in Melbourne, I liked to browse the games at my local game shop at lunchtimes, and I remember the Prince of Persia running in a PC in attract mode - showing the title screen and playing the beautiful music through an Adlib sound card, and then showing a demo of the game in action. It was amazing, and attracted constant attention from other shoppers. I'd try to browse the game shelves, but keep being drawn back to the PC to watch the PoP game demo and marvel at the sound and graphics. What could I do ? I purchased the game, even though my old PC at the time had no sound card. The game still sounded pretty good through the PC's squeaker, without any sound card. The shadow guy had me stumped for a few hours - I tried jumping / searching all round the level and the prior level for an alternate way around him, and I laughed my head off when I finally figured it out. Several years later, when visiting Apple ][ news groups (usenet), and Simtel (for early Apple ][ emulators), and early Apple ][ game archive sites I discovered there was an Apple ][ version of PoP. What, no way ?? YES ! Incredible ! Amazing what clever game devs could squeeze out of the early computers and consoles. Karateka was also a great game - I had that one on my Apple ][ in 1984-85 approx, and it had a terrific Easter Egg if you inserted the disk wrong-side-up, and another right at the end if you tried to fight the princess ... Anyway, hat's off to you Jordan. Thank you !! :) P.S. I now realise I've been saying "Karateka" wrong all these years. This gets my vote for the best War Stories episode yet.

Edit: fix typo.

👍︎︎ 9 👤︎︎ u/MooseSoftware 📅︎︎ Mar 19 2020 🗫︎ replies

Skip to @8:50 if you want a fluff problem explanation. and @12:00 if you want to skip a slightly more technical explanation (eventually).

The one tidbit I really liked is the journal. Journals are a major key to great work imo

👍︎︎ 18 👤︎︎ u/AttackOfTheThumbs 📅︎︎ Mar 18 2020 🗫︎ replies
Captions
I developed a storyline for Shadow Man comes back at predetermined moments through the game there's one point where he steals a potion just as you're about to reach it Shadow Man comes running in drinks it and runs off there's another moment where you're about to get through gate shadow man walks up steps on the pressure plate and closes the gate at that point you fall back down three levels and you're gonna have to work your way back up these encounters were scripted to make you hate Shadow Man and see him as your enemy so that by the time you faced him with crossed swords at the end of the game you really want to get this guy because he set you back so many times it's a way to build an emotional relationship between the player and an opponent through the actual gameplay rather than just telling it in a cinematic hi I'm Jordan McNair creator of Prince of Persia this is how I animated myself into a corner and had to fight my way out so I was kid in New York in the mid 70s I was into comics I loved movies I grew up on Mad Magazine and if computers hadn't come along when they did you know I might have ended up doing comics animation but when the Apple to Kim in 1978 I saw this as a machine that I could first of all used to play games at home which was never possible before instead of taking rolls of quarters down to the local arcade I could stay at home and play space invaders on the Apple two as much as I wanted the computer was also a way that I could make my own games and I became fascinated with that this is before the internet so pretty much everybody was self-taught I subscribed to creative computing magazine and then a little later soft talk magazine which had articles about how to program and then I would trade tips with my friends who are also into computers you [Music] so my first games were copies of existing arcade games and you always had three lives and the goal was to get a high score but now I was a freshman in college and I wanted to do a game that would tell a story so that's when I started programming the game that would become care Attica it was a very simple story the princess has been kidnapped by the evil warlord who's taken her to his castle and so as the hero you have to fight a series of karate battles with the Warriors who are guarding the fortress so you're basically running from left to right you fight one warrior after another until you reach the end and then you fight the big bad guy and rescue the princess so the computer that I was working on was the apple two and at that time the Apple was actually the number one game platform but it had limitations the Apple to use music capabilities were at that grade it only had four colors the screen was 280 by 192 pixels and everything had to fit into 48k of memory that was pretty much a hard limit in those days this was before Photoshop this was before we had graphics and animation tools if you wanted to put a character up on the screen you pretty much had to do it pixel by pixel so when I tried to do the animation for the character I found out pretty quickly that it just looked stiff and it didn't have the lifelike quality that I was imagining in my head so I used a technique called virtus coping which actually has a long history it goes back to the early days of film animation early Disney animators used film footage as reference for the animation in the early films if you look at Snow White the human characters like Snow White and the prince were actually animated using rotoscoping which means that the Disney animators film the live actors doing the moves that they needed to animate on screen and then they would actually project these frames and copy retraced them frame by frame to create the animation that we've seen so I did that for caretaker I used super 8 film to film my karate teacher doing the kicks and punches and the movements that I needed the character to do on-screen and then I traced each Super eight film frame with tracing paper and pencil and then translated those into pixels to get it up on the screen that was kind of the rotoscope 1.0 [Music] Kerra ticket came out in 1984 and it became a number-one bestseller so this was really lucky for me that it happened when it did because as I graduated from college instead of going out and getting a job I actually had the luxury of thinking what do I want to do next and I had an idea to do another game one of the inspirations was the first 10 minutes of the movie Raiders of the Lost Ark if you remember you know Indiana Jones and the opening sequence runs jumps over Pitt almost misses spikes spring out of the wall you know there's a gate that's closing and to me like those actions kind of matched what I was seeing in platformer games like Lode Runner and the castles of dr. creep where you'd step on a pressure plate it would open a gate I thought what if we combine that gameplay with a character who's so human feeling that you feel like if you missed the jump and you fall it's really gonna hurt because I mean really platformer games characters were kind of weightless you know you would jump and you would make it or not but you would float down to the bottom it didn't feel like you could really get hurt so my idea was to kind of combine the basic platform puzzle type gameplay in a sort of a modular environment with very smooth visceral running and jumping animation that would capture the excitement of the opening minutes of Raiders of the Lost Ark the story of Prince of Persia was also simple like kara ticket involved rescuing a princess and it was really inspired by the Thousand and One Nights and by movies like the 1940 Thief of Bagdad in which an evil Grand Vizier has seized power and imprisoned the princess for Prince of Persia I knew I was going to need so much more animation running jumping climbing falling all the movements that the little character would have to do on screen and by the time I did the animation for Prince of Persia in 85 a new technology had come along VHS so using one of the early VHS cameras a videotape of my brother running and jumping and doing all those things in the parking lot across the street from our high school and then the problem was how to get these videotaped frames into the computer after a bit of trial and error the technique that I finally settled on for Prince of Persia was a kind of a analog to digital to analog to digital I involved several steps I took the videotape of my brother and put that on a TV screen in a darkened room put a 35 millimeter film camera on a tripod aimed it at the TV screen and then took a picture did a frame advance on the VCR took another picture frame advanced game advanced for in advance then I took that roll of film containing about 35 frames down to the local fotomat the one hour photo had the film developed and then got back a sheaf of snapshots which I then scotch tape together and using a sharpie and whiteout highlighted the outlines of each character then put that on a Xerox machine and came out with one clean sheet of paper with a series of frames of a clean white character against a black background so that contrast was sharp enough that I could then put that piece of paper on an animation stand pointed a video camera at it and ran that into the Apple 2 which had no video in this was a special digitizer card that could get one clean still image it couldn't capture motion but once I had that sheet of 9 or 12 individual frames of the character I could then go in pixel by pixel and cut them out on screen using my animation tool and then run those frames in sequence and so all of this took weeks of work to get from that videotape run or jump to the point where the game was actually playing back those frames in sequence on [Music] when I first saw that character running and jumping on the screen it had that rough illusion of life and of wait but these were the days of 8-bit graphics each frame of animation Prince of Persia was a series of bytes that represented a fixed image on the screen and then the next frame of animation was another set of bytes so to do something like jump in place took 12 frames to do a running jump might take 15 frames and the number of frames made the animation smoother so once you add the jumping the running the turning the hanging the swinging all of these things each individual movement took memory this is where one difference between computers then and now became very important because the Apple two's memory was 48 K that's less than a normal text email so that had to contain everything all of the images all of the backgrounds all of the frames of animation all of the logic to make it work all of the sound effects all of the music everything so with all the basic animations that the character needed to navigate through the dungeon that had filled up all of the computers available memory [Music] so it was June of 1988 and I was two years into making Prince of Persia and at this point had done most of the heavy lifting to get the game working had a smoothly animated character that was running through these dungeons climbing and falling and stepping on pressure plates to open gates and jumping over pits almost falling on spikes everybody who saw the game mood and odd it was like a great proof of concept but it wasn't that much fun to play and I kind of had the sinking feeling as I realized I've done almost everything I meant to do but it just doesn't have that excitement that I was hoping for also there was a ticking clock which is that the Apple 2 platform was dying when I started to make Prince of Persia the Apple 2 was still the number one games platform by 1988 there were new machines that were coming out that had more colors higher resolution better sound capability and I was really at the tail end of the Apple to use life cycle but I felt that switching to a different platform would have been like starting over so the worry was that I could come out with a game that was great that was fun but nobody would ever play it it's always a problem when you reach a point in development that makes you question your initial vision sometimes the answer is to say you know just believe in the initial vision execute it it's gonna be fine but sometimes you discover things along the way that make you realize that the initial vision is just a first draft from the beginning I had the idea that the main character would not fight that this was a nonviolent character just trying to survive in a dungeon in a violent world that is their spikes that spring out of the floor there's you know gates and falling blocks that can crush you but this is not a violent character the point is just to get through these traps and get to the end and rescue the princess and I have used all of the resources that the Apple 2 offered to try to create this I didn't have a room to put in another character so I was sharing an office with friends who are also working on their own projects Robert cook was working on a game that became d-generation Tomy Pierce was creating educational software and every time Tomi saw Prince of Persia on my screen as she walked by my desk she would say combat combat combat you need combat where this games not going to be fun and this frustrated me because I hadn't planned combat para tikka was a fighting game the whole game was you meet a guard you fight the guard and then on to the next battle and so I would explain to Tony I can't do that because there's not enough memory in the computer to also have a smoothly animated enemy that does everything that I would need an enemy to do but when Tony got an idea she wouldn't let it go and so I would add a new feature to the game it's a now now there's torches on the wall no I've got jawed traps that chomp and add suspense isn't it better now Tony would look at the new feature I'd added and say combat combat combat and with frustration I realized that there was something to what she was saying as much as I wished that it was almost done it just wasn't that much fun so this was the problem tears into development I'd used up all the memory to get as far as I've gotten but the game was missing that suspense and excitement a sense of conflict that had made carracticus so simple and so much fun what was I going to do [Music] so I can tell you exactly what happened I'm that day in June 1988 because I wrote about it in my journal it was another day in which Tomi had come and looked at my screen and said combat you need combat and again I'd rolled out my usual argument about how first of all that's not the concept of the game second of all there's no memory and she said well in caretaker you used the same shapes for the hero and the enemy couldn't you do that I said no because the hero looks like a likable endearing kind of character that the enemy shouldn't look like that and she said well what if he made enemies a different color and then the idea came to me what if I exclusive ordered each bite with itself shifted one bit over so the Apple tea didn't have image processing in any kind of sense that we understand it now because the graphics were all bitmapped but one of the assembly language instructions was called exclusive-or which basically means if the two bits are the same you get a zero if the two bits are different you get a one so as I was telling Tony for the tenth time why I couldn't draw a character in a different color than the one I'd originally created I realized that if I used the exclusive or instruction shifted one bit over this would create a kind of a shimmery ghostly outline of the main character and as soon as I said those words the character's name popped into being Shadow Man so with Tony and Robert looking over my shoulder it actually took me all of five minutes to write the code that would turn the main character into a shimmery ghostly version of itself and as soon as we saw Shadow Man running jumping and climbing through the dungeon it became obvious that this was this was the opponent that the game needed it was Robert who suggested that Shadow Man could come into being when you jump through a mirror your ghostly self jumps out the other direction and then once it's loose in the dungeons becomes your enemy stealing potions closing gates that you wanted to open and just kind of wreaking all kind of havoc so out of necessity was born this character who ended up becoming one of the best features of the game it's a case of where constraints can sometimes push you to more creative solutions than you would have found in the beginning if they had been available if memory had not been a constraint I probably would have created all kinds of monsters and enemies in Prince of Persia a lot of variety but because there was no room for any of that I was forced to dig deeper and came up with Shadow Man which ended up actually being kind of deeper and more satisfying at the end of the game when you confront your shadow self and you fight him with swords every time you catch Shadow Man you lose a strength point and you realize that if you keep fighting you're eventually gonna kill yourself so the solution is not to win the sword fight but to put away your sword and when you put away the sword Shadow Man does the same and then facing each other you run towards Shadow Man he runs towards you and the two of you merge and are reunited and then you get back all the health points that Shadow Man had stolen from you throughout the game and with this restored strength and wholeness you're then able to fight the Grand Vizier and win the game that's something that I wouldn't have come up with if I didn't have to once Shadow Man was in the game it was obvious that that was the right way to go and so I managed to squeeze out of the memory enough frames to do sword fighting so that you can fight the shadow version of yourself and that was so compelling that yes all right whatever it takes got to find a way to populate this dungeon with guards and at this late stage I found a way to take 12 K of memory that was hiding in the auxiliary memory card of the Apple to to add a guard but this presented a new problem how do we create the animation for the enemies so the model for the animations in Prince of Persia had been my younger brother who at this point was 3,000 miles away and he wasn't any good at sword fighting anyway so my first attempt was to film myself and my officemate Robert with a sword doing fencing unfortunately that didn't work finally in desperation I turned to one of my favorite films the 1938 Robin Hood with Errol Flynn and it just happened that in this film and his climactic duel with Basil Rathbone there's a sequence of about six seconds where the two characters are perfectly in profile fighting each other so with a VHS tape of the 1938 Robin Hood I took photographs of each frame of film and extracted the moves that the characters would need to do in order to do sword fighting and once the guards were in there the game felt complete now as you moved through the dungeons you had that feeling of challenge of suspense of fear that had been such an important part of what made carracticus successful the lesson if there is one you know the best way that I've been able to formulate it is that when you have these two voices two different approaches in your brain giving you two different solutions that are diametrically opposed to really try to tune in to each voice and think is this the voice you know of the big picture because sometimes you can have great ideas that are kind of taking you off the path of what you originally set out to do but sometimes that voice is actually putting you back on the path the reason that Shadow Man was the right thing to do I think goes back to the original inspiration of Prince of Persia it's basically the modern version of a swashbuckling movie and in those old swashbuckling movies whether it was Errol Flynn or Douglas Fairbanks or Indiana Jones the hero did fight so it's completely in line with that spirit Prince of Persia released at the end of 1989 on the Apple 2 and as I'd feared I've lost the race against time by then the Apple 2 was a dying platform and for about a year I had the agonizing experience of feeling that this game that I'd worked so hard on which everybody who played was enjoying that this game was going to sink without a trace what saved it was the ports to other platforms to the PC to the Mac and also to consoles like Sega and Nintendo that came out over the next couple of years and kind of rescued this game that had been a flop and made it into a head and that's what actually made it really clear to me that adding Shadow Man and combat had been the right thing to do because on these other platforms the memory issues that had been so critical on the Apple 2 no longer existed those swashbuckling cinematic roots turned out to be a key part of you know what made Prince of Persia what it is Prince of Persia was successful enough on PC that we did a sequel Prince of Persia to the shadow and the flame and by the time this game came out in 1993 we had a new generation of PCs that could do sound and music and color graphics way beyond what was possible in the late 80s and we took advantage of this adding more enemies more characters and richer environments sending the prince on a journey across a world that got us out of the dungeon and palace of Prince of Persia 1 but the basic gameplay the formula of traps fight and flight puzzle solving and combat and exploration I was still pretty close to what it had been in prince of persia one since the original prince of persia the technology has advanced but the basic questions of game design haven't really changed all that much when we did the remake in 2003 prince of persia the sands of time we were working on a much later generation of console the PlayStation 2 generation and so for the first time we had 3d graphics the ability to rewind time sound music you know all these things that the Apple 2 couldn't do but we still had constraints the first draft of the story for the sands of time had been much more complicated with kind of a political intrigue and you know different factions with the kingdom so for the final game we ended up stripping all of that out and going with a much simpler story in which everybody in the kingdom has been transformed into sand monsters and that one decision made it possible to design a game that was actually in sync with what you could do with the controller in your hands because everybody that you met was a sand monster so your only options really were acrobatics combat and running away and that was a good fit with what you could do as a player even though we had the ability to do dialogue and facial animations and so forth having a large cast of characters would have taken the game away from its strengths so in designing a game story you really want to find choices that emphasize the strengths rather than emphasizing the weaknesses this year is the 30th anniversary of the original Prince of Persia and a lot of what I've told you today I remember thanks to the fact that I kept the journal so we're actually releasing these journals as a book for prince of persia 30th anniversary there are the journals that I kept at the time as I was making the game so it's got all the rollercoaster of all the ups and downs and this game is going to be great this game is going to be a disaster and how do I solve this particular problem we've also Illustrated the journals with screenshots of the work-in-progress and sketches so it's been a lot of fun for me on this anniversary to have a reason to go back and look at those old journals again which if being in the 80s are you know mostly on pen and paper
Info
Channel: Ars Technica
Views: 1,174,900
Rating: undefined out of 5
Keywords: video games, prince of persia, prince of persia apple ii, apple ii games, ars technica war stories, classic video games, retro gaming, rotoscope animation, rotoscope video game, game developer, game developer interview, video game development, video game developer, ars technica prince of persia, prince of persia war stories, jordan mechner, jordan mechner interview, prince of persia animation, prince of persia rotoscope, prince of persia game, ars, ars technica, technology
Id: sw0VfmXKq54
Channel Id: undefined
Length: 20min 49sec (1249 seconds)
Published: Tue Mar 17 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.