Como o Crash Bandicoot invadiu o Playstation


Andy Gavin, do Naughty Dog, fala sobre gerenciamento de memória dos anos 90 e animações em 3D.

“A memória do Crash Bandicoot estava tão ausente que eu tive que roubar pequenos pedaços de memória extra das bibliotecas da Sony. Apenas tentei remover as peças que, como me pareceu, não usei e verifiquei se tudo continuava funcionando. Se tudo funcionasse, marquei-os como livres e fiz hacks de seus códigos, alterando os códigos de bytes. Pensei: posso fazê-lo, se a Sony não quiser consertar sozinho, apenas altero o código deles. Era memória livre. [risos] A memória era limitada. Mas ninguém nos permitiu absolutamente fazer isso. ”

Olá, sou Andy Gavin, co-fundador da Naughty Dog Inc e programador principal do Crash Bandicoot. Decidimos criar o primeiro jogo de plataforma de ação com um personagem tridimensional e, para fazer tudo certo, tivemos que invadir equipamentos.

Isso fazia parte da filosofia da Naughty Dog de fazer todo o possível, usando todos os ciclos de CPU ou GPU, todos os bytes de memória. Se houvesse essa oportunidade no carro, tentávamos descobrir como tirar o máximo proveito dele, independentemente de ter sido útil para nós ou não e de usarmos alguns truques malucos. No verão de 1994, meu parceiro Jason Rubin e eu concluímos um jogo de luta em 3DO chamado Way of the Warrior e pensamos em qual jogo queremos fazer a seguir. O gênero mais popular nos consoles da época eram os jogos de plataforma de ação, como Super Mario World e todos os tipos de clássicos dos jogos de plataforma de 16 bits. Ao mesmo tempo, novos equipamentos 3D apareceram em máquinas de fliperama e alguns gêneros começaram a transição do tradicional 2D para o 3D.


Jogos como Street Fighter II e Mortal Kombat ainda estavam no auge, mas o Virtua Fighter já havia aparecido. Usava gráficos 3D, era legal e ficou óbvio que os jogos se moveriam dessa maneira. Novos consoles funcionarão em 3D. Posso criar um jogo de plataformas 3D? Ninguém fez isso ainda, mas estava prestes a acontecer. Pense em como o Sonic voa através de alças em 3D. Como será? Até o outono de 1994, a Naughty Dog consistia apenas de nós, Jason e Andy, formando uma verdadeira sinergia. Nós dois lidamos com todos os aspectos criativos, éramos melhores amigos, colegas de quarto, Jason era um artista fenomenal, eu era um programador de jogos e acho que é muito bom. [risos] De nós dois, ele tentou fazer o jogo parecer incrível, e eu tentei fazer a tecnologia funcionar,e nós dois nos esforçamos para tornar o jogo realmente divertido. Jason e eu vendemos os direitos de Way of the Warrior para uma nova divisão da Universal Studios chamada Universal Interactive. De fato, eles nos disseram: venha para a Califórnia, pare no local da Universal ao lado de Steven Spielberg, nós lhe daremos um bangalô e tudo o que você precisa de graça. Você pode fazer o que quiser, basta mostrar para nós. Pegamos o cachorro, um cachorro chamado Naughty Dog Morgan, entramos no meu Honda Accord e dirigimos pelo país, por isso tivemos muito tempo para conversar. Nós discutimos: como será o jogo de plataformas em 3D?venha para a Califórnia, pare no local Universal ao lado de Steven Spielberg, nós lhe daremos um bangalô e tudo o que você precisa de graça. Você pode fazer o que quiser, basta mostrar para nós. Pegamos o cachorro, um cachorro chamado Naughty Dog Morgan, entramos no meu Honda Accord e dirigimos pelo país, por isso tivemos muito tempo para conversar. Nós discutimos: como será o jogo de plataformas em 3D?venha para a Califórnia, pare no local Universal ao lado de Steven Spielberg, nós lhe daremos um bangalô e tudo o que você precisa de graça. Você pode fazer o que quiser, basta mostrar para nós. Pegamos o cachorro, um cachorro chamado Naughty Dog Morgan, entramos no meu Honda Accord e dirigimos pelo país, por isso tivemos muito tempo para conversar. Nós discutimos: como será o jogo de plataformas em 3D?

Discutimos algo como jogos de Sonic the Hedgehog. Imagine que você está circulando, correndo e pulando em plataformas e coletando objetos em 3D. A câmera está sempre atrás do player. Você vê o mundo e tudo parece ótimo, mas é como um jogo sobre o traseiro do Sonic. Tudo o que você faz é olhar para o traseiro do Sonic. Mas o personagem é mais expressivo quando o vemos na frente. É possível fazer níveis em que o jogador se move para a câmera? Mas como ver para onde ele está correndo? De fato, essas reflexões gradualmente nos levaram aos níveis de paralelepípedos de Crash Bandicoot. Deve haver níveis em que o jogador se move lateralmente, ele deve olhar por cima do ombro para a tela? Nós projetamos o jogo simultaneamente, que se tornará o Crash Bandicoot e, ao mesmo tempo, como se estivesse escolhendo uma plataforma para ele.

