Integrando com 11 jogos Pokémon sem bibliotecas externas:^Levando a Pokédex para o próximo nível
Esse é um crosspost do meu post original no LinkedIn, se estiverem afim de fazer um networking, vamos adicionar! Also, ainda não é Open Source :c
Eu perdi o evento canônico da Pokédex
Recentemente eu percebi que, apesar de jogar Pokémon religiosamente a praticamente mais de dez anos, eu nunca passei pelo evento canônico do desenvolvedor iniciante que é fazer o projeto da Pokédex com JavaScript. Particularmente, eu não tenho uma razão para fazer isso hoje em dia porque o consumo de APIs, que costuma ser o objetivo de estudo do projeto da Pokédex, acabou se tornando algo bastante intuitivo depois de alguns anos de desenvolvimento.
Então eu me propus a fazer uma Pokédex que se conectasse com os jogos originais, para que ele marcasse todos os Pokémon que eu já capturei no site e que essa informação tivesse persistência, adicionando uma forma de eu conseguir alcançar o tão desejado Shiny Charm ✨.
Acima, uma demonstração do fluxo de sincronização com os jogos
O meu objetivo era apenas fazer que os primeiros jogos, Red, Blue e Yellow (lançados em 1996) fossem compatíveis, mas por hype e gosto pela coisa, fui até a 3a geração de jogos (Fire Red, Leaf Green, Ruby, Sapphire, Emerald), totalizando 11 jogos compatíveis.
Acima, o Modal listando os savefiles e as suas respectivas gerações detectadas.
Lista de jogos compatíveis
- Pokémon Red (1996)
- Pokémon Blue (1996)
- Pokémon Yellow (1998)
- Pokémon Gold (1999)
- Pokémon Silver (1999)
- Pokémon Crystal (2000)
- Pokémon Ruby (2002)
- Pokémon Sapphire (2002)
- Pokémon Fire Red (2004)
- Pokémon Leaf Green (2004)
- Pokémon Emerald (2004)
Eu usei Vite, Svelte, Tailwind para fazer o Frontend e NENHUMA biblioteca funcional, usando apenas um polyfill da #PI de Buffers do Node.js para os Browsers.
O projeto foi feito em apenas um dia, por isso a falta de detalhes ou interações mais trabalhadas.
Eu juro que em breve eu vou liberar o código fonte e fazer um deploy para que todos possam usar, mas enquanto isso, você pode checar meus outros projetos no meu GitHub: guilherssousa
Ainda preciso melhorar o projeto em algumas coisas, mas pretendo produzir um post mais elaborado sobre o processo!