Criar um jogo com o ChatGPT: um RPG ao estilo de EarthBound numa noite

O Codex e o GPT-6 Astra tiraram de um prompt de 147 palavras um RPG ao estilo de EarthBound, cujo mapa inteiro é gerado de uma só vez e depois recortado em camadas e colisões. Em seis horas e meia, o Clairbois ganhou 15 mapas, 12 divisões, 12 músicas e seis missões.

Criar um jogo com o ChatGPT: um RPG ao estilo de EarthBound numa noite
Resposta rápida

O Codex, o agente de código da OpenAI usado com uma subscrição do ChatGPT, produziu com o GPT-6 Astra um RPG jogável com rato e comando, em que cenários, sprites, retratos, sons e doze músicas foram gerados. O projeto exigiu dez turnos, 3 h 05 min de trabalho do agente e o equivalente a 65 $ à tarifa da API. Quatro das minhas dez mensagens assinalavam um defeito, da lógica das casas às colisões.

O Codex, o agente de código da OpenAI que uso com a minha subscrição do ChatGPT, escreve os ficheiros, executa os comandos e gera as imagens sem um único copiar-colar. A 13 de setembro de 2026, pedi-lhe, com o GPT-6 Astra, um RPG ao estilo de EarthBound, o jogo da Ape e da HAL Laboratory lançado na Super Nintendo em 1994, num único prompt de 147 palavras.

No clone de Dune 2000, tinha avançado por pequenos pedidos durante três dias. Desta vez, o prompt impunha logo à partida um método para os cenários, e o protótipo ficou pronto numa noite.

O Clairbois joga-se abaixo, com o rato, o teclado ou o comando. O jogo espera pelo teu clique para carregar os seus 56,7 MB.

Clairbois : le RPG façon EarthBound de Codex et GPT-6 Astra

La version 04.3 de Clairbois, telle que Codex l'a laissée le 13 septembre 2026. Souris, clavier ou manette, le premier geste active le son. Dans cette version intégrée, la sauvegarde ne dure que le temps de la page.

Protocolo

Construit avec l'application Codex et le modèle gpt-6-astra en effort xhigh, le 13 septembre 2026 : 10 tours, 3 h 05 min de travail de l'agent. Fichiers du prototype servis tels quels, sans les pages d'audit ni les sources des images.

ACodex · GPT-6 Astragpt-6-astra (xhigh)

O projeto corre numa sandbox isolada (iframe sandbox e CSP): sem acesso ao site, aos cookies nem à sua sessão. Nada é carregado antes do seu clique.

Abrir à parte
Editor
OpenAI
Modelo
gpt-6-astra (xhigh)
Ferramenta
Codex, application de bureau
Data
2026-09-13
Duração
3 h 05 min de travail sur 10 tours
Tokens de entrada
35 405 000, dont 33 769 472 lus en cache
Tokens de saída
301 285, dont 114 284 de raisonnement
Custo
abonnement ChatGPT (≈ 65 $ au tarif API)
Tamanho do projeto
56,7 Mo, 85 fichiers
Notas
Clic pour marcher et parler, flèches ou ZQSD, E pour interagir, X pour le menu, J pour le journal, M pour la carte, P pour la pause. Une manette standard est reconnue après un premier appui. 1 515 contrôles géométriques au 14 septembre 2026.

Um mapa gerado de uma só vez, depois recortado

Aqui fica o prompt na íntegra, traduzido do francês e sem as gralhas.

Gera um jogo do tipo EarthBound, em HTML, CSS e JavaScript. Quero que retomes a mesma direção artística do jogo original, com as mesmas interfaces, para uma jogabilidade com rato/comando. Além disso, quero que geres as personagens, os seus sprites e movimentos, bem como os cenários e os SFX. Para os cenários e o mapa, quero que geres o mapa inteiro de uma só vez, que o analises e que geres, através de um sistema de camadas, outras imagens para sobrepor, com a ideia de que, se uma personagem passar atrás de uma árvore ou de uma vedação, fique visualmente atrás dela, mas a totalidade do mapa será gerada de uma só vez e usará esse sistema de camadas. Vais, portanto, detetar as colisões e fazer um mapeamento manual com base no resultado gerado, para que a personagem não atravesse o cenário. Faz um protótipo rápido do jogo.

Os jogos de 16 bits compõem os mapas com tiles. Aqui, o cenário é uma ilustração única, e o motor tem de saber o que passa à frente do herói e onde é que ele esbarra. O Astra escolheu o Phaser 3.90, apoiou-se no plugin Game Studio da OpenAI, no imagegen para as imagens e no sound-effects para os sons, e depois anunciou uma pequena aventura de bairro, com exploração por clique, diálogos e combate por turnos.

