Fantasy Consoles: Como seria o console retrô dos seus sonhos?
Tags: pico8, tic80, fantasyconsole, gamedev
Published: 2021-11-29 13:08:35

Em meados da década de 90 tive meu primeiro contato com um computador: um [Gradiente Expert](https://en.wikipedia.org/wiki/Gradiente_Expert) (MSX 1) dos meus irmãos mais velhos. Na época já era um computador antigo mas eu me divertia bastante jogando. E foi nele que escrevi minhas primeiras linhas de código, na linguagem BASIC.

![Animação mostrando a inicialização do MSX e criação de um programa bem simples](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/891n93ixks0j2idfxtlt.gif)
 
![Foto de um computador Gradiente Expert, lançado em 1985](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/51n2rmk3o40c8qyeqqvq.png) 
 
Alguns anos depois tive acesso a um 486DX2-66Mhz rodando o sistema operacional Microsoft DOS e Windows 3.11. Mas nunca mais tive aquela mesma sensação gostosa do MSX. Apertar o botão de ligar e em poucos segundos estar em um terminal e poder sair digitando linhas de código se tornou algo nostálgico. Depois disso, em todos os computadores tinha que esperar vários minutos, usar o mouse, clicar em ícones, esperar mais vários minutos...

Com a evolução da tecnologia era natural esperar que a experiência fosse melhorar, mas não era o que eu **sentia**. Claro que a experiência de certa forma melhorou: mais memória, melhores gráficos, espaço em disco, processadores dezenas de vezes mais rápidos... mas a **sensação** era de que tudo piorava, de que antes tudo era mais divertido. Digitar _Run_ e apertar _Enter_ era muito mais gostoso do que clicar em um ícone na tela. Mas não dá para frear o progresso. Em algum momento me rendi ao Windows e seu mouse (afinal, também queria poder jogar os últimos lançamentos).

Talvez por essa sensação nostálgica, quando abri pela primeira vez um _Fantasy Console_ fiquei muito empolgado! O terminal era parecido com aquele que eu estava acostumado quando adolescente. Os jogos também: _sprites_ simples, sem grandes efeitos visuais e sonoros. Tudo remetia à experiência de voltar a usar um computador da década de 80, mas de forma mil vezes mais organizada, mais prática e divertida. Esta foi minha primeira sensação ao usar o [PICO-8](https://www.lexaloffle.com/pico-8.php).

![Animação mostrando o carregamento e execução de um exemplo criado usando PICO-8](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xvo07e38cedusxycg4dy.gif)
 
Na imagem acima é possível ver o PICO-8 em execução, com suas telas de terminal e os editores de código, _sprites_, mapas, efeitos sonoros e também de músicas. Tudo que você precisa para criar seus jogos com estilo retrô!

## Definição

O termo _Fantasy Console_ foi cunhado por Joseph White, criador do primeiro console deste tipo, o [PICO-8](https://www.lexaloffle.com/pico-8.php). Segundo o [FAQ do PICO-8](https://www.lexaloffle.com/pico-8.php?page=faq) (em uma tradução livre):
> "Um **console fantasia** é como um console normal, mas sem o inconveniente do hardware real. O PICO-8 tem tudo que faz de um console um console: especificações da máquina e formato de exibição, ferramentas de desenvolvimento, cultura de design, plataforma de distribuição, comunidade e _playership_. É semelhante a um emulador de jogo retrô, mas para uma máquina que nunca existiu.".

## Vantagens

As principais vantagens de se programar para um console que nunca existiu é que os consoles reais como Atari 2600, NES, Master System e demais, foram criados com objetivo de serem os mais poderosos possíveis, gastando o mínimo necessário com _hardware_. Isso faz com que programar para estas plataformas não seja muito amigável para iniciantes, afinal, esta nunca foi a intenção. O foco eram grandes estúdios, com muitas pessoas desenvolvedoras de jogos profissionais. 

Já os **consoles fantasia** podem se dar ao luxo de não se preocupar tanto com isso. Não precisam ser o mais performático possível ou se preocupar com a produção do _hardware_. Tudo gira em torno dos _softwares_. Isso faz com que a experiência de uso seja muito mais agradável e uma ótima forma de iniciantes entrarem no mundo do desenvolvimento de jogos.

## Limitações

Todo **console fantasia** impõe algumas limitações técnicas artificiais. Você terá que trabalhar com uma resolução de vídeo menor, sistema de efeitos sonoros e criação de músicas mais limitados, paleta de cores reduzida, etc. 

A princípio isso pode soar como algo muito ruim e parecer que será mais difícil programar assim, mas na prática essas restrições acabam sendo muito libertadoras e tornam-se um dos principais atrativos.

O foco é desenvolvimento de jogos retrô e a imposição destas limitações ajuda a manter o nosso foco. Além disso, nos forçam a usar mais a imaginação. O resultado final costuma ser jogos divertidos e simples de jogar.

Cada **console fantasia** irá impor suas próprias restrições. Jogos criados com o console fantasia PICO-8, por exemplo, terão como restrições:
- Tela de 128x128 pixels;
- Paleta de 16 cores;
- Tamanho máximo para o "cartucho" de 32Kb;
- Quatro faixas de som;
- Linguagem de programação Lua;
- 256 _Sprites_ com tamanho 8x8;
- Mapa com 182x32 _tiles_. 

Existem outros consoles que são ainda mais limitados, mas também alguns muito mais poderosos e permissivos e consequentemente mais complexos.

## Exemplos de jogos

### Celeste Classic

Talvez você já tenha ouvido falar em um jogo chamado [Celeste](http://www.celestegame.com), disponível para o Nintendo Switch, PlayStation 4 e Xbox One. O que talvez você não saiba é que ele foi baseado em um jogo homônimo (hoje conhecido como Celeste Classic) desenvolvido pelo mesmo time. Esta versão original foi desenvolvida em 4 dias em uma _game jam_, usando o **console fantasia** [PICO-8](https://www.lexaloffle.com/pico-8.php). 

![Animação mostrando o jogo Celeste Classic](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8rt95drefvb84v4dnt9k.gif)

Você pode jogar o Celeste Classic direto em seu navegador acessando [esta página](https://www.lexaloffle.com/bbs/?tid=2145).

### Celeste Classic 2

![Animação mostrando o jogo Celeste Classic 2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yhf8267cy1y1vssgdmwq.gif)
 
O Celeste do Switch, PlayStation 4 e Xbox One não teve uma continuação e os autores já disseram que provavelmente nunca terá. Mas, para nossa alegria, o Celeste Classic tem, com nova dinâmica mas o mesmo alto grau de desafio!

Você pode jogar o Celeste Classic 2 direto em seu navegador acessando [esta página](https://mattmakesgames.itch.io/celeste-classic-2).

### PakPok

![Animação mostrando o jogo PakPok](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/36dwhepo80c5x8ik64s2.gif)

Se você gosta daqueles jogos de plataforma que misturam quebra-cabeças e precisão nos movimentos para conseguir avançar para próxima tela, provavelmente você vai gostar do [PakPok](https://www.lexaloffle.com/bbs/?pid=67558#p), outro jogo criado usando o PICO-8.

### NanoMan

![Animação mostrando o jogo NanoMan](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ijm0dhetta1sns9h534a.gif) 

Lembra do MegaMan (RockMan no Japão) do NES? Eu adorava esse jogo! E adoro essa versão do NanoMan, inspirada neste jogo. Mais um jogo muito legal feito usando o PICO-8. Você pode jogá-lo no navegador acessando [esta página](https://www.lexaloffle.com/bbs/?tid=29017).

### Fetch Quest

![Animação mostrando o jogo Fetch Quest](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ufcvyomye2fnb8zvzcju.gif)
 
[Fetch Quest](https://lumpytouch.itch.io/fetch-quest) é um outro jogo de plataforma onde também precisa resolver quebra-cabeças, mas dessa vez você está no papel de um cachorro!

Este jogo foi criado usando o **console fantasia** [TIC-80](https://tic80.com).

### Everdawn

![Animação mostrando o jogo Everdawn](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g2cnsnkx7if6ol3egko7.gif) 

Embora os console fantasia sejam ótimos para criações de plataforma 2D, existem uma infinidade de outros jogos dos mais diversos estilos! Entre eles o [Everdawn](https://lucentbeam.itch.io/everdawn). Um RPG criado usando o **console fantasia** [TIC-80](https://tic80.com).

### E muitos outros!

Você encontra mais jogos criados usando o PICO-8 [nesta página](https://www.lexaloffle.com/pico-8.php) e outros criados para o TIC-80 [nesta](https://tic80.com) e [nesta outra](https://itch.io/c/110298/games-made-with-tic-80) página.

## Linguagem de programação e ambiente de desenvolvimento

Cada **console fantasia** vai ter as suas ferramentas de desenvolvimento. Algumas vão possibilitar que você use diversas linguagens diferentes e permitir que você programe em editores externos, contendo até mesmo _plugins_ para programar utilizando o famoso _VSCode_. Outras vão exigir que você programe de forma mais tradicional e limitada, te obrigando a usar apenas as ferramentas de edição e programação embutidas no sistema.

## Por qual console fantasia começar?

Existe uma quantidade enorme de consoles (e computadores) fantasia. Uma lista com um resumo das características de cada um está disponível [aqui](https://paladin-t.github.io/fantasy).

Você tem opções que vão permitir programar em JavaScript, Lua, BASIC, Python, entre muitas outras. Alguns consoles vão te restringir bastante, outros vão te deixar bastante livre.

Por ter tantas opções, algumas parecidas e outras bem diferentes, é muito difícil escolher por qual começar. Então vou deixar aqui duas sugestões para você: uma que precisa de uma licença de uso e uma gratuita.

### PICO-8

Meu **console fantasia** favorito ainda é o [PICO-8](https://www.lexaloffle.com/pico-8.php). Este foi o primeiro projeto deste gênero e o autor conseguiu manter toda filosofia inicial. Não é o mais poderoso mas esta é justamente a beleza deste projeto!

Para desenvolver seus jogos você usará a famosa [linguagem de programação Lua](https://www.lua.org) e terá a sua disposição um editor bastante simples de usar. Nele você irá criar seus códigos, seus _sprites_, mapas, efeitos sonoros e músicas: tudo já incluso, muito intuitivo e fácil de usar.

Mas trata-se de um software proprietário. No momento em que escrevo este artigo, a licença custa 14.99 dólares. E você pode optar por pagar 5 dólares a mais e receber também uma cópia da versão _alpha_ do [Voxatron](https://www.lexaloffle.com/voxatron.php), um **console fantasia** para jogos em 3D que ainda está sendo desenvolvido pelo mesmo time do PICO-8.

Embora existam rumores de que estariam trabalhando em uma versão para dispositivos móveis, no momento o PICO-8 está disponível apenas para as principais plataforma _desktop_ (Windows, Mac e Linux).

### TIC-80

[TIC-80](https://tic80.com) é outro **console fantasia** bastante popular. Ele é mais versátil que o PIC-8 e além de suportar as principais plataformas _desktop_, possui também [uma versão para Android](https://play.google.com/store/apps/details?id=com.nesbox.tic). Isso mesmo! Você pode rodar e criar seus jogos neste **console fantasia** direto de seu celular!

Outro ponto bastante positivo do TIC-80 é ser _open-source_ (código-fonte disponível [neste repositório do github](https://github.com/nesbox/TIC-80)) e ser possível baixá-lo gratuitamente.

![Demonstração do TIC-80](https://tic80.com/img/demo.gif) A animação acima foi retirada do site [tic80.com](https://tic80.com).

Se você optar por este console, talvez se interesse pelo [curso on-line de Desenvolvimento de Jogos com Lua](https://www.alura.com.br/curso-online-desenvolvimento-de-jogos-com-lua) da Alura.

---

E você? Já desenvolveu jogos com estilo retrô? Quais suas ferramentas preferidas? Conte um pouco da sua experiência nos comentários!
 
## Referências
- [Página oficial do PICO-8](https://www.lexaloffle.com/pico-8.php)
- [Página oficial do TIC-80](https://tic80.com)
- [Página _Fantasy video game console_ na Wikipedia](https://en.wikipedia.org/wiki/Fantasy_video_game_console)
- [Twitter oficial do PICO-8](https://twitter.com/lexaloffle)
- [Página do jogo Celeste na Wikipedia](https://en.wikipedia.org/wiki/Celeste_(video_game))
- [Jogos feitos com TIC-80](https://itch.io/c/110298/games-made-with-tic-80)
- [Voxatron, um console fantasia para jogos 3D](https://www.lexaloffle.com/voxatron.php)
- [Lista contendo vários consoles e computadores fantasia](https://paladin-t.github.io/fantasy)

---

Gostou deste texto? Conheça meus outros artigos, podcasts e vídeos acessando: https://segunda.tech.