Sabíamos que, como será um jogo em 3D, precisaremos de uma das novas plataformas de 32 bits. Então havia o 3DO, para o qual já fizemos um jogo, mas esse carro era como uma curva, metade de uma máquina 3D. Além disso, era muito caro e não vendia muito bem. Havia também o Atari Jaguar. Consideramos isso um mal-entendido. E havia caras sérios prestes a lançar carros novos. Sabíamos de algum carro misterioso da Nintendo, mas não conseguimos descobrir o que a Nintendo estava cozinhando. Eles não se comunicaram com os americanos. A Sega teve dois projetos. Ela tinha 32X, cuja versão começou naquele outono; ela deveria fortalecer as capacidades do Gênesis. Além disso, ela criou um carro novo; Não me lembro se já era chamado Saturno, mas, como resultado, se transformou em Saturno. E havia também um azarão Sony. Esta empresa nunca fez videogames antes.Ouvimos dizer que ela tem uma máquina nova e poderosa, então contatamos a Sega e a Sony e estudamos as informações que eles nos deram. Para concluir um acordo com eles, você teve que depositar sua alma e primogênito, após o qual você pode pedir carros se lhes der uma promessa e tudo mais. E a Sony tinha um carro novo, como se estivesse em 3D completo. Também fez um bom trabalho com o 2D, e era uma nova arquitetura clara, muito semelhante ao equipamento 3D de ponta comercial como a Silicon Graphics, mas com muitas simplificações que tornaram o console mais econômico; O PlayStation 1 tinha dois chips especializados principais - um módulo gráfico e uma CPU especialmente criada com arquitetura MIPS. Mas as GPUs modernas são muito mais complexas e realizam vários cálculos dos quais as GPUs antigas dos anos 90 não eram capazes.A GPU do PlayStation 1 simplesmente renderizou triângulos na tela, mas foi muito bem. Ele conseguiu desenhar cerca de 120.000 triângulos por segundo, o que na época era fenomenal. No PC da época, não havia equipamento para gráficos 3D. Eles tinham placas VGA. Você teria sorte se pudesse obter algumas centenas de polígonos, porque todos os cálculos foram realizados programaticamente. E havia um PlayStation que custava 199 ou 299 dólares.

- 299.

- E era uma máquina acabada com uma unidade de CD, memória e tudo o que era necessário. A diferença entre consoles e PC na época era enorme. Estamos falando dos tempos do Windows 3.1 e do DOS. Para iniciar o jogo, você geralmente precisava de um disco de inicialização com o autoexec.bat e o config.sys especiais, que precisavam ser abertos na máquina. O mundo dos PCs não era muito amigável com jogos naquele momento. E no PlayStation, Genesis ou Super Nintendo, bastava inserir um cartucho ou CD - e o boom, tudo carregado. Acima de tudo, gostei da Sony. Ela era legal, clara, poderosa e pensava em 3D. Eu realmente pensei que esta é a única das máquinas que poderia suportar nosso plano.

A idéia básica do Crash Bandicoot como um jogo era que ele deveria ter mecânica, como em um jogo como o Donkey Kong Country. O jogador teve que passar por níveis de contagem regressiva, inimigos e saltos. Tinha que ser uma plataforma com um personagem de desenho animado, e não queríamos que parecesse muito com um videogame. Queríamos que ela fosse como o desenho animado Looney Tunes, onde o personagem é bem animado e se move sem problemas. Se foi esmagado por uma enorme pedra rolante, transformou-se em uma panqueca plana. Queríamos criar um mundo semelhante ao animado, com a emoção de fitas de animação clássicas, que foram redescobertas por séries de televisão como Duck Tales e The Simpsons. A animação ficou legal novamente. E havia Crash no quadro, tínhamos 30 quadros por segundo e cerca de 1.500 polígonos na tela.600 deles foram ocupados por Crash. Foi assim que ele foi importante para nós. A maioria dos jogos usava cerca de 80 polígonos e os personagens pareciam blocos de caminhada estranhos. Queríamos que ele parecesse um personagem de desenho animado real. Isso exigiu muitos detalhes, então ele retirou um terço do nosso orçamento de aterro.


Criando Crash, constantemente inventamos algo novo. Ninguém ainda fez um jogo em 3D no gênero de ação e plataforma. Ao mesmo tempo, ficou claro que os PCs que eram comumente usados ​​para desenvolver jogos não o seriam. Repito, houve o tempo do Windows 3.1, a falta de gráficos 3D e, de fato, apenas 640 KB de RAM disponível. Nos aventuramos a comprar empresas para todos, e então éramos cinco de nós, estações de trabalho Silicon Graphics, principalmente Indigo2 Extremes. Estações de trabalho a um preço de 75 a 100 mil dólares. Eles tinham gráficos 3D. O software para criação de gráficos 3D também custa cerca de 75 mil por carro. Pouco antes disso, filmes como Terminator 2, Abyss e Jurassic Park foram criados com esse software. Portanto, decidimos escolher o Alias ​​PowerAnimator como o software,que naquela época era uma das três opções possíveis [risos].