As personagens, os cenários e os sons foram criados para o protótipo, batizado Clairbois. O herói, Nino, cruza-se com Lila, Marcel, Iris e Rémi, e enfrenta um cogumelo chamado Myco.

Vinte e seis minutos para um primeiro protótipo

O Astra gerou o mapa do bairro, identificou as quatro árvores, as vedações, os edifícios e o lago, e depois traçou as colisões a partir das suas posições reais. As árvores bloqueiam ao nível do tronco, e a folhagem passa à frente ou atrás do herói consoante a posição dele. A camada de primeiro plano chegou com um padrão de xadrez desenhado no lugar da transparência, um defeito que o Astra detetou e corrigiu sozinho.

Para os sons, no início faltava a chave do ElevenLabs e o Astra estava a preparar efeitos por síntese. Colei-a na conversa dois minutos e meio depois, e sete efeitos do ElevenLabs substituíram a síntese. O turno terminou ao fim de 26 min 6 s, com 24 poses de personagens, um percurso completo até ao combate e 35 verificações bem-sucedidas, incluindo um comando simulado através da API Gamepad. O ficheiro comprimido entregue não contém nenhuma chave.

Casas sem lógica, depois uma planta de arquiteto

O meu segundo pedido acrescentava o interior das três casas, com várias divisões, camas onde o herói se enfia debaixo do cobertor como em Alundra ou Zelda, mais missões e novas zonas. Interrompi-o ao fim de quatro minutos e meio. A mensagem seguinte estabelecia uma regra. Cada divisão teria a sua própria imagem, e as plantas seguiriam uma lógica estrutural, com uma escada que se apanha à esquerda e chega ao andar de cima pela esquerda, e uma porta no mesmo sítio dos dois lados da parede.

O Astra começou por escrever a planta das três casas, duas divisões no rés-do-chão e duas no primeiro andar, e depois gerou as doze divisões separadamente. O gerador de imagens mudou algumas aberturas de sítio. O Astra realinhou cada imagem com as coordenadas da planta comum, uma superfície lógica de 512 × 512 por divisão, e aplicou a mesma transformação às colisões e às camadas. As 28 passagens entre divisões têm cada uma a sua ligação de regresso, testada nos dois sentidos.

A seguir, pedi uma auditoria às casas. O Astra encontrou plantas quase idênticas de uma casa para a outra, divisões demasiado vazias e escadas no andar de cima que davam a impressão de subir. Redesenhou uma casa de família, uma mercearia com armazém e habitação no primeiro andar, e a casa de uma relojoeira organizada à volta de uma oficina, com uma escada em caracol. O gerador voltou a acrescentar portas que não constavam da planta, corrigidas antes de fixar as colisões, e foram exportadas 158 camadas. A auditoria, repartida por dois turnos, custou 14,95 $ à tarifa da API.

Restava um defeito de escala visível a olho nu. O herói mantinha o tamanho do exterior diante de móveis muito maiores. Agora mede cerca de 62 píxeis de altura dentro das casas, o dobro do tamanho lá fora, tal como os habitantes.

Camadas e colisões, os dois bugs que assinalei

No turno 9, uma captura mostrava o herói com as pernas cortadas num chão livre, no bosque. O Astra reproduziu o corte ao píxel. A camada da árvore usava um contorno aproximado que englobava um triângulo de relva. Na posição assinalada, a camada antiga tapava 89 píxeis da personagem, e a nova não tapa nenhum. As oito árvores do bosque e do pomar receberam máscaras detalhadas, guardadas como faixas de píxeis em js/occlusion-data.js.

No turno 10, eu conseguia parar em cima de alguns elementos do cenário. A placa que aparecia na minha captura não tinha nenhuma colisão declarada, e o Astra encontrou outros esquecimentos entre as rochas, os arbustos, as raízes e as orlas da floresta. Também corrigiu o pathfinding, que, ao clicar, podia propor um trajeto que cortava o canto de um obstáculo. Um jogo guardado numa posição que entretanto passou a ser sólida recoloca agora o herói no chão livre mais próximo.

As verificações geométricas do projeto correm com npm test, sem dependências a instalar. Eis o resultado, relançado a 14 de setembro:

json
{
  "maps": 15,
  "rooms": 12,
  "portalDirections": 28,
  "reachableInteractions": 55,
  "boundaryMovementSamples": 22023,
  "passed": true,
  "failures": [],
  "checks": 1515
}

As 1 515 verificações passam em 2,9 segundos, com 17 sondas de chão e de folhagem e 54 verificações de cenário. O README escrito pelo Astra esclarece que estas amostras geométricas não provam que cada píxel do cenário esteja certo.

Doze músicas e sete retratos

