Crie um jogo infantil com o Vibe Code e publique com o Firebase.

1. Introdução

Em 25 de março de 2025, o Google lançou o Gemini 2.5. Um dos aspectos mais memoráveis desse lançamento foi que ele permitiu que todos testassem o recurso "Programação avançada" [ vídeo]:

a3d1de17f9fbf428.png

Gemini 2.5: crie seu próprio jogo de dinossauros com um comando de uma linha

Neste codelab, você vai aprender sobre a "programação de vibe", um app simples para crianças, começando com um comando comum e personalizando de acordo com suas preferências. Vamos testar o app em p5.js. Por fim, vamos enviar essas mudanças para o Firebase Hosting.O mais espetacular disso é que toda a pilha está sem custo financeiro!

O que você vai aprender

  • Use o Gemini 2.5 para criar um app de jogo com vibe-code.
  • Teste o código em p5js.org.
  • Como iterar e refinar seu comando / app.
  • Como hospedar um aplicativo estático no Firebase

af537073e37f086a.png

Observação: este codelab usa código gerado por IA. Como ele não é determinista, este codelab contém diretrizes porque a saída é desconhecida para o autor. Além disso, NÃO use esse código em produção.

2. Pré-requisitos

Este codelab tem duas fases:

  1. Desenvolvimento somente para a Web. É aqui que você vai se divertir mais, e não é preciso ter habilidades de programação. Para isso, vamos usar nossa interface do Gemini ( gemini.google.com) e o p5.js.
  2. Ambiente de programação local. É aqui que é necessário um pouco de habilidade de programação / scripting, além da instalação e uso de npm / npx e um editor local, como vscode, IntelliJ ou qualquer outro. Essa segunda parte é opcional e só é necessária se você quiser manter o aplicativo para que seus amigos e familiares possam jogar com ele em dispositivos móveis ou computadores.

O único pré-requisito para a fase 1 é um navegador e um computador (uma tela grande ajuda). Para a fase 2, continue lendo.

Interface do Gemini

gemini.google.com é uma ótima plataforma para testar todos os modelos mais recentes do Gemini, além de criar suas próprias imagens e vídeos. Ele vem com integrações do Google, como o Google Maps e hotéis/voos/avaliações, o que o torna o companheiro ideal para planejar suas próximas férias.

8d174c7e462cfd11.png

Dica:se você gosta de programação, também pode usar o AI Studio, uma interface semelhante em que é possível criar um protótipo de interação com um LLM (por exemplo, criar uma imagem) e receber o código Python diretamente na página.

p5.js

p5.js é uma biblioteca JavaScript sem custo financeiro e de código aberto que torna a programação criativa acessível e inclusiva para artistas, designers, educadores e qualquer pessoa. Ele é baseado na linguagem Processing e simplifica o processo de criação de conteúdo visual e interativo usando código no navegador da Web.

ca1f12cbbedc76b9.png

Codificação local [opcional]

Se quiser manter o aplicativo, será necessário fazer mais configurações:

  • Um editor de código local ( Visual Studio Code, IntelliJ etc.)
  • Uma conta do Git ( github / gitlab / bitbucket) para manter seu código.
  • Um npm instalado localmente, de preferência no espaço do usuário (via npx ou tecnologia equivalente).

Além disso, vamos configurar uma conta do Firebase mais tarde.

Também exigimos algumas habilidades de programação, como:

  • Capacidade de instalar um pacote npm
  • Capacidade de interagir com o sistema de arquivos (criar pastas e arquivos)
  • Capacidade de interagir com git (git add, git commit, git push).

Se algo aqui for assustador, lembre-se: os LLMs são ótimos para ajudar você. Você pode usar o modelo "Gemini 2.0 flash" ou equivalente, por exemplo, para receber sugestões. Se ainda for muito difícil, pule a fase 2 inteira. A Fase 1 precisa ser recompensadora o suficiente.

3. Vamos criar nosso primeiro jogo!

Abra gemini.google.com e escolha um modelo com capacidade de programação, como o 2.5. Essa escolha pode variar de acordo com a disponibilidade, o custo e a data. No momento da redação, a melhor opção seria:

  • Gemini 2.5 Flash (iteração mais rápida)
  • Gemini 2.5 Pro (melhor saída).

Saiba mais sobre nossos modelos do Gemini neste link.

8d174c7e462cfd11.png

Nosso primeiro comando de jogo

Como você pode observar neste vídeo, um comando inicial pode ser tão simples quanto este:

