Eu queria criar um jogo. Primeiro, precisei aprender sua linguagem.
Três perguntas que todo jogo precisa responder, as seis palavras que tive que aprender e o que a minha primeira versão feita com IA errou.
Meu primeiro jogo da velha tinha um bug que não estava no código. Cliquei em uma casa, e um X e um O apareceram no tabuleiro no mesmo instante. Eu não sabia qual dos dois era o meu.

As regras estavam certas: os testes rodaram todas as sequências possíveis das minhas jogadas contra o computador, 569 partidas, e ele nunca perdeu. Mas o jogo não conversava comigo. Não tinha começo, não deixava claro de quem era a vez e não tinha um momento que dissesse "você venceu, jogue de novo". Eu ainda não tinha palavras para nada disso, então fui aprender. Comecei a chamar essas convenções de "gramática do jogo". É um apelido meu, não um padrão formal.
Só quer jogar? Jogue o jogo da velha. Você não precisa ler isto antes.
Como começar a criar um jogo simples?
Esta é a ordem que uso hoje. Copie para as suas anotações antes de abrir um editor.
- Descreva o objetivo e como uma rodada termina.
- Esboce os momentos de início, partida, resultado e nova rodada.
- Construa as menores regras e os menores controles jogáveis, incluindo o que não pode acontecer: quando a rodada termina, todas as casas vazias travam.
- Mostre de quem é a vez e o resultado; depois, adicione efeitos que comuniquem mudanças reais.
- Observe alguém jogar e corrija o que atrapalhar.
Minha primeira versão pulou o passo 2. O resto deste post explica por que isso importou.
Seis palavras que fizeram tudo se encaixar
Cada termo vem com o que ele significa no meu jogo da velha.
- Game loop (laço do jogo): mostrar a situação, receber a entrada, entender o que aconteceu, mostrar a nova situação. A anatomia de um videogame da MDN descreve isso em termos de engenharia. No jogo da velha: você escolhe uma casa, o jogo verifica se alguém venceu e o tabuleiro é redesenhado.
- Estado: tudo o que o jogo precisa lembrar agora. No jogo da velha: nove casas, de quem é a vez e o placar da sessão.
- Cena: um momento distinto, com uma função própria. No jogo da velha: título, partida e resultado. O resultado aparece embaixo do tabuleiro final, e Jogar novamente leva você direto de volta à partida.
- HUD (heads-up display): a camada de informação sempre visível. No jogo da velha: a linha de status ("É a vez de X.") e o placar.
- Feedback: a resposta direta do jogo a uma ação. No jogo da velha: a casa é preenchida e a mensagem de vez muda.
- Juice: resposta extra por cima do feedback, como movimento, som, partículas ou tremor. No jogo da velha: quase nada, de propósito: a linha da vitória e uma pequena animação de entrada na marca mais recente.
Regra 1: um jogo mostra o que acontece a seguir
A versão um não tinha um caminho. O tabuleiro já aparecia ao carregar a página, e uma partida terminada simplesmente parava. A reconstrução do dia seguinte adicionou o caminho: título → partida → resultado → nova rodada.


Regra 2: a tela responde antes que você pergunte
A qualquer momento, a tela deve responder a três perguntas. De quem é a vez? Onde posso jogar? Quem venceu?
Na minha versão, uma linha de status diz de quem é a vez, as marcas guardam o histórico e uma linha atravessa as três marcas vencedoras.

Alguns jogos desenham o HUD como uma sobreposição, como um contador de pontos. Outros o constroem dentro do mundo, como uma placa na beira da estrada. A dissertação de 2009 da Chalmers Beyond the HUD, de Erik Fagerholt e Magnus Lorentzon, me deu o vocabulário para essa escolha. Ela estuda jogos de tiro, não jogos de tabuleiro.
"Onde posso jogar?" também precisa funcionar sem mouse. Cada casa é um botão de verdade, seguindo o padrão de botão do W3C. Tab move um anel de foco visível, e Espaço ou Enter joga na casa. Casas já jogadas saem da ordem de tabulação.

Regra 3: toda ação recebe uma resposta
O feedback vem primeiro. Coloque uma marca, e a casa muda. Complete uma linha, e o jogo anuncia o vencedor e desenha a linha.

O juice é a camada de cima. A demonstração "Juice it or lose it" adiciona esses efeitos passo a passo a um jogo simples no estilo Breakout, e o repositório que a acompanha permite examinar cada técnica.