Então, nós adquirimos uma caixa grande desajeitada - um protótipo inicial do PlayStation, e acabou sendo uma máquina muito boa. Mas primeiro você precisa entender alguma coisa. Ele veio com um monte de manuais que se revelaram incrivelmente mal traduzidos de textos enigmáticos japoneses. Tivemos discussões incríveis sobre o que eles queriam dizer com isso ou com esse engraçado conjunto de palavras em inglês. Para realmente descobrir, tivemos que testar tudo empiricamente. Pegamos partes individuais e escrevemos o código de teste para executar uma determinada ação com a máquina e ver como ela lida. É semelhante à maneira como você dirige um carro em uma pista de corrida e verifica a velocidade com que ele pode virar. O console tinha muitos modos gráficos diferentes, por exemplo, operação com meia velocidade no modo de alta resolução;no entanto, o modo de resolução média foi obviamente inventado no último momento, porque funcionava na mesma velocidade do modo de baixa resolução. Jason já havia criado o personagem Crash Bandicoot, que parecia quase o mesmo do jogo, então eu o trouxe para a tela e o reduzimos ao tamanho que caberia na tela. Escrevi um código para calcular o número de pixels ocupados por cada polígono e, em média, era de 1,2 pixels. Portanto, sugeri: por que precisamos texturizar esses polígonos? Decidimos que não usaríamos o modo de texturização para os personagens. Usaremos um modo mais rápido e fácil ao sombrear, que a maioria dos desenvolvedores não usa. A maioria apenas usou texturas. E em parte isso se deve ao fato de termos realizado testes e encontradoque no modo sem textura, o jogo corre duas vezes mais rápido. Se os desenvolvedores não realizaram testes e acreditaram nos números das instruções, eles receberam um número. E descobrimos que o PlayStation pode realmente desenhar um número bastante decente de polígonos por segundo em equipamentos gráficos, mas precisamos fazer cálculos para saber onde esses polígonos devem estar localizados.


Hoje, quase todos os computadores e até telefones possuem GPUs poderosas de blocos de vértices, e eles podem executar uma quantidade enorme de computação, geralmente gigaflops de multiplicações de somatórios. E, naquele momento, a maioria dos computadores podia realizar multiplicação e adição na CPU, uma de cada vez; portanto, eles conseguiam fazer centenas ou milhares, mas não bilhões de cálculos. Este foi um obstáculo sério.

O problema fundamental com o PlayStation era que a interação de hardware e software do ponto de vista matemático não era ideal. Parecemos entender que o problema era software, que a Sony simplesmente queria usar as bibliotecas que escrevia, mas não operava a máquina ao máximo. Em algum lugar lá dentro, os designers adicionaram equipamentos projetados para resumir multiplicações, porque milhões de operações são necessárias, mas tudo isso foi escondido em uma camada de bibliotecas de linguagem C escritas pela Sony: você passou números para eles, eles fizeram multiplicação, mas o desempenho foi terrível. Embora a unidade gráfica pudesse desenhar de 100 a 120 mil polígonos por segundo, as bibliotecas conseguiram converter matemática, talvez de 5 a 10 mil, o que claramente não era suficiente.Ou seja, se você testar o desempenho básico da matemática de vértices no PlayStation 1, usando as instruções oficiais da Sony e ligando para as bibliotecas de gráficos, poderá perder toda uma ordem de magnitude, usar ferro por um décimo. O código simplesmente não funcionou rápido o suficiente.


Fizemos o mesmo que qualquer bom cientista teria feito - desmontamos o sistema e percebemos que havia energia suficiente no interior, mas o console estava escondendo isso de nós. No caso desse problema específico, propus uma solução criativa aos meus amigos da Sony - trocamos duas folhas de papel, entregando pessoalmente. "Eu não te disse nada." [risos] Mas, na verdade, foi o suficiente. Nós trabalhamos sistematicamente em tudo isso, e verificou-se que dentro do CPU Sony especialmente projetado existe um “cérebro” matemático chamado coprocessador, capaz de executar os cálculos muito especializados e limitados necessários para transformar vértices. E ele consegue executá-los a uma velocidade que a GPU é capaz de consumir esses dados.Quase todos os equipamentos de jogos especializados desde o tempo das máquinas de fliperama sempre tiveram dois "cérebros" principais: um módulo gráfico e uma CPU. As boas e antigas CPUs processavam números únicos e isso lhes permitia fazer tudo o que os computadores são capazes, mas ao mesmo tempo eles só podiam "pensar" um pensamento. O módulo gráfico forneceu uma maneira de renderizar o hardware gráfico. Nos primeiros jogos dos anos 80, mesmo em jogos simples como Galaga, onde você tinha que atirar em naves alienígenas, esse gráfico era chamado de sprites. Naquela época, as CPUs não podiam renderizar sprites. Pequenos módulos gráficos capazes de criar sprites e rolar o fundo foram inventados. De fato, todas as tecnologias de computação gráfica evoluíram graças aos videogames. Mas você sempre teve que manter o equilíbrio entre o cérebro gráfico e o cérebro nessas máquinas,envolvido em matemática geral. Hoje, as GPUs às vezes podem executar milhares das mesmas operações e, portanto, o poder de processamento da GPU é muito maior que o da CPU. Eles têm muitos gigaflops, às vezes até teraflops. Eles não realizam cálculos gerais.