Make me a captivating endless runner game. Key instructions on the screen.
p5js scene, no HTML. I like pixelated dinosaurs and interesting backgrounds.

Personalize um pouco:

  • Cenários medievais / futuristas / cyberpunk
  • Cheio de emojis ou um emoji específico?
  • Você gosta da cor amarela ou de vários tons de roxo.
  • Talvez a criança goste de unicórnios, dinossauros ou Pokémon.

Depois de colar o comando no navegador, você vai observar o Gemini pensando. Isso mesmo, o Gemini 2.5 é um modelo de pensamento. Por isso, ele vai iniciar várias tarefas que você pode observar mudar com o tempo. Clique no menu suspenso em mudança para ver o que está acontecendo ou aguarde o resultado:

1379f641db7b829d.png

No final, você terá um JavaScript funcionando.

Agora você pode clicar no botão de cópia na parte de cima:

5b3750c38378acb8.png

Testar o jogo em p5.js

Agora é hora de testar o jogo.

Sua página vai ficar assim:

bcbd2cf1ea825ae6.png

Por fim, clique no botão TOCAR.

Agora duas coisas podem acontecer: seu código funciona ou falha. Siga as instruções de acordo com cada caso:

  1. Seu código falha
  2. Seu código funciona na primeira tentativa!

Nos próximos dois parágrafos, vamos ver como gerenciar as duas condições.

(caso 1) Meu código falha!

Se você receber um erro como este, basta copiar e colar no Gemini. Deixe que ele corrija o código para você!

366759a4baacccc7.png

(caso 2) Meu código funciona!

Se o código funcionar, um jogo visual vai aparecer na extremidade direita da página.

👏 Parabéns, você está jogando seu primeiro jogo de IA!

da962547fd6dc5f9.png

Observação:enquanto você tiver o código, o app vai funcionar apenas no seu navegador. Se quiser mostrar o app para sua família e amigos, você precisa de uma solução de hospedagem. Felizmente, temos uma ótima opção para você. Continue lendo.

Agora você está pronto para a próxima etapa.

Outras iterações

Agora é hora de salvar seu código em algum lugar, caso ele seja corrompido. Se quiser, você pode iterar uma vez. Por exemplo, o autor gosta muito do pulo duplo do Super Mario. Então, você pode adicionar algo assim:

The game is great, thanks! Please allow for my character to double jump.

Você pode ajustar o que quiser. O céu é o limite! Talvez você queira salvar o nome do personagem para pontuações mais altas ou aumentar a velocidade com o tempo para dificultar o jogo, entre outras opções. O inglês é o limite do seu comando!

Dica:o Gemini costuma dar apenas a mudança que você precisa aplicar (por exemplo, esta é a mudança para a função XYZ). Você pode definir o comando para que ele forneça o código atualizado inteiro, com algo como

"Please give me the entire updated code, not just the changed function"

. Isso vai facilitar a experiência de cortar e colar.

Advertências

Talvez você queira adicionar sua conversa no Gemini aos favoritos. Talvez você queira renomear para "p5js meu primeiro jogo" ou anotar o link permanente do Gemini, como " https://gemini.google.com/app/abcdef123456789" para mais tarde.

4. Vamos executar esse código localmente

Neste momento, você precisa ter:

  • Uma janela do navegador Gemini aberta com algum código funcional.
  • Uma janela do navegador p5.js aberta com um jogo funcionando
  • Um ambiente de programação local com o npm instalado.

Esta é a parte mais difícil do codelab. É necessário ter alguma experiência básica em programação.

Instalar dependências

Se você não tiver npm e node, a melhor opção é instalar npm usando um gerenciador de versões, como o nvm . Siga as instruções de instalação para seu sistema operacional.

Também presumimos que você está usando um IDE de programação. Vamos usar o código do Visual Studio nas nossas capturas de tela e exemplos, mas qualquer coisa funciona.

Configure o ambiente local

Este é o momento de criar sua própria estrutura de arquivos.

Um script de configuração é fornecido para fins ilustrativos. Você pode fazer isso manualmente criando pastas e arquivos:

# This works for Mac and Linux. For Windows, please use other tools.
mkdir my-first-vibecoding-project/
cd my-first-vibecoding-project/
git init 
touch README.md PROMPT.md 
mkdir public/
cd public/ 
touch index.html sketch.js style.css
git add .
# Skipping quotes which can be tricky
git commit -a -m committing_empty_skeleton

