Hackers divertidos: uma breve história

É difícil listar todas as dificuldades enfrentadas pelos desenvolvedores na implementação de suas idéias - desde problemas inesperados de compatibilidade com ferro, tempo esgotado, erros irreproduzíveis, até falhas de tecnologia que não permitem recriar tudo o que você deseja ou grandes ambições. Depois de ler uma série de revelações post mortem, em que os desenvolvedores se queixaram de obstáculos inesperados que se interpuseram, só podemos imaginar como o produto final era interessante e jogável, embora não contivesse nem metade do que foi concebido. Mas este artigo abordará alguns exemplos impressionantes da história do desenvolvimento de jogos famosos nos quais os programadores conseguiram superar as dificuldades e fizeram isso de uma maneira incomum.

Na verdade, o interesse pelo problema foi causado por notícias recentes de que o trem no addon para Fallout 3 não é um trem, mas um objeto na mão de um NPC que é usado em algum lugar nos trilhos. Aprendemos sobre isso por acidente, observando as propriedades do objeto no editor. Usando esse truque, a Bethesda economizou muito tempo ao introduzir trens reais no jogo (não há meios de transporte pelo menos nele), sem tirar do jogador a sensação de imersão no mundo virtual do deserto pós-apocalíptico ... Mas vamos começar do começo.


O vagão azul está balançando ....

Os primeiros computadores pessoais que apareceram na segunda metade dos anos 70, por um lado, ofereceram muitas oportunidades para aqueles que não tinham acesso aos mainframes, por outro lado, já eram muito limitados na época. Naquela época, Richard Garriott, conquistador do espaço e outrora senhor da Grã-Bretanha, já havia conseguido sua mão na criação de jogos de computador. Não é de admirar que o seu Akalabeth, um dos primeiros RPGs para um computador pessoal, tenha se tornado o número 28 no histórico. E a última proposta de Steve Jobs não satisfez totalmente suas ambições de brincar. Limitações do compilador interno Apple Basic e 64 kilobytes de RAM resultaram no fato de o programa não caber inteiramente na memória. Ele teve que escrever um subprograma que descarregaria dados desnecessários (imagens de monstros ou algo mais) e colocaria no lugar deles o que é necessário no momento,deixando apenas o cabeçalho do arquivo, ou seja, ele executou o algoritmo de troca. Para que o programa não percebesse uma captura, tudo era sincronizado manualmente e, quando tentei passar por depuração, simplesmente deu vários erros.


A partir daqui tudo foi.

Não se surpreenda - os jogos modernos também usam técnicas semelhantes para otimizar o trabalho com recursos. A bem conhecida série Grand Theft Auto, além de uma coleção de músicas crescente ano após ano e um extenso automóvel e não apenas uma frota, nunca permitirá que você aprecie isso em toda a sua diversidade. O fato é que, na maioria das cenas na estrada, na quarta parte (no início, isso também ocorre), os épicos podem estar presentes apenas em cerca de 20 modelos diferentes de carros, embora muitas vezes sejam realmente menos. Além disso, se um personagem naquele momento também alugou algum tipo de carro, é muito provável que os mesmos carros deslizem ao longo da estrada com ele. Isso é feito para economizar recursos. Obviamente, existem maneiras de desativar esse algoritmo, mas ao mesmo tempo obtendo um êxito na área de quadro a quadro.


Comício em massa? Não - memória insuficiente.

Outro clássico que explora hacks incomuns é o Elite, lançado pela primeira vez em 1984 e estendido à maioria dos sistemas disponíveis. O jogo ambicioso, combinando um simulador de ação espacial em primeira pessoa e uma parte comercial, pareceu aos editores ainda visarem competir com o mercado de máquinas de fliperama, e os desenvolvedores Ian Bell e David Braben passaram algum tempo pesquisando. Mas Elite acabou por ser um sucesso definitivo e deu à luz todo um gênero. Mas, curiosamente, ele foi projetado para os mesmos computadores de oito bits, onde os personagens de plataformas primitivas rastejavam pela tela. Espaço sem fim, do tamanho de oito galáxias e 256 planetas, cativou a imaginação dos jogadores, cabendo apenas 25 kilobytes.


Um espaço enorme estava escondido atrás dessa tela.

Para tornar isso possível, os criadores usaram uma linguagem de programação de assembler de baixo nível, bem como seu próprio algoritmo, onde os dados eram retirados aleatoriamente de tabelas, gerando assim o mundo novamente ao criar um novo jogo. Assim, foram selecionadas taxas de troca de recursos, tipos de planeta e outras informações. Em portas futuras e versões aprimoradas, muitas restrições foram removidas, mas o algoritmo para criar uma galáxia permanece.