Deixe-me explicar a jogabilidade para você em um jogo de plataformas 2D. Pegue o Donkey Kong Country. Um jogador pode avançar e retroceder em um nível, isto é, esquerdo e direito, pular para cima e para baixo nas plataformas, mas, em essência, o jogo é linear. Geralmente você se move para a direita e encontra obstáculos. Tudo se resume ao princípio que apareceu em Pitfall em 1980. Você pode balançar na videira para pular sobre os espinhos. Monstros podem vagar pelas plataformas, e as abelhas voam sobre elas. O jogo está se desenvolvendo linearmente. Você vê para onde está se movendo e o jogo é muito rápido. Salto-salto-chute, salto-salto-chute. Portanto, vai bem com 2D. O designer mede quase o ritmo musical do jogo e, graças a isso, esses jogos são muito emocionantes e viciantes. Você está entendendo melhor o jogo, primeiro aprenda o básico sobre gerenciamento, torne-se Donkey Kong,então você estuda os movimentos de inimigos e objetos no nível, lembre-se da rota. É como tocar música em um jogo de ritmo. Mas em 3D, tudo é diferente. Adicionamos uma nova dimensão. Agora você pode se mover de um lado para o outro. Se você tem três tartarugas vindo para você no Donkey Kong Country ou no Mario, precisará pular sobre elas ou pular na cabeça delas para derrubar as três uma a uma. Em 3D, você pode simplesmente mover para a direita e contorná-los silenciosamente. Adicionamos toda uma nova dimensão do espaço, e o espaço se tornou demais. Isso pareceu mudar o equilíbrio entre escolha e conflito. Tivemos que descobrir como compensar isso, a fim de manter o curso ativo do jogo. Percebemos que tínhamos adicionado uma nova dimensão; portanto, seria mais fácil subtraí-la, mas subtrair dimensões diferentes. Suponha que isso tenha ocorrido nos níveis com paralelepípedos. Mediçãoque realmente pegamos, houve tempo.

Esta não é uma das três dimensões espaciais. Devido ao perigo do nível (a pedra o esmagará se você não se mover constantemente, se mover, se mover), você não tem o luxo de escolher outras dimensões, então isso faz você se mover por um corredor estreito tão rapidamente que a jogabilidade parece intensa. E o nível do javali se move na direção oposta - em vez de mover um objeto que se move em sua direção, você pula em direção aos objetos. É como se você estivesse sentado em um javali e não pudesse controlar sua velocidade. Este é um porco selvagem e você basicamente precisa se mover para a esquerda e para a direita, após o que um nível 3D mais comum começa. Por exemplo, em Insanity Beach, colocamos paredes da selva para estreitar o espaço, não completamente, mas parcialmente. Existem outros elementos que permitem reduzi-lo, por exemplo, inimigos, como caranguejos ou gambás nesses níveis,eles ignoram o jogador ao lado. Isso não significa que não podemos usar a nova dimensão, se desejado, porque temos uma caixa à esquerda e uma caixa à direita. Você pode fazer coisas interessantes, por exemplo, o jogador deve escolher se quer enfrentar a ameaça e se mudar para a caixa. E se o jogador está em um nível como o Hog Wild, fizemos isso de propósito. Suponha que tivéssemos um poste com espigões e uma caixa à esquerda e o caminho sem obstáculos à direita. Portanto, para sobreviver mais facilmente a esse obstáculo, você pode mover-se para a direita e apenas passar pelo pilar. Mas então você não receberá a caixa. Para obtê-lo, você precisa ir para a postagem no último segundo e depois deslizar para o lado. Ou seja, o jogo oferece ao jogador uma escolha ou elementos de cálculo do tempo, como em alguns níveis do tipo 3D com pedras de calçada rolantes, seguidos por níveis com plataformas. O jogador precisa pular, mas você pode aumentar a tensão,causando o colapso da plataforma. A plataforma, por assim dizer, tem seu próprio período de validade. O jogador sobe nela, e ela se move e cai. E também tínhamos níveis de um formato diferente, onde novamente assumimos uma dimensão. Por exemplo, no jogo existem muitos níveis que representam, por exemplo, uma parede, ou seja, eles parecem ocorrer em 2D. Sim, você pode se mover para o lado, mas já fizemos algo como um nível 2D, consertando a câmera para que ela parecesse de lado. E havia um tipo de níveis em que a câmera subia e o Crash se movia como se estivesse ao longo de uma grade, mas quase não havia movimento para cima e para baixo, e em vez de espaço aberto, o jogador estava em pontes sob as quais havia algum tipo de perigo mortal.onde novamente tomamos uma dimensão. Por exemplo, no jogo existem muitos níveis que representam, por exemplo, uma parede, ou seja, eles parecem ocorrer em 2D. Sim, você pode se mover para o lado, mas já fizemos algo como um nível 2D, consertando a câmera para que ela parecesse de lado. E havia mais um tipo de níveis em que a câmera subia e o Crash se movia como se estivesse ao longo de uma grade, mas quase não havia movimento para cima e para baixo, e em vez de espaço aberto, o jogador estava em pontes sob as quais há algum tipo de perigo mortal.onde novamente tomamos uma dimensão. Por exemplo, no jogo existem muitos níveis que representam, por exemplo, uma parede, ou seja, eles parecem ocorrer em 2D. Sim, você pode se mover para o lado, mas já fizemos algo como um nível 2D, consertando a câmera para que ela parecesse de lado. E havia mais um tipo de níveis em que a câmera subia e o Crash se movia como se estivesse ao longo de uma grade, mas quase não havia movimento para cima e para baixo, e em vez de espaço aberto, o jogador estava em pontes sob as quais há algum tipo de perigo mortal.em que a câmera subiu e Crash se moveu como se estivesse ao longo de uma grade, mas quase não havia movimento para cima e para baixo, e em vez de espaço aberto, o jogador estava em pontes sob as quais havia algum tipo de perigo mortal.em que a câmera subiu e Crash se moveu como se estivesse ao longo de uma grade, mas quase não havia movimento para cima e para baixo, e em vez de espaço aberto, o jogador estava em pontes sob as quais havia algum tipo de perigo mortal.