A estrutura final da pasta vai ficar assim:

my-first-vibecoding-project/
├── PROMPT.md
├── README.md
└── public
    ├── index.html
    ├── sketch.js
    └── style.css

Você também pode encontrar essa opção aqui.

Agora abra seu editor de código favorito (por exemplo, code my-first-vibecoding-project/) e comece a colar o conteúdo de editor.p5js.org nos três arquivos em public/:

  • README.md Aqui você pode colocar o link permanente da conversa no Gemini e aqui você vai colocar a página de destino do app quando ele for lançado.
  • PROMPT.md Aqui, você pode adicionar todos os comandos, separados por um parágrafo H2. Se quiser explicar por que você deu um determinado comando, coloque-o entre três crases ( exemplo).
  • **public/index.html** copie seu código HTML aqui
  • **public/sketch.js** copie seu código JS aqui
  • **public/style.css** copie seu código CSS aqui

A pasta pública pode hospedar outros recursos, como um PNG personalizado.

5. Configurar e implantar no Firebase

Configurar o Firebase (somente na primeira vez)

Verifique se o npm está instalado na sua máquina.

Em um terminal, digite um dos seguintes comandos (qualquer um funciona):

# to install on the machine (requires privilege)
npm install -g firebase-tools
# to install locally (low privilege needed but might need to repeat a few times)
npm install firebase-tools

Agora você pode chamar o comando firebase. Se tiver problemas, siga a documentação pública.

Inicialização do Firebase

Nesta seção, vamos configurar o Firebase Hosting. Esse é um fluxo muito simples, mas pode levar um tempo para se familiarizar com ele na primeira vez.

Verifique se você está no diretório diretamente acima do public/, que contém seus arquivos. A listagem (ls -al ou dir) vai mostrar algo assim:

$ ls 
PROMPT.md
README.md
public/
  • [Etapa 1] No console, digite: firebase init

dc4baa436d63efac.png

  • Navegue com os cursores para baixo até "Hospedagem: .." e digite ESPAÇO e ENTER. Por quê? Como é uma múltipla escolha, você precisa selecionar e ir para a próxima página.
  • [Etapa 2] Agora você pode escolher um projeto atual (opção 1) ou criar um novo (opção 2):

955ab96f94b97b28.png

  • Observação: se você já tiver um projeto do Cloud, ele pode não ser um projeto do Firebase. Os projetos do Firebase são um subconjunto dos projetos do GCP. Você precisa de mais trabalho para transformá-los em projetos do Firebase, que é para isso que serve a opção 3.
  • Se não tiver certeza, use "Criar um novo projeto" e adicione um nome como "p5js-SEUNOME-SEUAPP" (por exemplo, "p5js-riccardo-tetris").

9fb1e7c9f7d68f25.png

  • [step 3] What would you like to call your project? (defaults to your project ID) (p5js-riccardo-tetris)
  • Pressione ENTER.

30d2cda68c45befc.png

  • [step 4] ? What do you want to use as your public directory? (public)
  • Pressione ENTER. Configuramos public/ de propósito.

54bcc6fe2dd0e14e.png

  • [step 5] ? Configure as a single-page app (rewrite all urls to /index.html)? No
  • pressione ENTER (não)

af930401d3775c.png

  • [step 6] ? Set up automatic builds and deploys with GitHub? No
  • Pressione ENTER - NÃO

81e017d4e3a5f7e6.png

  • [step 7] ? File public/index.html already exists. Overwrite? (y/N)
  • Pressione ENTER (não).
  • AVISO: isso pode causar erros. Se você substituir o arquivo, o novo index.html será incompatível com p5js.

Se tudo funcionar, você vai ver isto:

98ff444361607aae.png

Essas ações criaram alguns arquivos:

.firebaserc
.gitignore
firebase.json
public/404.html

Em particular, .firebaserc precisa ter o ID do seu projeto, que pode ser extraído programaticamente com este comando: cat .firebaserc | jq .projects.default -r

Aviso:verifique o index.html. Se ele tiver mais de 16 linhas e/ou a palavra "firebase", você substituiu os arquivos p5js por engano. Sem problemas, basta recuperar o index.html antigo do git ou do editor p5js.

Teste local

Para reduzir a latência do ciclo de feedback, tente fazer as coisas localmente primeiro.

Para isso, tente o poderoso pacote de CLI da equipe do Firebase. Exemplo:

$ firebase emulators:start

