Consoles abertos em miniatura: Arduboy e Uzebox

Nem todo console da FredyGames saiu de uma grande empresa. O Arduboy e o Uzebox foram projetados por pessoas, para entusiastas, em torno da mesma família de microcontroladores de 8 bits usada em inúmeros projetos de eletrônica. Os projetos e o software são abertos, os jogos são feitos pelas comunidades, e muitos deles são software livre. Este guia apresenta as duas máquinas, explica por que essa abertura importa e escolhe os jogos que vale experimentar primeiro. No fim, uma seção curta olha para um console bem mais antigo que hoje vive um espírito parecido de "faça você mesmo": o Atari 2600.

O que eles têm em comum

Os dois consoles são construídos em torno de microcontroladores AVR, uma família de chips de 8 bits que muita gente conhece pelas placas Arduino. Um microcontrolador reúne processador, memória de programa e um pouco de RAM num só chip. Ele foi feito para controlar aparelhos e engenhocas, não para rodar jogos, e é exatamente isso que torna esses consoles interessantes: tudo o que você vê e ouve é arrancado de uma peça com poucos kilobytes de memória.

O outro ponto em comum é a abertura. As bibliotecas de software são publicadas sob licenças livres, o hardware é documentado, e as pessoas montam seus próprios aparelhos compatíveis. Para os jogos deste site, isso tem uma consequência prática: como as ferramentas são abertas, podemos compilar os jogos nós mesmos a partir do código-fonte dos autores quando necessário, e hospedar esse fonte ao lado do jogo.

Arduboy: um videogame do tamanho de um cartão de crédito

O Arduboy foi criado por Kevin Bates. Começou como um protótipo com o tamanho e a espessura de um cartão de crédito e, depois de uma campanha bem-sucedida no Kickstarter em 2015, a versão comercial chegou em 2016, um pouco mais grossa, mas ainda pequena o bastante para caber na carteira. Modelos posteriores, a partir do Arduboy FX, acrescentaram um chip de memória flash que guarda centenas de jogos no próprio aparelho.

As especificações são minúsculas até para padrões retrô:

Peça Arduboy
Processador ATmega32U4, 8 bits, 16 MHz
Memória de programa 32 KB de flash (parte usada pelo bootloader)
RAM 2,5 KB
Memória para saves 1 KB de EEPROM
Tela OLED de 1,3 polegada, 128×64 pixels, monocromática
Controles direcional e dois botões (A e B)
Som alto-falante piezoelétrico

O chip é o mesmo de algumas placas Arduino, e essa é a chave da comunidade do Arduboy. Os jogos são escritos em C++ com as ferramentas do Arduino e uma biblioteca livre, a Arduboy2, que cuida da tela, dos botões e do som. Quem já fez um LED piscar com um Arduino consegue começar um jogo na mesma tarde, e o fórum da comunidade organiza game jams que rendem títulos novos todo ano.

Uma tela de 128×64 em preto e branco parece limitante, e é. Mas ela obriga a um design gráfico forte: silhuetas claras, pontilhado bem usado e animações que se leem em meia dúzia de pixels. Alguns dos melhores jogos de Arduboy também levam o processador muito além do que se imaginaria.

Jogos de Arduboy para começar

Todos estão na página da plataforma Arduboy.

  • Mystic Balloon, do TEAM a.r.g., é um plataforma de 39 fases em forma de labirinto em que os balões são ao mesmo tempo o seu planador e a sua vida. É um dos jogos de Arduboy mais queridos e uma ótima vitrine do que a tela consegue fazer.
  • Catacombs of the Damned!, de James Howard, é uma exploração de masmorra em primeira pessoa que roda em 3D fluido naquela tela de 128×64, com dez andares gerados aleatoriamente. Surpreende de verdade num microcontrolador de 8 bits.
  • MicroCity, também de James Howard, é uma simulação completa de construção de cidades, com zonas, energia, orçamento e incêndios. Nós o compilamos a partir do fonte do autor.
  • Dark & Under é uma exploração de masmorra em primeira pessoa à moda antiga, com combates por turnos decididos nos dados e um pequeno mapa automático.
  • Evade 2 coloca você na cabine de uma nave contra inimigos em 3D aramado, onda após onda.
  • Hello, Commander é um jogo de tática por turnos bem-humorado, e Cribbage é o clássico jogo de cartas com um adversário que explica a contagem dos pontos.
  • Para algo rápido, experimente os muitos joguinhos arcade de OBONO, como Chri-Bocchi Cat, um malabarismo de dois minutos, ou o quebra-cabeça de blocos na vertical Stairs Sweep.

Uzebox: um console que desenha a imagem em software