Em cada um desses casos, gostávamos de adicionar restrições ou diminuir os graus de liberdade para diminuir o espaço e aumentar a intensidade da jogabilidade. Por causa da dimensão extra, o jogo é mais diversificado do que o jogo 2D tradicional, porque em diferentes níveis retiramos diferentes dimensões. Tínhamos entre 7 e 10 estratégias diferentes para limitar as medidas. Na verdade, as caixas também foram inventadas para preencher o vazio. Não há muitos inimigos na tela, porque a máquina não aguentaria um grande número, mas preenchíamos ativamente os espaços vazios com gavetas. Além disso, eles podem desmoronar em pilhas inteiras e criar quebra-cabeças; para um objeto tão simples de apenas alguns polígonos, era incrivelmente universal.

Tínhamos certeza de que queríamos criar o tipo de animação que nunca foi usado em videogames. Era para se parecer com o estilo de Looney Tunes, uma animação tão deformada. Este é um estilo de animação muito elástico e flexível, implementado na animação tradicional. Portanto, os personagens realmente precisavam ser animados. Na era dos gráficos menos polis dos anos 90, os personagens eram tradicionalmente criados a partir de um pequeno número de ossos: o úmero, o osso do antebraço, o osso da cabeça; todos os gráficos do quadril direito do personagem foram anexados ao osso da coxa direita. E um osso é um objeto rígido, como uma dobradiça. Pode ser girado ou movido. É um pouco remanescente da imitação de um robô e, se você precisar de dedos, precisará criar muitos ossos. Para o PlayStation, isso é muita computação. Nós sabíamos que ela nunca iria lidar com um monte de ossos.E certamente teria sido impossível criar uma animação de bater na mão com um martelo, como acontece nos desenhos animados. O que vemos lá? A mão incha como uma bola, ou achatada em uma panqueca, ou algo assim. Não poderíamos fazer tudo isso com um único sistema ósseo. Em jogos como o Virtua Fighter, as máquinas de arcade usavam o sistema ósseo clássico. Era bastante adequado para jogos de luta, porque não existem tantas deformações, mas os personagens pareciam um pouco limitados. Usar ossos é quase impossível ou muito difícil de criar animação facial, e sabíamos que realmente queríamos implementá-lo. Qual personagem não gosta de sorrir ou piscar? É possível obter uma animação dessas em uma estação de trabalho Silicon Graphics?como acontece nos desenhos animados. O que vemos lá? A mão incha como uma bola, ou achatada em uma panqueca, ou algo assim. Não poderíamos fazer tudo isso com um único sistema ósseo. Em jogos como o Virtua Fighter, as máquinas de arcade usavam o sistema ósseo clássico. Era bastante adequado para jogos de luta, porque não existem tantas deformações, mas os personagens pareciam um pouco limitados. Usar ossos é quase impossível ou muito difícil de criar animação facial, e sabíamos que realmente queríamos implementá-lo. Qual personagem não gosta de sorrir ou piscar? É possível obter uma animação dessas em uma estação de trabalho Silicon Graphics?como acontece nos desenhos animados. O que vemos lá? A mão incha como uma bola, ou achatada em uma panqueca, ou algo assim. Não poderíamos fazer tudo isso com um único sistema ósseo. Em jogos como o Virtua Fighter, as máquinas de arcade usavam o sistema ósseo clássico. Era bastante adequado para jogos de luta, porque não existem tantas deformações, mas os personagens pareciam um pouco limitados. Usando ossos, é quase impossível ou muito difícil criar animação facial, e sabíamos que realmente queríamos implementá-la. Qual personagem não gosta de sorrir ou piscar? É possível obter uma animação dessas em uma estação de trabalho Silicon Graphics?Em jogos como o Virtua Fighter, as máquinas de arcade usavam o sistema ósseo clássico. Era bastante adequado para jogos de luta, porque não existem tantas deformações, mas os personagens pareciam um pouco limitados. Usar ossos é quase impossível ou muito difícil de criar animação facial, e sabíamos que realmente queríamos implementá-lo. Qual personagem não gosta de sorrir ou piscar? É possível obter uma animação dessas em uma estação de trabalho Silicon Graphics?Em jogos como o Virtua Fighter, as máquinas de arcade usavam o sistema ósseo clássico. Era bastante adequado para jogos de luta, porque não existem tantas deformações, mas os personagens pareciam um pouco limitados. Usando ossos, é quase impossível ou muito difícil criar animação facial, e sabíamos que realmente queríamos implementá-la. Qual personagem não gosta de sorrir ou piscar? É possível obter uma animação dessas em uma estação de trabalho Silicon Graphics?Qual personagem não gosta de sorrir ou piscar? É possível obter uma animação dessas em uma estação de trabalho Silicon Graphics?Qual personagem não gosta de sorrir ou piscar? É possível obter uma animação dessas em uma estação de trabalho Silicon Graphics?

