Donkey Kong e eu
No outono de 1981, entrei na universidade e me viciei nos jogos Centipede e Tempest nas máquinas de fliperama Atari. Eu era um pouco versado no hardware dos computadores pessoais Atari 400/800 e decidi fazer uma compra devastadora para o orçamento do aluno - o Atari 400 e uma TV em preto e branco (eu não podia comprar cores). Tendo tocado o suficiente com o Basic, comprei um cartucho com o Assembler / Editor e comecei a examinar o clone Centipede. Não tive a oportunidade de confiar na experiência de projetos de jogos anteriores e tive que entender tudo sozinho. Assim como nas tarefas da escola: você precisa encontrar uma solução usando apenas pequenas dicas de livros e palestras.
Todo mundo que trabalhou com Asm / Editor provavelmente carrega as mesmas cicatrizes emocionais profundas em si mesmo como eu! O editor era incrivelmente lento, o depurador estava ficando seco, e eu tive que excluir comentários e usar sobreposições em alguns kilobytes ( não havia muitas RAMs e todas as variáveis não se encaixavam, então a técnica de sobreposição foi usada - diferentes grupos de variáveis foram colocados nos mesmos endereços. ao mesmo tempo, variáveis de seções diferentes não puderam ser usadas, e não apenas variáveis com o mesmo endereço, mas geralmente variáveis de seções de sobreposição diferentes.) para ajustar o código inteiro. A criação do jogo, que chamei de Myriapede, levou três meses. Ainda tenho esboços e esboços: papel milimetrado, riscado com canetas coloridas e com valores de cores hexadecimais, cuidadosamente escritos nos campos. Peguei as cores aleatoriamente: eu só tinha uma tela em preto e branco barata e fui até o meu amigo por algumas horas para verificar e ajustar os valores de cores na TV dele.A Atari Program Exchange (editora de bolso) anunciou uma competição com um grande prêmio de US $ 25.000. Ao longo do semestre, pulei as aulas da universidade e estudei apenas Myriapede. Terminei o jogo com uma margem de uma ou duas semanas e enviei para a competição.Algumas semanas depois, veio uma carta da Atari, na qual eles relataram: primeiro, ficaram muito impressionados com o meu trabalho, mas, em segundo lugar, era muito parecido com a Centopéia (bem, sim, era) e, portanto, são forçados a rejeitá-la. O subtexto era que eles provavelmente me processariam se eu tentasse vender o jogo. Eu fui esmagado. Fechando esse tópico, ele levou algumas cópias para o grupo de hobby local. Eu acho que o jogo se espalhou a partir daí, e ouvi dizer que as pessoas gostaram ("o melhor programa de 1982" ou algo assim).
Algum tempo depois, recebi uma ligação da Atari: eles me convidaram para uma entrevista. Fiquei abalado pela emoção. Voei até eles e mostrei a cada entrevistador Myriapede. E sempre nesse lugar a conversa congelava. Antes do início do jogo, eles meio que me mostraram atenção - “tudo bem, você escreveu o jogo” - mas depois do início eles se envolveram no processo e eu os lembrei que estávamos na entrevista! Um dos entrevistados foi o autor da centopéia original e ele imediatamente disse imediatamente que minha versão é melhor.Uma oferta de emprego surgiu em algumas semanas. Atari prometeu transportar todo o meu lixo que ocupava todo o quarto para a Califórnia. Voei imediatamente e passei duas semanas no hotel, enquanto esperava a chegada das minhas coisas. A empresa realmente queria me pegar!Naquela época, havia dois populares jogos de máquinas de arcade que eu simplesmente não agüentava - Zaxxon, um atirador de rolagem burro e chato, e Donkey Kong - alto, sem sentido e irritante. E, é claro, a razão pela qual eles precisavam de mim na Califórnia estava portando Donkey Kong! Depois de passar por momentos de desesperança (e pretensão de entusiasmo pelos chefes), eu cerrei os dentes, dei um pulo e passei muito tempo em frente a uma pequena máquina de fliperama no hotel, jogando DK para aprender muito, muito bem.
Aqui é necessário explicar como o departamento de portabilidade de jogos de máquinas de fliperama funcionava na Atari. Em essência, os funcionários do departamento de marketing concordaram com uma licença para distribuir o Imenyrek da Igrodel em cartuchos para os computadores da Atari. Só isso. Esse foi o acordo: não tivemos ajuda dos desenvolvedores do original. Nenhuma listagem, nenhuma conversa com engenheiros ou documentação do projeto - nada. De fato, fomos forçados a comprar nossa própria máquina de fliperama e aprender a jogar esse jogo (a propósito, é por isso que joguei no hotel - nem sequer trouxemos nossa cópia do jogo!).Então joguei Donkey Kong o máximo que pude e comecei a bater em idéias. Escrevi um documento de design de 25 a 30 páginas no qual o jogo foi dividido em módulos e o período de desenvolvimento foi estimado em 5 meses (em novembro de 1982) e, preocupado, levei-o ao meu chefe, Ken. O documento era bom o suficiente? Ou eles vão me enviar para fazer as malas como designer leigo e programador amador?"Estamos totalmente encantados com o seu TK", disse Ken. E acabei de listar os objetos no jogo, escrevi um pequeno pseudocódigo para alguns módulos principais do jogo e assumi que isso era apenas uma reserva para este TK! Mas todos ao redor perceberam este documento como completamente concluído. E parece que eu só preciso escrever o código de acordo com ele. Foi assustador."O departamento de marketing está esperando o jogo no Natal", disse Ken. E depois de fazer cálculos precisos, cheguei à marca de 150 dias úteis. Não houve uma única chance de avançar no jogo em algumas semanas, mas senti claramente a pressão. Desde a ociosidade (de todas as preocupações, tive apenas que procurar um apartamento e colocar meus pertences na chegada), passei quase todo o meu tempo no trabalho. A primeira vez que passei a noite toda sem dormir, elevando a fasquia cada vez mais alto, a fim de acompanhar o cara no escritório à minha frente, que também trabalhou a noite toda. A sala de jantar oferecia três refeições por dia.
O melhor é que, se você se envolve tanto com o projeto, em algum momento ele começa a escrever por conta própria e você meio que nada ao lado dele. Sua vida é dividida em trabalho e toda bobagem chata - dormir e comer. Sim, eu sei que parece um inferno, mas é realmente divertido. Eu tinha cerca de 21 anos e, mesmo que não tivesse sido pago, ainda estaria fazendo algo semelhante de graça.Para desenvolvimento cruzado, usamos minicomputadores MV / 8000 da Data General. Sobre exatamente a mesma máquina, Tracy Kidder escreveu o livro Alma de uma Nova Máquina. Apesar do fato de não ser o VAX com o Unix a bordo (o que seria preferível para mim), o ambiente ainda era bastante conveniente e continha várias boas utilidades (embora não houvesse Emacs!). Usamos a versão do Atari Macro Assembler portada para MV / 8000, e era muito melhor do que o indescritivelmente lento Assembler / Editor no qual escrevi Myriapede. Mas tivemos que carregar todo o código nos sistemas de desenvolvimento a uma velocidade de 9600 bauds, portanto, mais perto da conclusão do projeto, o tempo de processamento de minhas solicitações ao sistema se tornou um problema sério, especialmente considerando 40 ou 50 dos meus colegas com quem compartilhei MV / 8000 durante o dia .Lembrei-me do mainframe carregado na minha universidade. Eu costumava ficar acordado até tarde e, por volta das seis horas da noite, os carros começaram a trabalhar muito rápido (5 minutos para esperar em vez de cerca de uma hora).
No primeiro dia de minha chegada ao escritório, depois de acelerar, encontrei o Atari 800 embalado. Montei-o rapidamente, verifiquei se funcionava e fui tomar um café.Quando voltei, a garota do departamento de suprimentos estava parada na porta. "Uau", ela engasgou, "você sabe montar um computador!" E eu apenas tive que fazer isso. ”Sim, obrigado, mas todos não deveriam ter essa habilidade aqui? Conectar e configurar o Atari não é a tarefa mais fácil e óbvia, mas também não é de todo difícil.Uma campainha de alarme ... O primeiro vizinho do escritório não sabia como configurar seu computador. De fato, ele não sabia de nada, como se viu depois. Ele foi contratado para trabalhar em Dig Dug e estava completamente perdido. Eu tive que ensinar tudo a ele, incluindo programação em linguagem assembly, o trabalho do hardware da Atari, como baixar várias informações e como depurá-las. Isso foi triste.Essa situação passou pelo fio vermelho do meu trabalho na Atari. Os iniciantes não precisavam saber como fazer seu trabalho, mas perdi tempo ajudando a descobrir coisas que eles já deveriam saber antes de começar o trabalho. As táticas de contratação eram imperfeitas.Eu escrevo em C há vários anos e, portanto, desenvolvi algo como um dialeto em C para descrever a operação de módulos. No começo, esboçei várias páginas desse pseudo-C de alto nível e passei meio dia compilando-o no assembler 6502. Às vezes, verificava-se que uma seção bastante grande do código funcionava da primeira vez! Mas, em geral, foi uma experiência bastante assustadora.Outra experiência adquirida foi a compreensão de que o comentário é de alguma forma importante. Vi trechos de código para os sistemas operacionais Atari (incluindo o código-fonte do 400/800 OS) e eles eram bastante claros e bonitos. Mas a maioria das fontes de jogos provenientes do departamento de software de consumo eram terríveis, pilhas de lixo: quase nenhum comentário, sem qualquer compreensão do que estava acontecendo. Apenas listagens que consistem em LDA / STA / ADD, um conjunto de letras e possivelmente um rótulo aleatório que tivesse um nome significativo. Em outras palavras, código completamente não suportado! Na maioria das situações para a indústria de jogos, isso é bastante normal: quase nenhum código foi reutilizado ou levado para as bibliotecas (com exceção dos procedimentos bem depurados da unidade Atari Coin-Op que executam operações matemáticas e trabalham com mecanismos de moedas em máquinas de fliperama).Eu acho que DK é o melhor comentado entre todos os produtos de consumo lançados pela Atari (Super Pacman é ainda mais legal, mas não foi colocado à venda). Os usuários não veem comentários, ao contrário de outros engenheiros que consideram útil estudar o que você escreveu. Por exemplo, os saltos de Mario são calculados de acordo com as simples leis físicas do movimento, e as equações são escritas no código fonte, bem formatadas, e você sempre pode rastrear de onde essas expressões mágicas vêm no código. Após o lançamento do DK, meu colega conseguiu uma cópia do código, passou uma semana lendo e disse que estava chocado ("Não sei como você pode imprimir tudo. Não exatamente em cinco meses! Quando vi o código relacionado ao movimento, meu queixo caiu) para o chão. ”). Isso me levou a pintar! O código fonte deve servir ao entretenimento e à educação.Donkey Kong foi colocado à venda em meados de março de 1983. Lembro-me vagamente de uma pequena festa trabalhando nesse assunto, mas naquele momento fiquei muito feliz por tudo ter terminado.Detalhes Técnicos Kong usa o modo gráfico $ E (imagem de 192 linhas por 160 colunas). Quando o nível foi carregado, o fundo foi desenhado uma vez. Barris e outras criaturas foram exibidos via xor (eu tinha o código responsável pela construção de máscaras e redesenho, mas acabou sendo muito lento). Mario consistia em vários objetos do jogo (acho que eram três). Itens de prêmio (guarda-chuvas, ...) também pertenciam aos objetos do jogo. A saída dos gráficos usando o xor me deixou irritada, mas a maioria não se banhou, e alguns acharam até legal fazer isso! (ao renderizar, a cor do pixel de fundo xor's com a cor de pixel do objeto, quando foi necessário remover o objeto dessa posição, apenas xor ou back, e a cor de fundo foi restaurada ).Brad Fuller criou todos os sons. Mona Lundstrom trabalhou em uma peça significativa de design gráfico (mas eu redesenhei mais). Outro engenheiro foi responsável pelas "cenas cortadas", cujo código eu tive que reescrever completamente (ele inicialmente queria usar o Forte e não entendeu que o jogo não podia dar ao luxo de dar metade do espaço no cartucho ao intérprete do forte apenas para facilitar sua vida).No auge, o DK ocupava 20 kilobytes, mas era necessário colocá-lo em uma dieta, porque o cartucho continha 16Kb. Muitas imagens foram compactadas (observe, por exemplo, que Kong é simétrico). No final, eu mordi apenas alguns bytes por dia, e o jogo saiu com uma margem de apenas uma dúzia de bytes livres.Saí de Pascalha, mas ela não vale a pena encontrá-la. Além disso, não me lembro de como fazê-lo exatamente (algo como morrer no nível "pilha de areia" com três vidas e pontos ganhos em mais de 7000).Ajustando a complexidade, diminuí a velocidade do jogo e apenas me certifico de que seja aceitável. Algumas trajetórias dos objetos são aleatórias, mas limitadas a tal ponto que você ainda pode passar por elas se for rápido o suficiente.Fui à primeira reunião do departamento com confiança no futuro da Atari. Embora eu não entendesse muito, a principal idéia da administração era que as vendas estão desacelerando, os lucros são bastante reduzidos e a empresa deve passar por uma reestruturação para permanecer lucrativa.O prédio do lado oposto foi o primeiro sinal: a Atari usou para produzir 2600 consoles de jogos. Eles mudaram a produção para o exterior e demitiram a maioria das pessoas da fábrica local.Pequenas reduções no departamento de marketing. Um pequeno grupo de 8 programadores comigo, entre eles, foi transferido para um pequeno prédio, muito distante de todos os principais edifícios da Atari, e na verdade estávamos isolados do que estava acontecendo. Mas mesmo a essa distância, vimos que as coisas não estavam indo muito bem. A indústria de jogos era impressionante e a Atari carregava milhões de cartuchos não vendidos em aterros sanitários. Todos esses erros, que por enquanto estavam cobertos por um grande sucesso, subitamente explodiram e atingiram a empresa com força.Meu colega finalmente se formou na Robotron. Mediante solicitação, ela fez três versões da imagem da ROM, diferindo no endereçamento na ROM. Infelizmente, o departamento de perguntas e respostas conseguiu verificar apenas dois deles. Adivinha qual versão a Atari enviou para produção e qual versão teve um erro crítico? Vi como os engenheiros de ferro sofreram quando perceberam que um portão lógico barato poderia consertar o jogo. Nesse caso, apenas alguns bytes estavam incorretos. Como resultado, a Atari jogou US $ 200.000 em cartuchos no lixo.Tive a sensação de que erros semelhantes ocorriam constantemente. Além disso, tudo isso foi complementado pelo fato de os jogos simplesmente não venderem. Com foco nas métricas de tempo de colocação no mercado, o marketing da Atari forçou os engenheiros a escrever jogos chatos não polidos. E essa prática se voltou contra eles! As pessoas estão cansadas de jogar os mesmos jogos por motivos antigos.Demissões em massa e reorganizações aconteciam a cada poucos meses. Nosso grupo foi transferido para a esquina do edifício para a Coin-Op: consolidação com o objetivo de economizar custos. Eu estava trabalhando no Super Pacman naquela época, mas ninguém se importava, então fui direto ao processo e fiz um bom trabalho no jogo.Por fim, Jack Tramiel comprou as peças da Atari que ele precisava, e eu fui puxado para a Atari ST, mas isso é outra história. Source: https://habr.com/ru/post/pt397971/
All Articles