O Uzebox, criado por Alec Bourque e publicado pela primeira vez em 2008, segue um caminho bem diferente. A maioria dos consoles tem chips dedicados para vídeo e som. O Uzebox não tem nenhum: um único microcontrolador faz tudo, inclusive gerar o sinal de TV linha por linha, em software.

Segundo as especificações do próprio projeto:

Peça Uzebox
Processador ATmega644, 8 bits, com overclock para 28,6 MHz
Memória de programa 64 KB de flash
RAM 4 KB
Cores 256 na tela, com 3 bits de vermelho, 3 de verde e 2 de azul
Som 5 canais, mixados em software
Saída de vídeo composto e S-Video
Controles duas entradas para controles compatíveis com NES/SNES
Armazenamento entrada para cartão SD

Gerar vídeo em software significa que o processador passa boa parte do tempo entregando pixels à tela no instante exato, e a lógica do jogo roda no tempo que sobra. Esse trabalho fica com o kernel do Uzebox, uma biblioteca compilada dentro de cada jogo que cuida de vídeo, som e controles. Ele oferece vários modos de vídeo, de layouts com tiles a bitmaps, e cada jogo escolhe o equilíbrio entre resolução, cor e tempo livre de processador que lhe convém.

O projeto é aberto no sentido estrito: os esquemas elétricos e o kernel são publicados sob a GNU GPL versão 3. Entusiastas montam suas próprias placas a partir do projeto publicado, e versões montadas já foram vendidas por pequenos fabricantes. Como o kernel é GPL e vai compilado em cada jogo, os jogos em geral também são GPL, e por isso hospedamos o fonte completo, kernel incluído, ao lado de cada um.

Jogos de Uzebox para começar

Os dois estão na página da plataforma Uzebox.

  • Bugz é um plataforma de tela única na velha tradição dos fliperamas: pegue todos os biscoitos, pise nos insetos por cima e corra contra o relógio de bônus ao longo de 21 fases. Também tem modos para dois jogadores.
  • UzeSnakes é o conhecido jogo da cobrinha feito com carinho, com itens que aceleram, invertem os controles ou trocam a cabeça pelo rabo, e um modo para dois.

Os dois rodam no CUzeBox, um emulador fiel do Uzebox que compilamos para WebAssembly.

Por que hardware aberto importa

É fácil tratar a abertura como detalhe técnico, mas, para plataformas pequenas, ela faz uma diferença real.

  • A plataforma sobrevive a quem a criou. Quando o projeto e o software são públicos, a comunidade continua montando aparelhos, consertando ferramentas e escrevendo jogos mesmo que o vendedor original pare.
  • A emulação é fiel. Hardware documentado é muito mais fácil de emular com precisão do que uma máquina cujo comportamento teve de ser descoberto por engenharia reversa.
  • O aprendizado vem junto. Muitos jogos publicam o código-fonte, e o próximo desenvolvedor pode ver exatamente como um motor 3D cabe em 32 KB ou como um kernel pinta a tela sem chip de vídeo.
  • Compartilhar é legal. São as licenças livres que permitem a um site como a FredyGames hospedar esses jogos. O guia sobre como verificamos as licenças explica o que procuramos, e os textos completos estão na página de licenças.

Quadro à parte: a cena homebrew do Atari 2600

O Atari 2600 não é hardware aberto e é bem mais velho que os dois consoles acima: foi lançado em 1977. Mas a cena homebrew dele compartilha o mesmo espírito de fazer muito com quase nada. O console tem só 128 bytes de RAM e nenhum frame buffer. O programa precisa atualizar o chip gráfico enquanto o feixe da TV desenha cada linha, um estilo de programação muitas vezes chamado de "correr atrás do feixe" (racing the beam). Os desenvolvedores de hoje usam assemblers livres e ferramentas como o batari Basic, e a comunidade ainda lança cartuchos novos todo ano.

Os nossos jogos de Atari 2600 são todos homebrews novos e de licença livre. 2048 2600 cabe, com o quebra-cabeça de deslizar números e um modo para dois, num cartucho de 2 KB. Dungeon Deck transforma a exploração de masmorra num jogo de cartas no estilo paciência, e Legendary Spear é uma justa arcade rápida no espírito dos primeiros clássicos do console.

Por onde começar

Se você quer se impressionar, jogue Catacombs of the Damned! lembrando que ele roda num chip com 2,5 KB de RAM. Se quer algo para passar horas, experimente Mystic Balloon ou MicroCity. No Uzebox, Bugz é a melhor porta de entrada. Depois compare com as máquinas imaginárias de consoles de fantasia: CHIP-8, TIC-80 e WASM-4, ou leia o que é homebrew? para ter o quadro geral. Dicas práticas de controles e saves estão em jogando jogos retrô no navegador.

Jogos deste guia

Mais guias

Todos os guias →