Como criar um jogo com bot de IA com regras claras, memória e escolhas para o jogador
Para criar um jogo jogável com bot de IA, defina um loop pequeno e repetível, armazene o estado do jogo fora da conversa e dê a cada ação do jogador uma consequência clara. Deixe o bot interpretar as solicitações e descrever os eventos; deixe que regras explícitas determinem custos, progresso e finais. Este guia é para desenvolvedores de jogos que estão construindo um jogo baseado em texto com um personagem ou narrador de IA. A tarefa é criar uma sessão curta e testável na qual os jogadores compreendam suas opções, vejam que suas decisões importam e alcancem um final válido. O jogo de entregas abaixo é um modelo ilustrativo, não um produto testado ou um estudo de caso documentado.
Comece com um loop central que você possa jogar sem IA
Escreva o loop em uma frase: Mostre a situação → aceite uma ação → verifique as regras → atualize o estado → mostre a consequência e as próximas opções. Cada turno deve concluir esse loop ou explicar por que não pode prosseguir.
Antes de escrever um prompt de personalidade, defina o objetivo, as ações disponíveis, os custos das ações e as condições de encerramento. Você deve conseguir rodar o jogo com fichas de papel ou uma planilha. Isso possibilita inspecionar as mecânicas antes que o diálogo gerado adicione variações.
Pense em um pequeno jogo chamado *Festival Parcel*. O jogador tem cinco unidades de tempo para entregar um pacote. Ele pode escolher uma rota direta ou uma rota pelo jardim e, opcionalmente, pegar uma fita decorativa antes de partir. Um bot atua como o entregador do festival, que explica as rotas e comenta sobre a entrega.
As regras propostas são propositalmente compactas:
Mostre estas regras antes da primeira escolha. Explique que as ações de entrega encerram a sessão, portanto os jogadores devem pegar a fita antes. Uma entrega que gasta a última unidade de tempo ainda é bem-sucedida porque a verificação de sucesso ocorre primeiro.
Este protótipo tem um início, um espaço de decisão e um final completos. Personagens ou locais adicionais devem justificar sua presença agregando decisões úteis a esse loop.
Torne o estado explícito a autoridade soberana para os resultados
Trate o estado como o registro de verdade do jogo. O texto da conversa pode explicar esse registro, mas não deve alterá-lo silenciosamente.
O capítulo sobre Estado de Robert Nystrom em *Game Programming Patterns* (https://gameprogrammingpatterns.com/state.html) descreve máquinas de estados finitos por meio de estados, entradas e transições permitidas. Ele também demonstra como flags booleanas combinadas de maneira frouxa podem produzir combinações inválidas. Aplique esse princípio ao ciclo de vida do seu jogo: use um status de sessão, como ativo, entregue ou perdido, com transições definidas.
Para o protótipo de entrega, uma pequena especificação de estado é suficiente:
Derive o cartão-postal do jardim a partir da rota selecionada, em vez de armazenar um segundo valor que poderia contradizê-lo. Da mesma forma, calcule as ações disponíveis no momento com base no estado e nas regras.
Use uma ordem de processamento fixa: interprete a solicitação, valide sua ação e parâmetros, calcule o resultado, confirme a alteração de estado e, em seguida, narre-a. Forneça ao narrador o resultado confirmado e as próximas ações permitidas. Ele não deve inventar um segundo cálculo.
Por exemplo, após pegar a fita, o resultado oficial é: restam quatro unidades de tempo, a fita foi coletada e ambas as rotas cabem no orçamento de tempo. O bot pode descrever a cor da fita, desde que essa cor não tenha efeito mecânico. Ele não pode adicionar um custo de tempo não anunciado nem conceder uma segunda fita.
Você pode criar um protótipo dessas condições com uma ferramenta narrativa existente. O tutorial oficial de ficção interativa da Inkle (https://www.inklestudios.com/ink/web-tutorial/) explica escolhas condicionais, rastreamento de conteúdo visitado anteriormente, variáveis e finais explícitos. Esses recursos oferecem uma base útil para testar o jogo autoral antes de adicionar a narração por IA.
Dê aos jogadores escolhas que eles possam entender e influenciar
Para este design, avalie o protagonismo do jogador verificando se ele consegue antecipar uma diferença significativa e, em seguida, observá-la no resultado. Vários botões com textos diferentes que levam a um resultado idêntico pouco ajudam a testar isso.
Em *Festival Parcel*, a decisão da rota atende a diferentes preferências dos jogadores:
Estes são cálculos ilustrativos a partir das regras declaradas. Eles fornecem uma ajuda de decisão simples: escolha a entrega direta para terminar mais cedo, pegue a fita para decoração ou vá pela rota do jardim pelo cartão-postal. O tempo restante é um detalhe do final aqui; ele não concede pontos em segredo.
Se o jogo mais adiante premiar um resultado específico, revele essa pontuação antes da decisão. Caso contrário, os jogadores não poderão avaliar o custo-benefício pretendido.
Permita texto livre junto com ações visíveis. "Vamos pelo caminho panorâmico" pode corresponder à entrega pelo jardim. "Faça algo especial" é ambíguo: pode significar pegar a fita, seguir pela rota do jardim ou ambos. Peça um esclarecimento rápido sem gastar tempo.
Para o primeiro protótipo, aceite uma ação de jogabilidade por mensagem. Se o jogador solicitar uma sequência, apresente suas etapas e peça a ele para escolher a primeira ação. Isso evita executar parcialmente um plano cujas etapas posteriores acabem ficando indisponíveis.
Mantenha os pedidos não suportados informativos. Se o jogador pedir para voar, explique que as rotas disponíveis são a direta e a do jardim, com seus respectivos custos. O texto livre pode ampliar a expressão enquanto o sistema de ações mantém um conjunto previsível de recursos.
Defina o que o bot lembra e o que ele pode saber
Separe a memória em três camadas, cada uma com uma finalidade diferente.
O estado oficial da sessão armazena recursos, progresso, rotas selecionadas e finais. Ele persiste através de salvamentos e recarregamentos e só é alterado por meio de ações validadas.
Um registro de eventos da sessão guarda as ações confirmadas e suas consequências. Uma entrada pode informar que a ação 2 pegou a fita e reduziu o tempo de cinco para quatro. Isso auxilia na depuração e em recapitulações precisas. Mantenha identificadores de ação para que uma solicitação repetida não aplique o mesmo evento duas vezes.
O contexto narrativo contém o diálogo recente e uma recapitulação compacta usada para manter o tom e a continuidade. Ele pode ser encurtado sem excluir o estado real do jogo.
O guia da Anthropic para engenharia de contexto eficaz (https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents) discute tanto o resumo do histórico de conversas quanto a manutenção de notas persistentes fora da janela de contexto. Ele também alerta que resumos agressivos podem perder detalhes importantes. A implicação de design aqui é manter os fatos mecânicos exatos em armazenamento estruturado e usar resumos para a continuidade da conversa.
Estabeleça limites de conhecimento, bem como limites de armazenamento. Um personagem deve receber apenas os fatos que tem permissão para saber. Se uma versão futura incluir uma rota oculta, mantenha-a fora do contexto daquele personagem até que a condição de descoberta seja atendida. O estado disponível para o motor do jogo não precisa estar todo disponível para o narrador.
Para este jogo pequeno, mantenha o progresso dentro da sessão salva e limpe-o ao iniciar uma nova partida. Evite deduzir preferências duradouras do jogador a partir de uma única escolha de rota. Se adicionar uma preferência salva, como descrições mais curtas, torne-a explícita e editável.
Teste a memória com uma sequência concreta: pegue a fita, salve, recarregue, pergunte pelo status e selecione a entrega pelo jardim. A fita deve continuar coletada, quatro unidades de tempo devem restar antes da entrega e o tempo final deve ser zero.
Planeje respostas separadas para falhas no jogo e falhas no sistema
Um objetivo não alcançado faz parte do jogo. Uma solicitação de geração que falha é um problema de implementação. Dê a eles consequências diferentes.
Para falhas no jogo, aponte a regra que encerrou a partida. Após três esperas, restam apenas duas unidades de tempo, então nenhuma das rotas de entrega cabe no orçamento. Encerre imediatamente com uma explicação clara e uma opção de reinício, em vez de deixar o jogador preso em uma sessão ativa invencível.
Para falhas de implementação, defina o comportamento de recuperação antes de adicionar uma narração elaborada:
Não substitua silenciosamente um salvamento ilegível por um novo jogo. Isso oculta o progresso perdido e torna a resposta seguinte enganosa.
Construa uma mensagem de resultado simples para cada ação: o que aconteceu, o que mudou e o que está disponível a seguir. A narração expressiva do bot pode acompanhar esse resultado. Durante um tempo limite ou uma resposta contraditória, a mensagem simples ainda permite que o jogador continue.
Conclua os finais com uma recapitulação precisa. Mencione a fita apenas se ela tiver sido coletada e o cartão-postal somente para a rota do jardim. O texto gerado deve preservar as distinções que o jogador passou a sessão escolhendo.
Faça o playtest das regras e, depois, da interpretação do bot
Primeiro, teste o jogo com texto fixo. Cubra cada ação, final e condição de limite. Em seguida, adicione o bot e repita esses testes usando termos variados. Isso ajuda a distinguir uma regra quebrada de uma solicitação mal interpretada.
Convide jogadores representativos para concluir uma entrega sem instruções prévias. Peça que expliquem o que esperam antes de escolher e o que acreditam que mudou depois. O guia do Nielsen Norman Group sobre testes de usabilidade com pensamento em voz alta (https://www.nngroup.com/articles/thinking-aloud-the-1-usability-tool/) recomenda participantes e tarefas representativos, deixando os participantes falarem; ele também adverte que intervenções do facilitador podem influenciar o comportamento.
Use a observação junto ao registro de ações. Registre ações tentadas, pedidos de esclarecimento, desfechos inesperados e qualquer divergência entre a narração e o estado confirmado. Pergunte se os jogadores entenderam as opções de forma independente de terem gostado ou não de escolher entre elas.
Checklist compacto para playtest. Corrija falhas nas regras e no tratamento do estado antes de expandir o mundo do jogo. Se os jogadores entenderem as escolhas, mas as acharem desinteressantes, mude as contrapartidas. Se gostarem das decisões, mas não conseguirem prever os custos, melhore a apresentação. Expanda o protótipo quando as escolhas existentes continuarem compreensíveis diante de formulações diferentes, sessões salvas e caminhos de falha.