No turno 7, pedi músicas que mudassem consoante a situação e o ambiente. O Astra escreveu doze prompts e gerou doze faixas com a API de música do ElevenLabs e o modelo music_v2, para a aldeia, as três casas, o bosque, o pomar, dois combates, o descanso numa cama, o sonho, a vitória e a derrota. Os dez temas de ambiente tocam em loop com um fade de 350 ms, as mudanças de local passam por um fade de 850 ms, e a música baixa durante os diálogos.

Quarenta verificações de áudio passaram no Chrome. Testam o sinal, os loops e as transições, e o README esclarece que não substituem uma audição para julgar a música em si.

Os retratos chegaram no turno 8. O Astra pôs o imagegen a gerar sete retratos em pixel art a partir dos sprites existentes, mantendo penteados, roupas e cores. Aparecem ao lado das falas de cada personagem, e o do herói surge nos menus com o nível e os pontos de vida e de poder. As janelas adaptam-se até 320 píxeis de largura.

Tempo, tokens e custo

Medição Clairbois
Período 13 de setembro, das 16h53 às 23h23 (hora de Paris)
Trabalho do agente 3 h 05 min em 10 turnos, dos quais 2 interrompidos
Mensagens enviadas 10, das quais 2 com captura de ecrã
Respostas do modelo 269
Chamadas de ferramentas 257
Compactações do contexto 4
Tokens de entrada 35 405 000, dos quais 33 769 472 lidos em cache (95,4 %)
Tokens de saída 301 285, dos quais 114 284 de raciocínio
Custo à tarifa da API 65,19 $

À tarifa consultada no OpenRouter a 14 de setembro de 2026, a mesma do clone de Dune 2000, o total reparte-se em 16,36 $ de entrada sem cache, 33,77 $ de cache e 15,06 $ de saída. A minha subscrição do ChatGPT desconta este uso numa quota, e o montante serve de referência. O mesmo modelo defronta o Claude Fable 5.1 numa cena three.js no nosso comparativo dos dois agentes.

Dois projetos, duas formas de conduzir o agente

Medição Clone de Dune 2000 Clairbois
Género estratégia em tempo real RPG de exploração
Primeiro prompt 66 palavras e um repositório de referência 147 palavras e um método imposto
Turnos 46 10
Mensagens 54 10
Trabalho do agente 11 h 16 min 3 h 05 min
Custo à tarifa da API 196,00 $ 65,19 $
Custo por hora de trabalho 17,40 $ 21,12 $
Verificações automáticas 122 testes Node, 24 cenários de navegador 1 515 verificações geométricas

O prompt longo exigiu cinco vezes menos mensagens, com um custo mais elevado por hora de trabalho. O modelo respondeu com mais frequência, 1,45 vezes por minuto contra 1,27, com um pouco menos de cache, 95,4 % contra 96,8 %. Os dois jogos não são do mesmo género nem do mesmo tamanho, por isso estas diferenças não apontam um método melhor do que o outro.

A reter

  • Gerar um mapa inteiro numa só imagem funciona, desde que depois se mande traçar cada colisão e cada camada, e que se testem.
  • Para interiores, a planta escreve-se antes da primeira imagem. Portas e escadas alinhadas, 28 passagens verificadas.
  • O gerador de imagens muda aberturas de sítio, desenha padrões de xadrez e acrescenta portas. Cada imagem verifica-se antes de entrar no jogo.
  • Quatro das minhas dez mensagens assinalavam um defeito visível que os testes automáticos não tinham detetado.
  • Doze músicas e sete retratos couberam em dois turnos e 10,81 $ à tarifa da API.

Erros frequentes

Gerar todas as divisões sem uma planta comum As primeiras divisões não tinham nenhuma lógica de andares. Manda escrever a planta, com portas, escadas e lados de chegada, antes de qualquer imagem, como o architecture.json aqui.
Confiar na transparência de uma imagem gerada A camada de primeiro plano chegou com um padrão de xadrez desenhado no lugar do canal alfa. Verifica a transparência antes de recortar as camadas.
Traçar as camadas com polígonos aproximados O contorno de uma árvore incluía relva e tapava 89 píxeis das pernas do herói. Usa máscaras ao píxel que excluam o chão e as sombras.
Declarar as colisões sem um levantamento completo Uma placa desenhada no mapa não tinha nenhuma colisão. Revê cada objeto visível com a vista de depuração, F2 aqui, e um teste de trajetos.
Julgar uma música gerada pelas verificações As 40 verificações de áudio testam o sinal, os loops e os fades, não a qualidade musical. Ouve as faixas antes de as manteres.

CodexGPT-6 AstraJavaScriptJeu vidéoPhaser

Damien Flandrin Programador web desde 2010, criador da Gekkode e do Email Impact. Cada artigo é testado num projeto real antes de ser publicado. Contacto
Newsletter

Os novos testes, tutoriais e projetos, por e-mail.

Testes reproduzíveis, código versionado, resultados datados. Nunca spam.