Como o Prince of Persia Creator supera os limites de memória do Apple II


“Desenvolvi a história de The Shadow Man. Ele aparece no jogo em pontos predeterminados. Em um caso, ele rouba uma poção. Quando o jogador está pronto para pegar a bolha, o homem das Sombras corre, bebe e foge. Outra vez, quando o jogador está prestes a atravessar o portão, um Homem das Sombras aparece, clica no fogão e fecha o portão. Depois disso, o jogador cai três níveis, e ele novamente tem que subir todo o caminho. Gravei esses confrontos na trama para que o jogador odiasse o homem das Sombras e o considerasse seu inimigo. Então, no momento em que ele precisaria cruzar espadas com ele no final do jogo, ele realmente queria se vingar, porque impedia o jogador tantas vezes. Era a minha maneira de criar uma conexão emocional entre um jogador e um adversário através da jogabilidade, em vez de inserções cinematográficas. ”

Olá, sou Jordan Mekner, autor de Prince of Persia. Esta é uma história sobre como eu me afundei em um canto com animações, e então pude sair disso graças às batalhas.

Eu era uma criança que cresceu em Nova York em meados dos anos 70. Um fã de quadrinhos. Eu amei o filme. Cresceu na revista "MAD" e, se não houvesse computadores, eu poderia fazer quadrinhos e animação. Mas quando o Apple II apareceu em 1978, eu o tomei como uma máquina na qual eu posso jogar principalmente em casa, o que era completamente impossível antes. Em vez de gastar quartos em máquinas caça-níqueis locais, eu poderia ficar em casa e jogar o quanto quisesse no Space Invaders no Apple II. Além disso, o computador me permitiu criar meus próprios jogos e isso me encantou. Isso aconteceu antes do advento da Internet, então quase todo mundo era autodidata. Assinei a revista Creative Computing e, um pouco mais tarde, a revista Softalk, que incluía artigos sobre como programar. Comecei a compartilhar experiências com amigos,quem também amava computadores.

Meus primeiros jogos foram cópias de jogos de arcade existentes: o jogador sempre teve três vidas, e o objetivo era obter um número recorde de pontos. Mas então eu já estava na faculdade e queria escrever um jogo que contasse uma história e, portanto, comecei a programar “Karateka”. Ela tinha uma trama muito simples. Um general do mal sequestrou a princesa e a prendeu em seu castelo. O jogador controla um herói que deve vencer várias lutas de karatê dos soldados que guardam a fortaleza. Na verdade, ele correu da esquerda para a direita e derrotou um guerreiro após o outro até chegar ao fim, e depois lutou com um grande vilão e salvou a princesa. Eu escrevi o jogo no Apple II e, na época, a Apple era na verdade a plataforma de jogos número um, mas tinha suas limitações. Os recursos musicais da Apple II não eram muito bons,o computador tinha apenas quatro cores e uma tela com uma resolução de 280 × 192, e todo o programa tinha que caber em 48 KB de memória. Foi uma restrição rígida.


Naqueles dias, o Photoshop ainda não havia sido criado, não havia pacotes gráficos e ferramentas para animação e, se você quisesse desenhar um personagem na tela, teria que fazê-lo pixel por pixel. Quando tentei perceber a animação do personagem, verificou-se que ele parecia estranho e longe do realismo que eu imaginava. Então, eu usei uma técnica chamada rotoscopia, que tinha uma longa história. Ela apareceu no início dos filmes de animação.

Os primeiros animadores da Disney usaram imagens de filmes como referência. Em Branca de Neve, personagens humanos, como Branca de Neve e o próprio príncipe, eram realmente animados usando rotoscopia, ou seja, os animadores da Disney filmavam atores ao vivo que realizavam as ações que precisavam ser animadas, e então projetavam esses quadros e os copiavam ou os descreviam quadro a quadro. . Eu fiz o mesmo para "Karateka". Gravei no filme Super 8 como meu professor de karatê chuta e chuta, bem como outros movimentos que o personagem precisa fazer na tela, depois rabisquei cada quadro do filme Super 8 com lápis em papel vegetal e os transformei em pixels para exibição na tela. Este é um tipo de rotoscopia 1.0.


