Consoles de fantasia: CHIP-8, TIC-80 e WASM-4
A maioria das plataformas da FredyGames foram máquinas de verdade: consoles e computadores que ficavam embaixo da TV ou em cima da mesa. Algumas nunca existiram como hardware. CHIP-8, TIC-80 e WASM-4 são máquinas virtuais, pensadas desde o início para rodar em software, com telas, chips de som e quantidades de memória que os criadores simplesmente decidiram. Elas são chamadas de consoles de fantasia e abrigam alguns dos joguinhos mais criativos que existem. Este guia explica o que são, como cada uma surgiu e quais dos seus jogos vale jogar primeiro.
O que é um console de fantasia?
Um console de fantasia é um computador imaginário. Ele tem uma especificação fixa, como um console real: uma tela de certo tamanho, uma paleta com certo número de cores, um conjunto de botões, um limite para o tamanho do jogo. Só que, em vez de chips numa placa, ele existe como programa, um emulador de uma máquina que nunca foi fabricada.
Os limites são de propósito. Um computador moderno faz quase tudo, e isso pode travar quem só quer fazer um jogo pequeno. O console de fantasia estreita as escolhas: você tem dezesseis cores, ou quatro, uma tela pequena e um espaço fixo, e todo mundo que faz jogos para ele segue as mesmas regras. Muitos também já trazem tudo o que é preciso para criar um jogo, como editor de código, editor de sprites e ferramenta de música, e não há mais nada para instalar.
O termo ficou popular em meados dos anos 2010, em grande parte graças ao PICO-8, um console de fantasia comercial com tela de 128×128 e dezesseis cores. O sucesso dele inspirou uma leva de outros, entre eles o TIC-80, livre e de código aberto. Mas a ideia é bem mais antiga: de certo modo, o CHIP-8 foi o primeiro console de fantasia, quase quatro décadas antes.
CHIP-8: uma máquina virtual de 1977
O CHIP-8 foi criado por Joseph Weisbecker na RCA e usado pela primeira vez no COSMAC VIP, um kit de computador para entusiastas, em 1977. Programar essas máquinas direto em código de máquina era cansativo, então o CHIP-8 oferecia um conjunto de instruções mais simples, executado por um pequeno interpretador. Em termos atuais, era uma máquina virtual.
A especificação é minúscula:
- Uma tela de 64×32 pixels, em duas cores: cada pixel está aceso ou apagado.
- 4 KB de memória, sendo que os primeiros 512 bytes eram ocupados, na origem, pelo próprio interpretador.
- Dezesseis registradores de 8 bits, um registrador de endereço, uma pequena pilha e dois temporizadores que descontam sessenta vezes por segundo, um para esperas e outro para um bipe.
- Um teclado hexadecimal de 16 teclas, em grade de quatro por quatro.
- Cerca de 35 instruções, cada uma com dois bytes.
O desenho funciona invertendo pixels: o sprite é combinado com o que já está na tela, e a máquina avisa quando um pixel aceso é apagado. Isso serve de detecção de colisão, mas também significa que objetos em movimento são apagados e redesenhados, o que dá a muitos jogos de CHIP-8 aquele piscar característico.
O CHIP-8 ganhou uma segunda vida por volta de 1990 nas calculadoras gráficas, onde uma versão estendida chamada SUPER-CHIP acrescentou um modo de alta resolução de 128×64 e outras melhorias. Como interpretadores diferentes tratavam algumas instruções de jeitos ligeiramente diferentes, um jogo feito para um pode se comportar mal em outro. Essas diferenças são chamadas de quirks, e um bom emulador deixa cada jogo escolher o comportamento para o qual foi escrito. O nosso player as ajusta jogo a jogo, com as configurações registradas pelo arquivo comunitário de onde os jogos vêm.
XO-CHIP e Octojam
Em 2014, John Earnest lançou o Octo, um assembler de alto nível e ambiente online amigável para o CHIP-8, junto com o XO-CHIP, mais uma extensão. O XO-CHIP acrescenta um segundo plano de desenho, o que permite quatro cores, aumenta a memória para 64 KB e oferece um canal de som mais flexível, sem trair o espírito do original.
O Octo também deu à cena um evento anual: a Octojam, uma game jam realizada todo mês de outubro. A maioria dos jogos de CHIP-8 da FredyGames foi feita para ela, e os autores os colocaram em domínio público ou sob termos igualmente abertos.
Jogos de CHIP-8 para começar
Todos estão na página da plataforma CHIP-8.
- An Evening to Die For é um mistério de assassinato numa mansão, com vítima, arma e culpado sorteados a cada partida. Uma história de detetive inteira numa máquina XO-CHIP.
- Into the GarlicScape é um roguelike em miniatura escrito por John Earnest como exemplo para a Octojam, e um jogo completo por mérito próprio.
- Black Rainbow leva você por um submundo aleatório de 25 salas, contra o relógio.
- Super NeatBoy é um plataforma curto feito para speedrun, e Skyward é uma escalada vertical por áreas montadas ao acaso.
- Civiliz8n comprime um construtor de cidades em poucos minutos de colocar peças, e Rockto é um quebra-cabeça de cavar, por turnos, em que as pedras caem quando você tira a terra de baixo delas.
TIC-80: um estúdio inteiro num computador minúsculo
O TIC-80, lançado em 2017, imagina um computador ao estilo dos anos 1980, com tela de 240×136 e paleta de dezesseis cores, que cada jogo pode redefinir. O som sai de quatro canais movidos por um sintetizador embutido. Ele aceita até quatro gamepads de oito botões, além de mouse e teclado.
O que torna o TIC-80 especial é que todo o ambiente de desenvolvimento faz parte do console. Aperte Esc e você encontra:
- um editor de código, com Lua como linguagem padrão e outras disponíveis, como Fennel e JavaScript;
- um editor de sprites para desenhar os tiles e personagens;
- um editor de mapas para montar as fases num mundo grande;
- um editor de efeitos sonoros e um tracker de música.
O jogo pronto é um único arquivo de cartucho com código, gráficos, mapa e música. O próprio TIC-80 é software de código aberto sob a licença MIT, com uma versão "Pro" opcional e paga que traz recursos extras para quem desenvolve. Essa abertura importa para nós: em muitos sites de compartilhamento de consoles de fantasia, os cartuchos são publicados sem licença ou com termos não comerciais, que um site com anúncios não pode usar. Os jogos de TIC-80 daqui são aqueles cujos autores escolheram, eles mesmos, uma licença livre.
Jogos de TIC-80 para começar
Todos estão na página da plataforma TIC-80.
- 8 Bit Panda é um plataforma clássico de rolagem lateral por seis ilhas, escrito em Lua, e o "jogo de console" mais tradicional do grupo.
- this is my mech é uma aventura cômica curta sobre uma equipe de robô gigante que não se entende sobre quem vai formar a cabeça, escrita em Fennel para uma game jam de Lisp.
- GORGOION coloca num só cartucho um pequeno metroidvania, com habilidades que abrem novas áreas e uma fada como companheira.
- Amethyst Waters é um shoot 'em up submarino com cavernas geradas proceduralmente, e Cauliflower Power é uma variação furtiva dos quebra-cabeças de empurrar caixas.
- Urbanity é um construtor de cidades por turnos, e DOT DASH PIT deixa você destruir inimigos digitando letras em código Morse.
WASM-4: um portátil de fantasia feito de WebAssembly
O WASM-4, lançado em 2021, leva a ideia para outro lado. A especificação é ainda mais apertada que a do TIC-80:
- uma tela de 160×160 com só quatro cores, escolhidas por cada jogo;
- um direcional e dois botões por jogador, com até quatro jogadores, além de mouse;
- 64 KB de memória, e cartuchos de no máximo 64 KB;
- 1 KB de armazenamento para dados salvos;
- quatro canais de som: duas ondas de pulso, uma triangular e ruído.
A outra ideia central está no nome. Os jogos de WASM-4 são módulos WebAssembly, e WebAssembly pode ser gerado por compiladores de muitas linguagens. Em vez de uma linguagem embutida, o WASM-4 deixa cada desenvolvedor trazer a sua: C, Rust, Zig, Go, Odin, Nim, Nelua, AssemblyScript e outras. Ele não traz editores; você usa as ferramentas de sempre, e o console oferece um alvo pequeno e fixo.
As game jams foram centrais aqui também. Vários dos nossos jogos de WASM-4 foram escritos para as jams oficiais do WASM-4 em 2022, em uma semana ou menos.
Jogos de WASM-4 para começar
Todos estão na página da plataforma WASM-4.
- Tau Flight Simulator é um simulador de voo de verdade, com modelo físico das asas e das superfícies de controle e visão da cabine, escrito em Zig. Impressiona numa tela de 160 pixels e quatro cores.
- ZxZ é um quebra-cabeça de ficção científica numa grande estação interligada, em que andar contra as coisas as empurra, aciona e redireciona. Escrito em C em quatro dias para a primeira jam do WASM-4.
- One Slime Army é um jogo de sobrevivência em arena em que um toque mata e o escudo rebate os tiros inimigos, e Micro Quest! é uma subida compacta de sete salas por uma torre, escrita em Nelua.
- Explore the Grotto é uma aventura curta vista de cima em que a sua decisão sobre os morcegos da caverna define o final, e Glowfish é xadrez completo, com adversário controlado pelo computador, escrito em Rust.
Por que os limites ajudam
É tentador ver essas especificações como deficiências, mas quem faz jogos para consoles de fantasia costuma descrevê-las ao contrário. Paleta fixa significa nunca sofrer com a escolha de cores. Tela pequena significa que cada pixel tem uma função. Limite de tamanho obriga o jogo a girar em torno de uma ideia, bem explorada. E, como todos dividem as mesmas restrições, os jogos são fáceis de comparar, de estudar e de remixar.
Os limites também tornam esses jogos rápidos de entender para quem joga. A maioria se aprende em um minuto e se termina numa tarde, mas os melhores continuam revelando camadas. Jogar alguns títulos de CHIP-8, TIC-80 e WASM-4 lado a lado é um bom jeito de ver quanto design cabe em pouquíssimo espaço.
Como jogar aqui
Os jogos de CHIP-8 rodam no emulador do Octo, os de TIC-80 no player web oficial do TIC-80 e os de WASM-4 no runtime oficial do WASM-4. Cada página de jogo lista os controles, e os saves ficam no seu navegador. Para dicas práticas sobre teclado e gamepad, veja jogando jogos retrô no navegador. Para saber como confirmamos que cada jogo pode ser compartilhado, leia como verificamos as licenças, e, se você gosta de hardware pequeno com ideias grandes, siga para consoles abertos em miniatura: Arduboy e Uzebox.