Jason criou este modelo Crash e estava pronto para criar animações animadas de desenhos animados; ele descobriu que é realmente possível forçar o PowerAnimator a fazer isso, porque ele tinha ferramentas poderosas como ossos e pesos de vértices, além de campos de distorção. Mas a maneira como eles foram implementados pelo PowerAnimator não era jogável no PlayStation. Todas essas coisas usavam equipamentos caros para trabalhar com ponto flutuante em uma estação de trabalho Silicon Graphics, e mesmo ela não podia executá-los em tempo real. Ela teve que renderizar animações e o videogame acontece em tempo real. Precisávamos ter tempo para fazer tudo em 1/30 de segundo. Isso se tornou outro problema sério, porque realmente queríamos implementar essas animações.

Sugeri: bem, podemos ler as posições de todos os vértices. Se sabemos onde estão as posições de todos os vértices em cada quadro, o tipo de osso não é importante para nós. Embora a SGI use pelo menos mil ossos, o princípio será o mesmo. Simplesmente desenhamos polígonos e posições de vértice, e isso pode ser feito rapidamente. Como não precisamos realizar cálculos ósseos, os recursos da CPU não serão gastos com ossos. Mas com essa estratégia, o problema era que, se tivermos uma animação com 30 quadros por segundo e o Crash consistir em cerca de 500 vértices e algo em torno de 600 polígonos, precisaremos armazenar a posição em cada quadro de animação para cada vértice. Essa é uma grande quantidade de dados. Mas, ao mesmo tempo, já estávamos empolgados com essa estratégia maluca de memória, com um aumento de trinta vezes na quantidade de dados, para que pudéssemos processar um pouco mais de dados do que outros.Por isso, decidimos criar dados de animação usando todos os efeitos sofisticados de Jason no PowerAnimator. Foi o que fiz, e funcionou, porque o kit de desenvolvimento do PlayStation tinha algo em torno de 8 ou 32 megabytes de memória. Portanto, foi possível permitir um volume muito maior do que o disponível em uma máquina real. Nós trabalhamos nisso por vários meses, e eu constantemente pensava que de alguma forma teríamos que encaixar tudo em nossa memória. O volume era enorme. Precisa ser feito menos. Mas tive a sensação de que, no sentido matemático, não há tantos dados que você possa escrever um algoritmo de compactação especializado. Como entender isso: na teoria da ciência da computação, os dados têm um certo grau de complexidade. Eles têm um padrão e limitações e, no nosso caso, essas animações podem sofrer a perda de sua parte.De acordo com a mesma teoria, o jpeg funciona e é graças a ele que ele mudou completamente a Internet e a maneira como as imagens são armazenadas. No caso do jpeg, convertemos a imagem em uma faixa de frequência, é uma transformação matemática complexa e, em seguida, descartamos o lixo de alta frequência, invertemos e, dependendo da quantidade de lixo descartado, a imagem começa a parecer melhor ou pior, mas ainda contém as partes mais importantes, ocupando 20 ou 30 vezes menos espaço, porque nos livramos de informações sem importância. Eu tinha certeza de que, com os dados das animações, haverá a mesma situação em que podemos nos livrar das animações de alta frequência, por exemplo, nos vértices da cintura do personagem, porque elas não se movem muito para cima e para baixo.No caso do jpeg, convertemos a imagem em uma faixa de frequência, é uma transformação matemática complexa e, em seguida, descartamos o lixo de alta frequência, invertemos e, dependendo da quantidade de lixo descartado, a imagem começa a parecer melhor ou pior, mas ainda contém as partes mais importantes, ocupando 20 ou 30 vezes menos espaço, porque nos livramos de informações sem importância. Eu tinha certeza de que, com os dados das animações, haverá a mesma situação em que podemos nos livrar das animações de alta frequência, por exemplo, nos vértices da cintura do personagem, porque elas não se movem muito para cima e para baixo.No caso do jpeg, convertemos a imagem em uma faixa de frequência, é uma transformação matemática complexa e, em seguida, descartamos o lixo de alta frequência, invertemos e, dependendo da quantidade de lixo descartado, a imagem começa a parecer melhor ou pior, mas ainda contém as partes mais importantes, ocupando 20 ou 30 vezes menos espaço, porque nos livramos de informações sem importância. Eu tinha certeza de que, com os dados das animações, haverá a mesma situação em que podemos nos livrar das animações de alta frequência, por exemplo, nos vértices da cintura do personagem, porque elas não se movem muito para cima e para baixo.mas ainda contém as partes mais importantes, ocupando 20 ou 30 vezes menos espaço, porque nos livramos de informações sem importância. Eu tinha certeza de que, com os dados das animações, haverá a mesma situação em que podemos nos livrar das animações de alta frequência, por exemplo, nos vértices da cintura do personagem, porque elas não se movem muito para cima e para baixo.mas ainda contém as partes mais importantes, ocupando 20 ou 30 vezes menos espaço, porque nos livramos de informações sem importância. Eu tinha certeza de que, com os dados das animações, haverá a mesma situação em que podemos nos livrar das animações de alta frequência, por exemplo, nos vértices da cintura do personagem, porque elas não se movem muito para cima e para baixo.