"Karateka" foi lançado em 1984 e se tornou o best-seller número um, e tive muita sorte por isso: em vez de começar a procurar trabalho depois da faculdade, achei o luxo de pensar no que quero fazer a seguir? E eu tive a ideia de outro jogo. Os primeiros dez minutos do filme "Em Busca da Arca Perdida" se tornaram uma das fontes de inspiração. Nesta cena, Indiana Jones pula sobre um buraco e quase cai, espinhos saltam para fora da parede, o portão se fecha e todas essas ações me lembraram o que eu vi em jogos de plataforma como “Lode Runner” e “Os Castelos do Doctor Creep”: se você levanta no fogão, ela abre o portão. Eu pensei que se você combinar essa jogabilidade com um personagem humano, o jogador sentirá que se você errar o salto e a queda, isso realmente doerá.Os personagens dos primeiros jogos de plataforma pareciam não ter peso. O jogador entendeu que, mesmo que ele errasse, o personagem desceria as escadas e não sentiria dor. E eu decidi combinar a jogabilidade básica do quebra-cabeça da plataforma em um mundo modular com animações muito suaves de correr e pular, tentando transmitir o deleite dos primeiros minutos de "Em Busca da Arca Perdida".

A trama de "Prince of Persia" também foi simples. Como em Karateka, o jogador precisava salvar a princesa. Nisso, fui inspirado pelos contos de “Mil e uma noites”, além de filmes como o “Ladrão de Bagdá” de 1940, em que o grande vizir maligno toma o poder e aprisiona a princesa. Eu sabia que para o Prince of Persia eu precisaria de muito mais animações. Correr, pular, escalar, cair: todos os movimentos de um personagem pequeno que ele deve executar na tela. E quando eu estava fazendo animações para "Prince of Persia" em 1985, uma nova tecnologia apareceu - VHS. Usando uma das primeiras câmeras VHS, gravei como meu irmão corre, pula e executa todas as outras ações no estacionamento perto da nossa escola.


O próximo problema foi a transferência de todos esses quadros gravados para o computador. Por tentativa e erro, finalmente encontrei uma técnica adequada para o príncipe da Pérsia; consistiu em converter de analógico para digital e consistiu em várias etapas. Comecei uma fita de vídeo com meu irmão em uma tela de televisão em uma sala escura, coloquei uma câmera de 35 mm em um tripé, direcionei-a para a tela e depois tirei uma foto, voltei para o próximo quadro no videocassete, tirei outra foto, avance novamente e muito mais vezes até conseguir um rolo de filme com cerca de 35 quadros. Levei-o à loja de impressão instantânea local Fotomat, em uma hora eles mostraram o filme e me devolveram um conjunto de fotos que colei com fita adesiva. Usando um marcador e um corretor, selecionei os contornos de cada caractere e coloquei as fotos na copiadora,tendo recebido uma folha de papel clara com uma série de quadros de um caractere branco distinto em um fundo preto. O contraste foi forte o suficiente para colocar esta folha na máquina de animação, apontar a câmera de vídeo para ela e exibir a imagem no Apple II, que não possuía entrada de vídeo. Eu usei uma placa digitalizadora especial que só podia deixar uma imagem clara e estática. Ela não conseguiu realizar a captura de movimento, mas depois de receber 9 a 12 quadros separados da animação do personagem, eu já podia trabalhar com os pixels e recortá-los na tela usando minha ferramenta de animação e depois reproduzir a sequência de quadros. Foram necessárias semanas de trabalho para transferir as corridas ou saltos gravados no vídeo para uma sequência de quadros na tela do computador.O contraste foi forte o suficiente para colocar esta folha na máquina de animação, apontar a câmera de vídeo para ela e exibir a imagem no Apple II, que não possuía entrada de vídeo. Eu usei uma placa digitalizadora especial que só podia deixar uma imagem clara e estática. Ela não conseguiu realizar a captura de movimento, mas depois de receber 9 a 12 quadros separados da animação do personagem, eu já podia trabalhar com os pixels e recortá-los na tela usando minha ferramenta de animação e depois reproduzir a sequência de quadros. Foram necessárias semanas de trabalho para transferir as corridas ou saltos gravados no vídeo para uma sequência de quadros na tela do computador.O contraste foi forte o suficiente para colocar esta folha na máquina de animação, apontar a câmera de vídeo para ela e exibir a imagem no Apple II, que não possuía entrada de vídeo. Eu usei uma placa digitalizadora especial que só podia deixar uma imagem clara e estática. Ela não conseguiu realizar a captura de movimento, mas depois de receber 9 a 12 quadros separados da animação do personagem, eu já podia trabalhar com os pixels e recortá-los na tela usando minha ferramenta de animação e depois reproduzir a sequência de quadros. Foram necessárias semanas de trabalho para transferir as corridas ou saltos gravados no vídeo para uma sequência de quadros na tela do computador.Eu usei uma placa digitalizadora especial que só podia deixar uma imagem clara e estática. Ela não conseguiu realizar a captura de movimento, mas depois de receber 9 a 12 quadros separados da animação do personagem, eu já podia trabalhar com os pixels e recortá-los na tela usando minha ferramenta de animação e depois reproduzir a sequência de quadros. Foram necessárias semanas de trabalho para transferir as corridas ou saltos gravados no vídeo para uma sequência de quadros na tela do computador.Eu usei uma placa digitalizadora especial que só podia deixar uma imagem clara e estática. Ela não conseguiu realizar a captura de movimento, mas depois de receber 9 a 12 quadros separados da animação do personagem, eu já podia trabalhar com os pixels e recortá-los na tela usando minha ferramenta de animação e depois reproduzir a sequência de quadros. Foram necessárias semanas de trabalho para transferir as corridas ou saltos gravados no vídeo para uma sequência de quadros na tela do computador.Foram necessárias semanas de trabalho para transferir as corridas ou saltos gravados no vídeo para uma sequência de quadros na tela do computador.Foram necessárias semanas de trabalho para transferir as corridas ou saltos gravados no vídeo para uma sequência de quadros na tela do computador.

