Início Tecnologia The Visible Zorker permite que você veja como os jogos funcionavam nos...

The Visible Zorker permite que você veja como os jogos funcionavam nos anos 80

40
0

As pessoas associam jogos do final dos anos 70/início dos anos 80 com Invasores do Espaço e Pac-Manmas longe dos fliperamas, você provavelmente encontraria os primeiros entusiastas de computadores domésticos debruçados e coçando a cabeça sobre um tipo de jogo muito diferente. Junto com seu antecessor espiritual Aventura na Caverna Colossal, Zork e suas sequências foram pioneiras no gênero de aventura em texto, jogos baseados em analisador sem gráficos que passaram por um renascimento sob o título mais intelectual de “ficção interativa”.

Além de ser o primeiro de uma série de sucessos do início e meados dos anos 80 para seu estúdio Infocom Zork foi uma verdadeira conquista do ponto de vista técnico. A popularidade do jogo se devia, pelo menos em parte, à sua portabilidade – ele podia rodar em um Commodore 64 tão facilmente quanto em um PC 8086 ou ZX Spectrum, o que era uma grande vantagem em uma época em que os consumidores podiam escolher entre dezenas de microcomputadores, cada um em grande parte incompatível com os outros.

A versatilidade do jogo se deveu à decisão inovadora da Infocom de basicamente rodar seus títulos no que chamou de Z-Machine – essencialmente, uma implementação muito inicial de uma máquina virtual. O jogo e seus sucessores foram escritos na linguagem de implementação Zork de alto nível proprietária da Infocom, que foi então compilada em um conjunto de instruções de nível inferior chamado Z-Code, que foi executado pelo ambiente Z-Machine. Isso significava que, em vez de ter que reescrever seus jogos do zero para cada novo sistema que desejava suportar, a Infocom precisava apenas escrever um novo interpretador Z-Code para cada sistema. (Para qualquer pessoa interessada, você pode encontrar um monte de documentação excelente sobre como o Z-Machine funcionava aqui.)

De qualquer forma, agora, quase exatamente 50 anos após o lançamento do primeiro Zork jogo, há um site que levanta a cortina do Z-Machine em tempo real. O Zorker Visível é o trabalho de um especialista em ficção interativa André Plotkine rastreia o estado de um jogo enquanto ele está em execução, permitindo ao jogador ver como o Z-Machine coloca seus comandos em ação. O efeito é como dirigir um carro com o capô aberto para que você possa ver exatamente o que pressionar o pedal do acelerador faz no motor – exceto, você sabe, mais seguro.

Zorks eu e II já estão disponíveis no site há algum tempo, mas o de 1982 Zork III só foi adicionado em 1º de maio. É amplamente considerado o mais difícil da trilogia original e, como é o único que nunca resolvi na primeira vez, fiquei fascinado ao examinar seu funcionamento interno.

Então, o que há para ver? Bem, uma coisa interessante a fazer é observar o funcionamento interno do analisador. Zorka análise das entradas certamente não é perfeita, e muitos de nós passamos horas tentando fazer com que o jogo entendesse algo que queríamos tentar fazer. (A fala era um problema específico para os primeiros analisadores: comandos como “diga ao ladrão para devolver o ouro” ou “Ladrão, devolva meu ouro” geralmente eram recebidos com perplexidade: “Não entendo ‘ouro’ nesse contexto.”)

No entanto, o analisador Infocom é simples e elegante, especialmente dada a idade do jogo. Baseia-se em duas listas simples: uma de verbos e outra de substantivos. A maioria dessas palavras tem sinônimos e abreviações – “lâmpada” funcionará para “lanterna”, “n” para “norte”, etc. – e também há tolerâncias para erros ortográficos. Cada verbo tem uma função associada, algumas das quais requerem substantivos como argumentos e outras que podem funcionar nos dois sentidos. “Look” retornará a descrição da sala atual, enquanto “look [at] [noun]” irá verificar se o substantivo está presente; em caso afirmativo, a função retornará a descrição do objeto em questão, e se não, você será informado “Você não pode ver nenhum [noun] aqui!”

Também há suporte para mais complexidade, como vemos aqui:

© O Zorker Visível

Este código trata da pulverização de uma lata de repelente Frobozz Magic Grue. (Grues, como qualquer fã sabe, são monstros que se escondem no escuro e comem os tolos que se aventuram em áreas sem luz sem tocha ou lanterna.) Veja como funciona:

Detalhe Zorker Visível
© O Zorker Visível

O jogo primeiro verifica se a lata está vazia. Caso contrário, ele verifica se você disse “Burn can”; nesse caso, você se explode e o jogo termina. Caso contrário, é para ver onde você está pulverizando a lata. Se você não especificar um local, o jogo assumirá que você está apenas espalhando-o no ar e, nesse caso, será basicamente desperdiçado. (Observe também que o jogo ajuda você um pouco aqui – se você digitar “Lata de spray”, ele perguntará em que você deseja pulverizar a lata.)