Mark Zerny escreveu um programa para análise. Ele pegou um conjunto de animações e analisou cada componente e cada vértice, calculou um tipo de faixa dinâmica e a magnitude das mudanças que ocorreram entre as animações. Ele descobriu que a informação realmente muda um pouco. Portanto, verificou-se que podemos usar um algoritmo muito especializado que determina o intervalo e tudo o mais e também cria um mapa no início, no qual, por exemplo, está escrito que a coordenada Y do vértice número sete contém pouca informação, portanto, precisa apenas de dois bits. Que ela se move nessa faixa e precisa de tantos bits. No final, obtivemos uma taxa de compactação em algum lugar na faixa de 50 a 81, ou seja, os dados ficaram 50 vezes menores.


Se você observar o design do PlayStation 1, apesar do design e do equilíbrio corretos, a máquina tinha apenas dois megabytes de RAM e um megabyte de VRAM. Mas ela também tinha uma unidade de CD, capaz de armazenar até 640 megabytes de dados para leitura, e isso é muito mais. Essa proporção é muito grande. Ou seja, teoricamente era possível fazer níveis muito mais que dois megabytes. Como em um jogo normal, digamos em Twisted Metal, você chega ao nível da Torre Eiffel e o jogo carrega o nível da Torre Eiffel em um megabyte de memória. Eles têm uma certa quantidade de gráficos e animações, ocupando cerca de um megabyte. Agora você pode criar diferentes métodos de compactação de dados, mas não há como contornar essa limitação, e as pessoas realmente não tentaram. Então, em princípio, tudo funcionou. Um computador, ou seja, CPU e GPU, poderia acessar apenaso que está atualmente na memória. A cada 1/30 segundo de memória existe o que você precisa para renderizar o quadro. Tudo o que você desenhará agora, qualquer animação e qualquer som que será usado agora deve estar na memória, porque você pode acessar rapidamente a memória. Uma unidade de CD leva cerca de 1/3 de segundo para mover a cabeça para qualquer ponto do CD. Leva algum tempo para carregar os dados. Ele pode baixar um megabyte em seis segundos ou mais. Portanto, você não pode desenhar apenas um quadro e começar a baixar um novo megabyte do disco, porque levará mais oito segundos para obtê-lo. E o que você fará - espere oito segundos inteiros? Isso pode ser feito entre níveis. Portanto, ao alternar entre níveis em um jogo normal, há uma tela de carregamento quando se lê um megabyte inteiro, ou quanto ele precisa, do disco.CD é uma unidade mais "distante". É maior, mas também mais lento. Use por mais tempo, mas por que não usá-lo? Ele é, afinal. Nos primeiros jogos do PlayStation, os desenvolvedores criavam níveis de um ou dois megabytes, e 640 megabytes cabiam em um CD, ou seja, 300 níveis podem ser gravados nele. Eles tinham 300 níveis? Não, caso contrário, levaria dez anos para criar o jogo. Portanto, os CDs estavam quase vazios ou cheios de música ou vídeo, porque são dados volumosos. Mas muitas vezes os discos estavam simplesmente vazios. Jogos como Twisted Metal poderiam ocupar apenas 50 megabytes de espaço em disco. Portanto, os níveis de tantos jogos parecem ocupar cerca de um megabyte, bem, talvez um megabyte e meio. Isso foi o suficiente. Muitos jogos foram criados para o PlayStation, mas, na minha teoria, não precisamos nos ater a isso.


Minha idéia era usar técnicas sofisticadas de memória virtual para substituir blocos de dados. Suponha que, se um nível ocupar 30 megabytes, em um momento específico, precisaremos de apenas um megabyte, mas o nível inteiro será de 30 megabytes. Decidi dividir o nível inteiro em páginas de 64 KB, criando blocos de dados a partir deles. Eles podem ser algo significativo, por exemplo, animação de travamento, seu código ou parte do plano de fundo. Os blocos devem ter menos de 64 KB, os empacotamos em uma página até que esteja quase completamente preenchida, mas eles não podem ser divididos em várias páginas ou é necessário dividir os blocos em blocos ainda menores. Quando um nível consiste em 30 megabytes de páginas, 16-18 páginas podem caber na memória. O problema é que eu posso distribuir os blocos de nível de tal maneirade modo que, em qualquer ponto do nível, nunca precisarei de mais de 16 páginas de dados; também foi possível pegar um bloco, duplicá-lo em várias páginas, se isso ajudasse a funcionar melhor em todo o sistema. O jogo antecipadamente, mas determina constantemente quais páginas serão carregadas se o jogador se mover de uma das maneiras, descarta as páginas antigas que não são necessárias, carregando outras em seu lugar. Qualquer página pode substituir qualquer outra, se nunca precisarmos de mais de 16 páginas ativas por vez. Todas as texturas de travamento são nítidas o suficiente e com muitas cores, e as texturas de Tomb Raider parecem borradas e pixeladas, porque há pouca memória alocada para elas. Os desenvolvedores não tinham um lugar para armazenar textura adicional. E para isso, tínhamos 20 a 30 vezes mais espaço. Ou pegue o número de polígonos por nível.Jogos como Tomb Raider parecem muito cúbicos, com corredores quadrados, e o Crash tem formas malucas e muito mais, porque tínhamos muito mais polígonos. Havia muitas outras tecnologias que serviam a esse propósito, mas a memória era muito importante. Graças a isso, recebi várias patentes porque fui uma das primeiras pessoas que perceberam como realmente usar o espaço em um CD ou disco como parte dinâmica do jogo para expandi-lo. Hoje acontece o tempo todo.que entendem como realmente usar o espaço em um CD ou disco como parte dinâmica do jogo para expandi-lo. Hoje acontece o tempo todo.que entendem como realmente usar o espaço em um CD ou disco como parte dinâmica do jogo para expandi-lo. Hoje acontece o tempo todo.