Quando vi pela primeira vez o personagem correndo e pulando na tela, ele tinha uma ilusão grosseira de vitalidade e peso. Era o tempo dos gráficos de oito bits. Cada quadro da animação Prince of Persia era um conjunto de bytes representando uma imagem fixa na tela, e o quadro seguinte era outro conjunto de bytes. Para implementar, por exemplo, um salto, foram necessários 12 quadros e, para um salto na execução, foram necessários até 15, e quanto mais quadros, mais suave a animação. Depois de adicionar saltos, correr, girar, pendurar, balançar e tudo mais, cada movimento individual ocupava a memória. E aqui, a diferença entre esses computadores e os modernos acabou sendo muito importante, porque o Apple II tinha apenas 48 KB. Isso é menor que o e-mail de texto médio, mas tudo deve se encaixar neste volume: todas as imagens, planos de fundo, quadros de animação, a lógica do programa,todos os efeitos sonoros, música, tudo. E tudo isso, junto com as animações que o personagem precisa percorrer nas masmorras, preencheu toda a memória disponível do computador.

Então, junho de 1988, trabalho no Prince of Persia há dois anos e, nesta fase, a parte mais difícil já foi feita. Eu tenho um personagem em movimento suave percorrendo as masmorras, ele sobe, cai, clica nas placas para abrir as portas e pula sobre o abismo, quase caindo em espinhos. Todo mundo que vê meu jogo geme e suspira de prazer. Este resultado foi uma confirmação do conceito, mas o jogo não é muito interessante de jogar, e estou atormentado pelo sentimento vago de que já realizei quase tudo o que queria, mas não consigo alcançar a admiração que esperava. Além disso, há sinais de que a plataforma Apple II está morrendo. Quando comecei a desenvolver o Price of Persia, o Apple II ainda era a plataforma número um para jogos. Mas em 1988, novos carros apareceram, com mais cores e resolução,recursos de som mais avançados. Eu estava no final do ciclo de vida do Apple II, mas senti que, ao mudar para outra plataforma, tive que começar tudo de novo. Eu estava preocupado em criar um jogo magnífico e emocionante, mas não haveria ninguém para jogar nele.