inicia um servidor da Web na porta 5000 ( http://127.0.0.1:5000/ ) para que você possa testar localmente antes de enviar.

Implantar no Firebase

Agora, é hora do comando final:

$ firebase deploy

be5c455df84ac20.png

Isso vai acionar várias ações. As últimas linhas devem ser parecidas com esta:

$ firebase deploy
[...]
✔  hosting[YOUR_PROJECT]: release complete 
✔  Deploy complete! 

Project Console: https://console.firebase.google.com/project/YOUR_PROJECT/overview
Hosting URL: https://YOUR_PROJECT.web.app

Isso vai fornecer o URL de hospedagem. Faça um teste

Se a implantação for bem-sucedida, mas você observar uma página em branco ou uma implantação corrompida, faça o seguinte:

  • Abra as "Ferramentas para desenvolvedores" do navegador, encontre o erro e peça ao Gemini para ajudar a corrigi-lo com um comando como este:
I've deployed the script correctly with Firebase, but I now see a blank page with this error:

[ paste detailed JS console error ]

♾️ Itere!

Você pode repetir essas etapas quantas vezes quiser. Você pode continuar pedindo até ficar satisfeito com os resultados.

99420f90bf14d04d.png

É importante observar algumas coisas:

  1. O loop de iteração é muito mais rápido em Gemini > p5.js > loop do Gemini do que em Gemini > host local > implantação no Cloud Run > teste do app no navegador (atualize).
  2. Use o git para controle de versões de comandos e códigos. Talvez você queira voltar ao comando N e ao código N. Em especial, faça um git commit de cada sketch.js que você enviar, já que pode haver bugs ocultos.

Alguns jogos funcionam bem com um teclado, mas não com um mouse ou toque no smartphone. Este é um ótimo momento para melhorar o código.

6. Dicas de comandos

Algumas dicas de quem já criou vários jogos.

Controlar a versão do comando

Você provavelmente vai encontrar erros no comando original. Ter uma versão git. Há alguns caminhos de código aqui:

  1. Se você gostar do que vê e quiser iterar com o Gemini usando outros subcomandos, pode ser interessante rastrear todos eles em algum lugar (comando 1, 2, 3: exemplo de 3 disparos 1, example2).
  2. Se você não se importar com o app criado pelo comando 1, talvez queira aperfeiçoar o comando, descartar o código e reiniciar com o código modificado (comando 1 v1, comando 1 v2, comando 1 v3 etc.).

É claro que você pode misturar as duas abordagens.

Funcionalidade móvel

Dependendo do jogo que você criar, talvez seja necessário ter alguma interação com o usuário. Essa interação precisa de um teclado? Ou é possível usar apenas tocando na tela (por exemplo, com um dispositivo móvel)? Deixe isso claro no comando. Talvez seja necessário criar alguns botões no teclado (confira meu exemplo de Tetris 3D). Consulte também o problema de compatibilidade com dispositivos móveis do dungemoji.

Enviar feedback sobre erros de JavaScript / capturas de tela diretamente para o Gemini

Como o Gemini não consegue ver sua interação com o p5js, cole no Gemini todos os erros de JavaScript. O Gemini é multimodal. Portanto, se você tiver mudanças na interface (como diminuir o título ou reduzir a pontuação), também poderá anexar capturas de tela do jogo. Nunca foi tão divertido receber feedback sobre programação!

b0bacf73c058c4e5.png

7. Parabéns!

🎉 Parabéns por concluir o codelab.

Vimos como é fácil criar um jogo com o Gemini e como o Firebase oferece uma solução de hospedagem simples para manter e compartilhar seu jogo com outras pessoas.

b730ed7192ac3d1c.png

O que vimos

  • Crie um jogo com o Gemini 2.5.
  • Implantar no Firebase

Agora é hora de 👥 se gabar! Que tal compartilhar seu jogo mais recente (your-project.web.app) no LinkedIn ou no Twitter com a hashtag #VibeCodeAGameWithGemini (e talvez marcar o autor no LinkedIn)? Assim, vamos saber se este codelab é interessante e talvez escrever mais conteúdo desse tipo!

Quero mais!

Se você quiser mais recursos, confira estes jogos e comandos:

Alguns exemplos de jogos que você pode criar:

O jogo final pode ficar assim:

  • Um Tetris em 3D.
  • Um jogo de linguagem
  • Um clone desonesto
  • Um clone do Pacman.

Mais uma vez, o inglês é o limite!

🎉 Até a próxima!