Acredito que uma das lições mais importantes de Crash Bandicoot foi que os jogos podem ter sua própria personalidade estilística e estilo artístico. E sim, até certo ponto, outros já fizeram isso antes. No final, Mario tem seu próprio estilo, que determinou em grande parte o estilo dos videogames do passado. Mas Crash tem seu próprio mundo holístico, com empréstimos óbvios do estilo dos desenhos animados americanos. E todos os produtos Crash (quero dizer os quatro primeiros jogos) aderiram a esse estilo. Ainda é interessante jogar nas versões originais e elas parecem muito boas, mesmo no PlayStation 1, porque esse estilo ultrapassa as limitações de pixel. Nos estágios iniciais do desenvolvimento, tínhamos uma meia esperança e um sentido completamente arrogantes: um fator importante na escolha do PlayStation era o fato de a Nintendo ter Mario,e a Sega tem Sonic. E a Sony, ao que parece, ainda não tinha um mascote; portanto, se criarmos um jogo com um personagem semelhante a um mascote, não teremos concorrentes. E a Sony ficou realmente interessada imediatamente, eles queriam esse jogo. Tínhamos que garantir que ele só aparecesse no PlayStation. Decidimos deliberadamente criar uma situação dessas e depois exploramos nossas possibilidades. Mas o fato de ter funcionado foi um milagre. Sonhamos que Crash se tornaria um mascote. Mas mesmo quando a Sony concordou em cooperar, ela nunca o tornou oficial - eles disseram que não era um mascote, que não tinham um mascote, mas todos o consideraram um mascote, e a empresa o apoiou tanto que até comprou os direitos da Universal.E a Sony ficou realmente interessada imediatamente, eles queriam esse jogo. Tínhamos que garantir que ele só aparecesse no PlayStation. Decidimos deliberadamente criar uma situação dessas e depois exploramos nossas possibilidades. Mas o fato de ter funcionado foi um milagre. Sonhamos que Crash se tornaria um mascote. Mas mesmo quando a Sony concordou em cooperar, ela nunca o tornou oficial - eles disseram que não era um mascote, que não tinham um mascote, mas todos o consideraram um mascote, e a empresa o apoiou tanto que até comprou os direitos da Universal.E a Sony ficou realmente interessada imediatamente, eles queriam esse jogo. Tínhamos que garantir que ele só aparecesse no PlayStation. Decidimos deliberadamente criar uma situação dessas e depois exploramos nossas possibilidades. Mas o fato de ter funcionado foi um milagre. Sonhamos que Crash se tornaria um mascote. Mas mesmo quando a Sony concordou em cooperar, ela nunca o tornou oficial - eles disseram que não era um mascote, que não tinham um mascote, mas todos o consideraram um mascote, e a empresa o apoiou tanto que até comprou os direitos da Universal.Mas mesmo quando a Sony concordou em cooperar, ela nunca o tornou oficial - eles disseram que não era um mascote, que não tinham um mascote, mas todos o consideraram um mascote, e a empresa o apoiou tanto que até comprou os direitos da Universal.Mas mesmo quando a Sony concordou em cooperar, ela nunca o tornou oficial - eles disseram que não era um mascote, que não tinham um mascote, mas todos o consideraram um mascote, e a empresa o apoiou tanto que até comprou os direitos da Universal.


As vendas do Crash Bandicoot começaram bem, mas continuaram. Crash Bandicoot foi o primeiro jogo a vender melhor no segundo ano de vendas, e possivelmente no terceiro, e tenho certeza de que, quando lançamos o Crash Team Racing na semana anterior ao Natal, o Crash Bandicoot o ultrapassou e vendeu mais cópias do que as vendidas por todo o tempo anterior. Primeiro, era um jogo atraente para um público muito amplo; todos, de uma criança a um jogador hardcore, podiam jogar. Não havia muita crueldade, mas os personagens fascinavam, ela era engraçada, e a jogabilidade era bastante intensa e ao mesmo tempo acessível. Você poderia apenas sentar e começar a jogar, e para nós esse era um dos objetivos mais importantes. Eu não queria criar um jogo no qual pensasse muito. Crash Bandicoot tornou-se uma loja de ferreirona qual a filosofia do Naughty Dog foi forjada: todo elemento que entra no jogo deve ser ótimo, porque queríamos criar um jogo realmente ótimo, um jogo que se tornaria um sucesso, um clássico e, para conseguir isso, decidimos que deveria ser ótimo nele isso é tudo, mas a melhor tecnologia é necessária para isso. Quanto melhor a tecnologia, melhor o jogo parecerá e parecerá. Se você implementar tudo isso corretamente, poderá superar a mediocridade e criar uma obra-prima do jogo.melhor o jogo parecerá e parecerá. Se você implementar tudo isso corretamente, poderá superar a mediocridade e criar uma obra-prima do jogo.melhor o jogo parecerá e parecerá. Se você implementar tudo isso corretamente, poderá superar a mediocridade e criar uma obra-prima do jogo.

All Articles