Sim, surgiu um problema: cheguei a esse estágio de desenvolvimento quando comecei a duvidar da minha visão inicial do jogo. Às vezes, a resposta certa é: apenas acredite na visão original, realize-a e tudo ficará bem. Mas, às vezes, no processo de trabalho, você faz descobertas que o fazem perceber que a visão original era apenas o primeiro rascunho. Inicialmente, eu pensei que o personagem principal não lutaria, ele não usaria violência e apenas tentaria sobreviver em uma masmorra em um mundo cruel, onde há picos saindo do chão, há portões e lajes que podem esmagá-lo, mas ele próprio não é cruel. O objetivo era superar essas armadilhas e salvar a princesa e, para implementar isso, usei todos os recursos disponíveis no Apple II. Eu não tinha lugar para inserir outro caractere.


Naquela época, compartilhei o escritório com amigos que também trabalhavam em seus próprios projetos. Robert Cook trabalhou no jogo D / Generation. Tommy Pearce criou um software educacional e, toda vez que passava, via “Prince of Persia” na minha tela, repetia “brigas, brigas, brigas”. "Você precisa de batalhas, ou este jogo não será interessante", e isso me incomodou, porque eu não planejei as batalhas. Karateka era um jogo de luta. O jogo inteiro era encontrar o guarda, lutar com ele e depois prosseguir para a próxima batalha. Expliquei a Tomi: "Não posso produzi-los porque não tenho memória suficiente e, além disso, preciso de um inimigo animado que possa fazer tudo o que o inimigo precisar". Mas quando Tomi tem uma idéia, ela não a deixa ir, então eu tinha que dizer: "Agora existem tochas nas paredes. E agora eu adicionei armadilhas da mandíbula,que cortam o herói e aumentam a tensão. Isso não é melhor? " Tomi avaliou o novo recurso e disse: "Brigas, brigas, brigas". [respira fundo] E eu percebi em desespero que havia algo em suas palavras. Não importa o quanto eu quisesse que o jogo estivesse quase pronto, ele simplesmente não continuava, e esse era o problema: dois anos de desenvolvimento, usei quase toda a memória disponível, mas o jogo não possui a tensão, o prazer e a sensação de conflito que fez Karateka "Tão simples e muito interessante. O que devo fazer?mas o jogo carece da tensão, deleite e sentimento de conflito que tornaram o Karateka tão simples e muito interessante. O que devo fazer?mas o jogo carece da tensão, deleite e sentimento de conflito que tornaram o Karateka tão simples e muito interessante. O que devo fazer?

Eu posso te dizer exatamente o que aconteceu. Naquele dia de junho de 1988 (eu sei, porque escrevi no meu diário), Tomi voltou, olhou para a tela e disse: “Lutas, você precisa de lutas”. E, novamente, propus meu argumento usual: primeiro, isso não corresponde ao conceito do jogo e, segundo, não há memória suficiente. Ela disse: "Em Karateka, você usou as mesmas figuras para o herói e para o inimigo, você pode fazer o mesmo?" Eu respondi: “Não, porque o herói parece um personagem atraente e indestrutível. O inimigo não deve ser assim. E ela disse: "Bem, e se você criar inimigos de uma cor diferente?" E surgiu a idéia: e se eu executar o XOR para cada byte comigo deslocado um pouco?

O Apple II, como eu o entendo agora, não tinha capacidade de processamento de imagem porque todos os gráficos eram bitmaps. Mas uma das instruções do assembler chamada "OR exclusivo" (XOR) levou dois bits e, se forem iguais, retornará zero e, se forem diferentes, um. E quando expliquei a Tomi pela décima vez por que não consigo desenhar o personagem com a cor errada, percebi que o uso da instrução "OU exclusiva" com um deslocamento de um bit criará um contorno fantasmagórico e trêmulo Personagem principal. E assim que eu disse essas palavras, o nome desse personagem surgiu: Shadow Man ("Shadow Man"). Enquanto Tomi e Robert olhavam por cima do meu ombro, levei apenas cinco minutos para escrever um código que transforma o personagem principal em uma versão fantasmagórica de si mesmo.Assim que vimos o homem das Sombras correndo, pulando e escalando a masmorra, ficou óbvio que ele era o inimigo que o jogo precisava.