Além disso, Space Invaders é um jogo que todo mundo já ouviu falar, se não todos, então tudo está certo. A idéia era bastante simples - os intervencionistas da estrela afundaram lentamente na parte inferior da tela, que o jogador defendeu em uma torre em movimento. E quanto menos eles apareciam na tela, mais rápido voavam e desciam. Ideia do autor? Claro. Mas como foi implementado! A máquina de jogos foi o Intel 8080 - o primeiro microprocessador generalizado com capacidade de 300.000 operações por segundo. E a diferença de velocidade surgiu devido ao fato de que ele não podia lidar com as tarefas atribuídas a ele - o jogo desacelerou banalmente quando a tela estava cheia. Mas o criador do Space Invaders, Tomohiro Nishikado, decidiu deixar isso como uma dificuldade adicional e, portanto, gastou muito tempo desenvolvendo o hardware.Escusado será dizer que, animação suave do voo ou gráficos coloridos - eles tiveram que ser adiados para versões posteriores. A propósito, nas seguintes portas para computadores e decodificadores, essa mecânica permaneceu, mas foi implementada sem o uso de um processador "de frenagem".


, .

E depois de mais de 30 anos, o problema do bom desempenho nos jogos é mais relevante do que nunca. Para manter uma velocidade constante do jogo, várias tecnologias são usadas, uma delas é o buffer de quadros dinâmico, visto em vários jogos de console e em novos consoles. A essência da abordagem é que, dependendo da carga, o tamanho da imagem muda para manter os prometidos 30 ou 60 quadros por segundo. E muda quadro a quadro, em tempo real e ampliado pelo redimensionador de hardware do console. Mas, ao mesmo tempo, apenas a resolução horizontal é ajustada, enquanto a vertical permanece a mesma - 720 ou 1080 pixels. E, a julgar pelos exemplos disponíveis, na primeira versão pode passar de 1280 pontos para 640 (!) Pontos, na segunda - pode cair para 1200 pontos. Além disso, em jogos que são executados em diferentes consoles, a tecnologia produz diferentes resoluções.



Um e o mesmo quadro, um tamanho de tela, mas com resolução horizontal completamente diferente.

Isso foi visto pela primeira vez no Wipeout HD, mas mais tarde foi usado no shooter Rage da id Software, no jogo de luta Tekken Tag Tournament 2 e outros.

Às vezes, decisões interessantes aparecem como resultado de estudos de longo prazo sobre as capacidades de um sistema específico. O Commodore 64 é, além de ser o modelo de computador pessoal mais bem-sucedido, um dos mais duradouros, estendendo-se na mesma configuração do 82º ao 94º ano. Um dos jogos lançados sob o pôr do sol da plataforma é o pouco conhecido jogo de plataformas Mayhem, em Monsterland. No entanto, em comparação com jogos feitos exatamente no mesmo hardware nos anos 80, parece simplesmente incrível: rolagem rápida e suave da tela, muitos sprites, cores brilhantes. Os desenvolvedores da Apex Software usaram todos os hacks em seu arsenal.


É difícil imaginar que se trata de uma captura de tela de um jogo de uma plataforma que apareceu três anos antes da NES.

Para conseguir uma rolagem tão rápida, afinal, o jogo é uma mistura de Mario e Sonic, e este último dificilmente se limitaria à rolagem de 7 pixels por vez, o que C64 oferece, um bug não documentado no chip gráfico foi usado, o que permitiu rolagem para 320 pixels, ou seja, largura de uma tela. Mas isso não é tudo. Apesar do nome do computador implicar a presença de apenas 64 kilobytes de espaço de endereço, o arquivo executável ocupa 68. A RAM extra é retirada da ROM, onde, por algum motivo, havia espaço livre, o modo gráfico também é uma mistura de dois - HIRES (alto pelos padrões da 82ª) e MULTICOLOR, e para superar o limite no número de sprites no quadro (foi estabelecido no nível do hardware), é usada uma imagem composta, em que a imagem consiste em várias partes do quadro,enganar o ferro.

Obviamente, a história do uso de hacks não termina aí, mas para aqueles que querem ver os jogos apresentados e ouvir esses e outros exemplos divertidos, somos bem-vindos: nosso vídeo.



// Virgil & Dimouse

Source: https://habr.com/ru/post/pt382877/


All Articles