Minha versão é discreta de propósito: sem som, partículas ou tremor. Começar assim me fez perguntar o que cada efeito diria a quem joga.
Como a IA construiu o jogo e onde ela travou
Agentes de programação com IA escreveram o motor de regras, a página e os testes, a partir de uma especificação de design que eu passei. Uma etapa separada de QA com IA verificou o resultado e jogou no navegador. Mantive um registro de evidências com cada comando e cada falha.
- Ela seguiu minha especificação bem demais. A especificação dizia que a resposta do computador "chega no mesmo instante que a jogada humana" e proibia um atraso artificial ou um indicador de carregamento. Os agentes construíram exatamente isso. Depois, o QA observou que a resposta instantânea dificultava distinguir a sua jogada da do computador. Esse é o bug do começo deste post, e foi a minha especificação que o causou.
- Os primeiros testes falharam. Oito de 17 testes do motor falharam na primeira execução por causa de como o executor de testes desempacotava os dados das linhas vencedoras. O agente corrigiu a configuração dos testes, e todos os 17 passaram.
- Um segundo agente pegou o que o primeiro deixou passar. O agente que construiu o jogo adicionou um link de fonte que falhava na verificação de tipos. A etapa separada de QA bloqueou o lançamento até que isso fosse corrigido.
A lição para mim: a IA construiu meus erros de gramática com a mesma fidelidade que as minhas boas ideias. Ela não tinha como me dizer que o jogo era confuso até que algo o jogasse.
Atualização: corrigi os dois problemas
Escrever este post revelou dois problemas, então corrigi os dois antes de publicar.
- Agora o computador tem uma vez visível. Depois da sua jogada, a linha de status diz "Vez do computador — O está escolhendo…" por menos de meio segundo, e o tabuleiro trava. Então o O aparece com um contorno, para você ver qual marca é nova. Isso reverte a regra de "sem atraso" da minha própria especificação.
- O cartão de resultado foi para baixo do tabuleiro, então a linha da vitória fica totalmente visível.


O que ainda não testei
Uma etapa de QA com IA já jogou este jogo. Uma pessoa ainda não, e esse é um teste diferente. O próximo passo é uma sessão simples, sem orientação, do tipo que o Nielsen Norman Group descreve: três pessoas, três tarefas cada (escolher um modo, terminar uma rodada, começar outra) e uma anotação sempre que alguém hesitar. Até lá, o design é uma hipótese.
Esta é uma ordem inicial para projetos pequenos. Movimento em tempo real ou uma história mais longa vão mudar as perguntas. É isso que a minha pesquisa sobre jogos de plataforma investiga.
Você pode ajudar: jogue uma rodada e me conte o primeiro momento em que você não soube o que fazer. Uma DM ou um comentário no @ai.maker.lab no Instagram chega até mim.
Agentes de programação com IA construíram o jogo, e IA e automação ajudaram a produzir este artigo. Sou o proprietário do AI Maker Lab e assumo a responsabilidade pela redação final e pela verificação das fontes.
Fontes
- Mozilla Developer Network. "Anatomy of a video game." Data de publicação não informada. https://developer.mozilla.org/en-US/docs/Games/Anatomy. Acesso em 2026-08-18.
- W3C Web Accessibility Initiative. "Button Pattern." Data de publicação não informada. https://www.w3.org/WAI/ARIA/apg/patterns/button/. Acesso em 2026-08-18.
- Fagerholt, Erik, e Magnus Lorentzon. "Beyond the HUD — User Interfaces for Increased Player Immersion in FPS Games." Dissertação de mestrado, Chalmers University of Technology, 2009. https://odr.chalmers.se/items/d5fe6889-4cc6-49c2-ba56-0d759e2f37eb. Acesso em 2026-09-06.
- Jonasson, Martin, e Petri Purho. "Juice it or lose it." Publicado em 2012-05-24. https://www.youtube.com/watch?v=Fy0aCDmgnxg. Acesso em 2026-08-18.
- Jonasson, Martin, e Petri Purho.
grapefrukt/juicy-breakout. Criado em 2012-05-08. https://github.com/grapefrukt/juicy-breakout. Acesso em 2026-08-18. - Moran, Kate; Nielsen Norman Group. "Usability (User) Testing 101." Publicado em 2019-12-01; revisado em 2026-07-15. https://www.nngroup.com/articles/usability-testing-101/. Acesso em 2026-08-18.