Robert sugeriu que um Homem das Sombras pudesse surgir quando um herói pulasse no espelho: naquele momento, sua cópia fantasmagórica salta em uma direção diferente e, perdida na masmorra, ela se torna inimiga - rouba poções, fecha os portões que o jogador queria abrir e geralmente cria todos os tipos de caos. Então, esse personagem nasceu forçosamente, o que, como resultado, se tornou uma das melhores características do jogo. Este é um exemplo de como as restrições às vezes podem levar você a soluções mais criativas do que você poderia encontrar desde o início, se elas estivessem disponíveis. Se minha limitação não era memória, então eu poderia ter criado vários monstros e inimigos no Príncipe da Pérsia para variar, mas como não havia espaço para eles, tive que me aprofundar mais e encontrar um homem das Sombras, que como se fosse mais profundo e mais convincente.

No final do jogo, quando um jogador encontra sua sombra e luta com suas espadas, a cada golpe no homem das Sombras, o jogador perde um ponto de força. O jogador percebe que, se continuar lutando, você se matará como resultado, portanto a solução não é vencer a luta de espadas, mas removê-la. E quando você remove a espada, o homem das Sombras faz o mesmo. Se você se virar para ele e correr, o homem das Sombras irá correr em sua direção. Dois se fundirão e se reunirão, e o jogador receberá todos os pontos de vida que o Homem das Sombras roubou dele durante o jogo. Graças a esse poder e integridade restaurados, ele será capaz de combater o grande vizir e completar o jogo. Eu nunca teria pensado nisso se não precisasse.

Assim que o Shadow Man apareceu no jogo, ficou óbvio que isso estava correto, então eu consegui colocar mais alguns quadros na minha memória para a implementação de lutas de espadas, para que o jogador pudesse lutar com uma cópia de si mesmo. Acabou sendo muito convincente, e agora eu precisava preencher a masmorra com guardas de qualquer maneira. Nesse estágio final de desenvolvimento, encontrei uma maneira de emprestar 12 KB de memória, que estava oculta em um cartão de memória Apple II adicional, e adicionar uma proteção. Mas, ao mesmo tempo, surgiu um novo problema - como criar animações para inimigos?

O modelo de animação Prince of Persia era meu irmão mais novo, que agora estava a cinco mil quilômetros de mim. Além disso, ele não sabia como lutar com espadas, então primeiro tentei gravar a mim e a meu colega no escritório de Robert, segurávamos espadas e cercamos. Infelizmente, isso não funcionou. Em desespero, lancei um dos meus filmes favoritos, Robin Hood de 1938, com Errol Flynn, e verificou-se que havia um duelo climático com Basil Rathbone neste filme. Ele continha uma cena de cerca de seis segundos em que dois personagens brigando entre si foram filmados perfeitamente de perfil. Tirei fotos de cada inventário da fita VHS Robin Hood de 1938, recebi os movimentos que os personagens precisariam para uma luta de espadas e, assim que percebi os guardas, o jogo parecia completo para mim.

Agora, passando pelas masmorras, o jogador sentiu uma sensação de rivalidade, tensão, medo, que se tornou uma parte importante do sucesso da Karateka. A lição que aprendi disso pode ser formulada da seguinte forma: se duas vozes soam em sua cabeça, duas abordagens que dão duas soluções diferentes, diametralmente opostas uma à outra, você deve tentar ouvir cada uma das vozes e pensar: “Essa voz me fala sobre a grande imagem? " Porque, às vezes, podem surgir grandes idéias que o desviam do caminho pretendido, mas às vezes essa voz o leva de volta ao caminho. O homem das sombras foi a decisão certa, porque se correlaciona com a fonte original de inspiração do príncipe da Pérsia. De fato, esta é uma versão moderna do "filme da capa e da espada", e nesses filmes antigos os heróis, Errol Flynn,Douglas Fairbanks ou Indiana Jones lutaram, por isso estava totalmente de acordo com o espírito do jogo.

