Explorando o PS Vita através do Javascript: como ficou o VitaJS dois anos depois?
Não sou muito de postar artigos aqui, porém tenho algo legal para contar sobre meu projeto. Se quiser ver o artigo de quando surgiu a ideia: https://www.tabnews.com.br/faelpinho/pitch-criando-uma-poc-para-rodar-jogos-em-javascript-no-ps-vita
Em 2024, estava eu dedicando parte do meu tempo livre estudando C mais a fundo, até que tive uma ideia um pouco diferente: que tal se eu fizer algum app ou jogo pro meu PS Vita? Eu quase não jogo nele, está parado pegando poeira, e assim posso unir o útil ao agradável.
Então comecei a fazer um hello world, mostrando um ícone quadrado na tela que podia ser movido. \o/ Mas... toda vez que havia um erro ao executar, por mais simples que fosse, tinha que voltar, analisar, modificar e compilar novamente. Me perguntei se poderia ser tão simples como testar a mão um script no console do navegador.
Foi aí que cheguei no VitaJS: um projeto que busca aproximar o desenvolvimento de homebrews e jogos com Javascript.
Comecei usando o motor Duktape para interpretar o JS, mas depois de alguns testes optei pelo QuickJS por ter cobertura maior de APIs, por achar mais fácil de trabalhar e ser mais performático. Não é um v8 - motor usado no Chromium - mas já é uma boa base (então nada de usar APIs do NodeJS por enquanto 😁)
Mas então, com a adoção cada vez maior da IA no trabalho, acabei desanimando um pouco da área e dos meus side projects... A cobrança na época era por usar mais IA apenas para mais velocidade de entrega, não pela qualidade ou praticidade. Estudei bastante, integrei APIs com IAs, participei da criação de RAGs, mas meu projeto pessoal ficou parado no tempo.
Até que tive uma mão amiga do AlphaSystemsPL, que é um ou mais devs, que me deu ainda mais ânimo para voltar a tocar o projeto. E ainda aprendi como usar a IA de uma melhor forma para avançar alguns tópicos mais complicados quando possível - as vezes é necessário muita pesquisa e testar hipóteses, ainda mais se tratando de um hardware e sem a documentação oficial.
Ainda tem bastante coisa a ser implementada, mas resolvemos diversos problemas que haviam antes que impediam de usar alguns sprites e fontes (por exemplo, usando o método JS_ToFloat64 no lugar de JS_ToFloat32, e float* invés de double*). Confesso que por uso 'desenfreado' da IA para "ganhar tempo" - e na época, sem uso da recém lançada Skills.md kkkk.
Parte do meu trabalho tem sido pesquisar como construir essa ponte entre os dois mundos:
- JS moderno e abstrações de alto nível
- APIs nativas do VitaSDK
- gerenciamento de memória e limitações de hardware
- compatibilidade e desempenho em sistema embarcado (meu hobby favorito)
As vezes, construir algo só porque você quer entender alguma coisa é uma das melhores formas de aprender e evoluir. Então, não desanime por causa da IA. Use ela apenas quando necessário, e deixe seu cérebro trabalhar. É o que tem funcionado muito bem pra mim, tanto no trabalho quanto em meus side projects.
O objetivo do VItaJS era basicamente "rodar javascript no Vita e valeu", mas já estou planejando em criar um fork e expandir o projeto para um interpretador web, como um "navegador", até onde o hardware permitir - olha onde fui me meter! kkkkk
Quer ajudar também? Cola aí \o\ \o/ /o/