As limitações gráficas do Gameboy
O que você precisa saber pra fazer um jogo na estética do gameboy.
Gameboy tem uma estética linda. Particularmente, acho os gráficos desse portátil tão glamurosos, que são melhor porta de entrada pra quem está aprendendo pixel art.
A resolução da tela não é pequena como o PICO-8 e nem muito grande como o Snes/Megadrive. Sprites de 8×8 ou 8×16 exigem uma boa capacidade de síntese, mas ainda deixa uma boa margem pra liberdade. A limitação de 4 cores acrescenta ao desafio do contraste personagens/background, deixando aceitável fundos mais vazios e menos detalhados, o que novamente soma na facilidade pra ser a porta de entrada para o pixel art.
- Resolução 160×144
- 4 Cores em tons de cinza (ou verde)
- Personagens tamanhos próximos à 8×8, 16×16, 32×32, por aí.
É isso? Só isso? Já posso meter a mão na massa?
Depende do quão fiel ao gameboy você quer ser.
Vou listar aqui algumas informações sobre a parte visual do Gameboy. Se você estiver indo participar de uma jam ou aprendendo pixel art, fique livre pra adotar ou ignorar qualquer limitação que quiser. Se estiver planejando em fazer um jogo para o console REAL Gameboy, é legal conhecer e pensar nessas limitações sempre que for planejar a etapa inicial do seu jogo. É possível driblar algumas limitações com a nossa boa e velha gambiarra. Então, vamos lá:
Resolução
A resolução da tela do Gameboy é de 160 x 144 pixels, rodando a gloriosos 60 fps.
Diferente do NES ou outros consoles pensados na TV de tubo, a tela do Gameboy não corta nenhum desses pixels, então é possível aproveitar a tela por completo.
Cores
Você está limitado à usar apenas 4 cores em todo o jogo.
Mas e o Gameboy color?
Em resumo, o Gameboy Color pode trocar esses 4 tons de cor à cada tile (bloquinho de 8×8 pixels). Parece pouca coisa, mas isso faz o GB Color fazer artes gloriosas. Não vou abordar esse console nesse artigo, então vamos focar no GB Clássico.
A paleta de cores que você vai usar pode variar bastante, porque a própria tela do Gameboy clássico tinha essas variações. A primeira versão eram 4 estranhos tons de verde. Com atualizações como o Gameboy Pocket, esses tons foram se aproximando mais do cinza.
Vou deixar aqui algumas recomendações, em hexadecimal:
Paleta do Aseprite (Credo)
Mais próxima do Gameboy Clássico
- #9bbc0f ■
- #8bac0f ■
- #306230 ■
- #0f380f ■
Particularmente, acho esse verdão meio feio. Além do baixíssimo contraste entre as duas cores mais claras.
Paleta do GB Studio (Minha Recomendação)
GB Studio é um software para fazer jogos reais de gameboy. Ele tem várias paletas bem legais, essa é a padrão para tons de verde:
- #dfe2b7 ■
- #7ea456 ■
- #4d6c2f ■
- #091204 ■
Acho bem mais agradável que a anterior.
Paleta cinza
Essa presa pelo alto constrate, mas pode perder aquele feeling de gameboy. Pode ser útil se você quiser trocar esse tom de cinza no futuro, jogando algum filtro por cima ou coisa parecida.
- #fafafa ■
- #a9a9a9 ■
- #545454 ■
- #111111 ■
Paleta própria
Eu já fiz um jogo de gameboy pra um jam e usei uma paleta própria, gosto bastante dela porque não deixa o esverdeado original de lado, mas tem tons mais suaves:
- #c4cfa1 ■
- #8b956e ■
- #4e543d ■
- #1f1f1f ■
Fugindo do tom verde
Se você quiser fugir do verdão gameboy, use algumas paletas em tons de azul ou vermelho. Alguns jogos rodam dessa forma, ao serem jogados no Super Nintendo, usando um periférico chamado “Super Gameboy”, que é basicamente uma fita de Snes que você encaixa sua fitinha.
Paletas retiradas do GB Studio:
Tons pasteis
- #f4e8cc ■
- #9ac8bd ■
- #4f6c6d ■
- #0f2a37 ■
Vermelho
- #f3e0d5 ■
- #c67e6c ■
- #8f263a ■
- #2f2643■
Crie a sua paleta
Veja os exemplos acima e escolha a que mais funcionar pra você. Mexa nas cores, deixe mais claro ou escuro, divirta-se.
Só mantenha a ideia que são 4 tons, indo do mais claro para o mais escuro.
Colocar um tom muito diferente do outro, pra contornar a limitação do gameboy (por exemplo, um branco, um preto, um azul e um vermelho) pode parar uma boa ideia, mas na prática não funciona bem. A ideia é que o jogador pode ver esses tons de forma diferente do planejado, dependendo da versão de Gameboy que ele estiver jogando ou do emulador que ele esteja usando. Então mantenha a ideia que são 4 tons, do mais claro para o mais escuro.
Diferença entre Sprites e Background
Essa é uma parte muito técnica, que vou tentar resumir da forma mais simples possível.
Sprites são personagens, inimigos, projéteis ou objetos que se movem. Sprites podem receber animações e se moverem com fluidez pela tela.
- Sprites podem ter uma cor transparente.
- Por conta dessa transparência, o sprite pode ter apenas 3 cores, diferente do background, que pode ter as 4. Normalmente a terceira cor da paleta que é escolhida pra ser a transparente, mantendo os dois tons mais claros pra cor/sombreamento do sprite e o tom mais escuro para os contornos.
- Sprites podem se mover pixel-a-pixel
Background é o fundo estático. Você pode fazer artes grandes e cheias de detalhes com eles, com poucas limitações. Porém, esse background não se move ou tem animações complexas.
- Backgrounds não tem transparencia.
- Podem ter as 4 cores da paleta.
- Backgrounds não se movem.
Agora que você já sabe a diferença básica, vamos pros detalhes:
Sprites
Em resumo, são os personagens. Oficialmente, os sprites podem ter 8 x 8 pixels ou 8 x 16 pixels. Porém, você não está 100% limitado à esses tamanhos. Um personagem no jogo pode ser composto de mais de um sprite. Por exemplo:
Vamos observar nosso camaradinha Red, do jogo Pokemon. O seu sprite principal tem as seguintes caracteristicas:
- 3 tons de cor + transparência
- É composto por 2 sprites, 8 x 16
É um ótimo exemplo que o personagem pode ser composto de vários sprites. Olhando a imagem com atenção, dá pra perceber que a largura do personagem não ocupa todo o bloco de 16×16, deixando algumas áreas livres para fazer a animação de caminhada.
Então, porque não faço sprites gigantescos? Ou um jogo hyper animado feito só de sprites?
Limitações técnicas de processamento e armazenamento do Gameboy.
Os cartuchos originais tinham um limite muito claro de espaço gráfico. A memória gráfica do gameboy é de assombros 8K. Não é 8mega, é 8 Kbytes!!!!!!! O gif animado acima, após uma série de compressões, tem 856Kbytes.
Por menor que pareça, é um limite até generoso, desde que não tenham abusos na parte gráfica.
Já reparou que as batalhas pokemon simplesmente não tem fundo?
A memória gráfica do Gameboy já estava chorando pra carregar todo o HUD, texto e animações de batalha. Se tivesse um fundo ali o Gameboy explodiria, coitado.
Outra limitação relacionada aos sprites, é a quantidade de sprites na tela:
- 40 sprites simultaneamente.
- Apenas 10 sprites ocupando a mesma linha.
Só lembrando, muitas vezes personagens dos jogos usam 2 ou mais sprites. Normalmente o HUD, barras de vida, moedas e animações em geral, são todos sprites. Por isso temos tanta horizontalidade no Gameboy. Repare que os dialogos dos jogos normalmente ocupam aproximadamente um terço da tela, sem nenhuma interferência nas laterais. Isso é pra garantir que não haverão sprites competindo nesse número de 10 sprites por linha.
Background
Aqui a gente pode abusar um pouco da arte.
Sem a transparência, podemos usar os 4 tons ao mesmo tempo. Também podemos fazer desenhos bem grandes. Saca só essa animação absolutamente maravilhosa do jogo The Legend of Zelda: Oracle of Seasons:
Falando especificamente da intro animada, ali temos o hardware do gameboy aproveitado ao máximo.
Essa intro é um mix de várias técnicas aplicadas, muitas delas exclusivas do Gameboy color.
- Background com cores sólidas
- Transparência e animação fluída nos sprites
- Troca de tons da paleta (exclusivo do Color)
- Cores da paleta aplicada em tiles 8×8 (exclusivo do Color)
O jogo Link’s Awekening (melhor jogo do gameboy, diga-se de passagem) também tem uma intro belíssima, mas claramente mais limitada por conta da paleta imutável do Gameboy Clássico.
É possível notar técnicas parecidas com a intro do Oracle of Seassons, porém, visualmente é muito mais limitada pelos tons fixos da paleta.
Pode ser tentador usar a explosão de cores do Gameboy Color, MAS, se fixe nas limitações. Estamos falando aqui do Gameboy clássico, não do Color. O GB Clássico não consegue fazer essa maluquice com as paletas, além dos jogos que usam esses recursos, não rodarem na versão anterior do console.
Mas e aí, qual a grande limitação do background?
Além da falta de transparência e o processador do GB deixando as animações rápidas apenas para os sprites, não temos um movimento fluído no background. Os Sprites podem se movimentar pixel-a-pixel, porém, o melhor que conseguimos fazer com o background é trocar o tile de 8×8. Não vou entrar em grandes tecnicalidades pra isso aqui não virar um livro, mas de forma resumida, Backgrounds não se movem. Quando se movem, é pulando de 8 em 8 pixels, em vez de ser fluído como um sprite.
Felizmente o Gameboy suporta que o background seja maior que o tamanho da tela, conseguindo fazer uma rolagem fluída, extremamente necessária pra jogos de plataforma.
Conclusão
Esse artigo é apenas um vislumbre de limitações do GB. Não entrei em alguns detalhes importantes, como o processamento ou a quantidade de tiles que podem ser armazenados na memória. Os artistas da época tinham que fazer um verdadeiro milagre pra não ocupar toda a memória do GB em um único background. Mas esse é um detalhe de otimização tão hardcore, que não vou abordar aqui nesse artigo.
Qualquer dúvida mais específica, só deixar nos comentários.
E agora? O que eu faço com essas limitações?
Simplesmente dá um chute bem forte nela e faz o que jogo que você quiser.
Parece irônico, mas é a mais pura verdade. Os jogos que emulam a estética do gameboy, usam a sua estética como uma base e não como um livro de regras. Um ótimo exemplo disso é o indie recentemente lançado Castaway.
Ele faz uma alusão clara aos Zeldas do Gameboy Color, porém, só absorve o que é divertido.
Agora que você já sabe das limitações, dá uma olhada em um screenshot desse jogo. Apesar de ser uma referência clara aos Zeldas de Gameboy Color, ele segue essas limitações apenas como uma ideia. Você nota as referências claras, mas ele ignora ABSOLUTAMENTE TUDO das limitações originais. E o jogo ficou belíssimo, ainda mantendo o feeling de GB Color.
Participando de uma Jam de Gameboy
Se estiver participando da Gameboy Jam, se foque apenas nas limitações de resolução e paleta de cores. Se precisar fugir do escopo original pra contar a história que você quer contar, não tenha medo de quebrar essas pequenas regras.
Voltando ao começo desse artigo:
- Resolução 160×144
- 4 Cores em tons de cinza (ou verde)
- Personagens tamanhos próximos à 8×8, 16×16, 32×32, por aí.
Foque só nesses três pontos listados acima.
É legal ter em mente que o GB era limitado em quantidade de itens na tela, e claro, era uma telinha sem iluminação traseira, logo precisava de muito contraste, fundos simples e pouca maluquice na tela.
Se quiser extrapolar algum limite, vai fundo. Se algum dia o seu jogo virar literalmente um jogo de Gameboy, aí você pensa no que é possível ou não. E não se esqueça de tentar se divertir no processo.