"Prince of Persia" foi lançado no final de 1989 no Apple II. Como eu temia, a corrida ao longo do tempo foi perdida. Naquela época, o Apple II era uma plataforma moribunda e, por cerca de um ano, tive uma sensação dolorosa de que o jogo em que trabalhei tanto e que todos os que o jogavam desapareceriam sem deixar vestígios. As portas para outras plataformas me salvaram: no PC, no Mac e em consoles como Sega e Nintendo, que apareceram nos próximos anos. Isso salvou o jogo, transformando-o de um fiasco em um sucesso. E foi exatamente isso que me mostrou que adicionar o Shadow Man e as lutas foi a decisão certa, porque nessas plataformas os problemas de memória, tão críticos para o Apple II, não existiam mais.

A inspiração adquirida nos filmes de ação e aventura acabou sendo a fonte mais importante que transformou o Príncipe da Pérsia no que é. A popularidade de “Prince of Persia” no PC acabou sendo suficiente para criar uma sequência, “Prince of Persia 2: The Shadow and the Flame”. E na época do jogo em 1993, já tínhamos uma nova geração de PCs capazes de reproduzir sons e músicas, além de exibir gráficos coloridos. Suas capacidades excederam em muito o que estava disponível no final dos anos 80, e aproveitamos isso adicionando mais inimigos, mais personagens e enriquecendo o ambiente. Enviamos o príncipe em uma viagem ao redor do mundo, o que o levou à masmorra e castelo "Prince of Persia 1". Mas a jogabilidade fundamental, a fórmula de armadilhas, tiros, resolução de quebra-cabeças, batalhas e pesquisas, estava bem próxima deque estava presente em "Prince of Persia 1". Desde a época do primeiro príncipe da Pérsia, a tecnologia avançou, mas as questões básicas do design de jogos mal mudaram. Quando fizemos um remake em 2003, “Prince of Persia: The Sands of Time”, trabalhamos com uma geração de consoles muito mais tarde. O jogo da geração PlayStation 2, pela primeira vez, possuía gráficos 3D, a capacidade de retroceder tempo, som e música - tudo o que o Apple II não podia pagar, mas ainda tínhamos limitações. O primeiro rascunho de The Sands of Time era muito mais complexo, com todo tipo de intrigas políticas com diferentes facções dentro do reino. Mas, a partir do jogo final, cortamos tudo e deixamos uma história muito mais simples, na qual todos no reino se transformaram em monstros da areia. E essa decisão tornou possível criar um jogo,o que é realmente sincronizado com o que é possível fazer no controlador, porque tudo que você encontra são monstros da areia. Portanto, sua escolha é: acrobacias, luta e fuga, e isso correspondeu bem ao que o jogador poderia fazer, embora ainda tivéssemos a oportunidade de implementar diálogos, animação facial e muito mais. Ter uma grande lista de personagens afastaria o jogo de seus pontos fortes, ou seja, ao criar o enredo do jogo, você precisa planejar decisões que enfatizem seus pontos fortes, não pontos fracos.Ter uma grande lista de personagens afastaria o jogo de seus pontos fortes, ou seja, ao criar o enredo do jogo, você precisa planejar decisões que enfatizem seus pontos fortes, não pontos fracos.Ter uma grande lista de personagens afastaria o jogo de seus pontos fortes, ou seja, ao criar o enredo do jogo, você precisa planejar decisões que enfatizem seus pontos fortes, não pontos fracos.


Este ano, o primeiro “Príncipe da Pérsia” tem 30 anos, e muito do que eu te disse hoje me lembro porque mantive uma revista, então em homenagem ao 30º aniversário, lançamos novamente essas revistas na forma do livro “Príncipe da Pérsia. " Estas são as revistas que eu guardei durante a criação dos jogos, então há muitos altos e baixos, dúvidas e entusiasmo nelas: “este jogo será ótimo”, “este jogo será um desastre”, meus pensamentos são sobre como resolver problemas específicos. Também ilustramos as revistas com capturas de tela do processo de trabalho e esboços, por isso fiquei muito interessado neste aniversário em voltar no tempo e olhar novamente para essas revistas, que passei nos anos 80 principalmente em lápis sobre papel.

All Articles