De qualquer forma, você borrifa a lata em si mesmo e fica protegido da tristeza por cinco turnos. O jogo inicia um cronômetro (“I-SPRAY”, que monitora quantas voltas se passaram desde que você se pulverizou) e define alguns sinalizadores: “SPRAYED?”, que monitora se você se pulverizou e “SPRAY-USED?”, que monitora se a lata foi esvaziada. Também vemos aqui como é fácil deixar o jogo em um estado invencível: se você borrifar o repelente em algo que não é você, então você estará sem sorte.

Se há algo em particular pelo qual Zork III é lembrado é o notório Royal Puzzle, uma versão em tamanho real de um daqueles quebra-cabeças onde você tem que deslizar as peças em torno de uma grade. Resolver um quebra-cabeça como esse já seria bastante difícil em um jogo com uma representação gráfica do ambiente; resolvê-lo em um jogo de texto baseado em analisador, mesmo com a ajuda rudimentar que o jogo oferece, requer a consciência espacial de algum tipo de sábio arquitetônico e/ou a paciência de um santo.

Não ter nenhuma dessas coisas significava que Zork III era o único jogo de Zork que eu não resolvi quando criança, e fiquei interessado em ver como o jogo acompanhava os vários componentes do quebra-cabeça e suas respectivas localizações. Acontece que uma grande parte do código do jogo é dedicada ao quebra-cabeça, conhecido internamente como “quebra-cabeça chinês”. Cada posição na grade 6×6 é armazenada como um único número em uma matriz de 36 elementos, com a posição de várias paredes sendo atualizada à medida que o jogador as move.

Você pode pensar que haveria 36 salas no quebra-cabeça, mas não – há apenas uma, provavelmente porque adicionar 36 salas praticamente idênticas ao jogo seria um desperdício de memória. (Para referência, existem cerca de 60 salas em todo o resto do jogo.) A sala de quebra-cabeça única é sempre a sala que abriga o jogador, o que exige que o jogo monitore coisas como itens e troque-os dentro e fora da sala conforme necessário: digamos que você deixe cair sua espada na sala com coordenadas x: 3 y: 4, depois mova-se para o leste. Na verdade, você não se move – o jogo apenas atualiza sua posição para x:4 y:4 e remove a espada. Se você se mover para oeste novamente, o jogo lembrará que esta é a sala onde você deixou cair a espada, então atualiza sua posição novamente e devolve a espada para a sala.

Otimizações como essa são importantes quando você trabalha com o tipo de restrições de espaço impostas no início da década de 1980 — e essas restrições eram bastante severas. A totalidade de Zork III’O código-fonte do jogo – que inclui as listas de verbos/substantivos, as descrições de salas e objetos, o analisador, o interpretador ZIL e o código real do jogo – pesa 92 KB. No total. Não é bem Deserto Carmesim.

Ainda assim, também é interessante observar as muitas semelhanças entre como Zork III e os jogos modernos funcionam. Em última análise, um jogo é apenas uma coleção de variáveis ​​de estado: algum jogador já esteve nesta sala? Eles mataram esse monstro? Eles conversaram com esse NPC e receberam essa missão? A que distância eles estão da missão? O que eles estão carregando agora? Em que nível está a saúde deles? Como o mundo do jogo mudou desde o início do jogo?

A maneira como um jogo moderno lida com essas coisas pode certamente ser muito mais sutil do que em 1982.Zork não tem nada como missões de vários estágios, por exemplo – mas os princípios são essencialmente os mesmos. Definir bandeira [x] se evento importante [y] aconteceu. Acompanhe o que está no inventário do jogador. Acompanhe os cronômetros. O jogador acabou de ser atingido por um monstro? Subtrair [x] da sua saúde. A saúde deles está abaixo de 0? Sim? Oh céus. É hora de executar a função JIGS-UP e então restaurar seu último savegame.

Nesse aspecto, há muito pouca diferença entre Zork e Anel Elden. Claro, as implementações desses conceitos são mundos separados, mas os conceitos em si permanecem os mesmos.

Ah, e finalmente: como qualquer Zork fã sabe, uma coisa que você deve tentar em cada jogo é digitar, “Olá marinheiro”– é como o equivalente Zork do código de trapaça da Konami, na medida em que é algo que você tenta inserir na expectativa de que algo possa acontecer como resultado. A questão é que, em todo Zork (onde a frase é encontrada pela primeira vez) e Zork II, a única resposta que você recebe é “Nada acontece aqui”. A implicação é que algo acontecerá em outro lugar, mas nunca acontece. No entanto! Em Zork III, há um local onde a mensagem se torna “Nada acontece ainda”. E se você esperar o suficiente, então vejam só: chega a hora, vem o velho marinheiro!

Zork III Olá marinheiro
© O Zorker Visível

fonte

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui