Pular para o conteúdo principal
O jogo ao vivo

Esta página ainda não foi traduzida: mostrando a versão em inglês.

Como escrever o cérebro de um bot

O cérebro é um código comum que responde a uma pergunta: o que este bot faz agora. Ele roda onde você quiser — uma cloud function, um serviço seu, um cliente headless — e conversa com a sala pela mesma interface que o cliente de um jogador humano usa. Esta página especifica o encaixe em que ele se conecta: o que o cérebro recebe, o que pode devolver e quando. Como colocar um bot em uma sala está em Bots.

O que está definido e o que você já pode usar hoje

A plataforma não traz IA de jogo. Nada de behavior trees, sistema de utilidade ou cérebro de navegação. Esse é o limite: as decisões são suas, e o trabalho do módulo é tornar as suas decisões indistinguíveis das de um jogador.

Um cérebro não é um hook. Um hook envolve um passo nosso. Um cérebro não é passo nosso nenhum: ele roda fora da sala, no próprio ritmo, e para a plataforma tanto faz de que lado a conexão foi aberta. Por isso um cérebro pode ser uma cloud function, um serviço que você hospeda ou um cliente headless, e nenhuma dessas opções é mais nativa que as outras.

O encaixe é percepção entrando, comandos saindo, e os dois lados são os de um jogador:

O que é
percepçãoexatamente o que um jogador naquela vaga (seat) receberia — os mesmos deltas, pelas mesmas regras de visibilidade. Um bot não consegue usar wallhack mais do que um jogador.
comandosexatamente o que um jogador naquela vaga enviaria. Não existe canal de input privilegiado.

Um bot que vê mais — num modo de debug, num modo de treino — é uma ampliação declarada, não um efeito colateral de ser bot.

O tick de raciocínio é declarado, e não é o tick da simulação. Os cérebros ficam fora, então pensam no próprio ritmo.

Entre um raciocínio e outro, vale o último comando

Um cérebro que pensa devagar não gera um bot parado; gera um bot que continua fazendo a última coisa que decidiu. Projete o cérebro levando isso em conta.

A queda dos cérebros tem comportamento declarado, e não há padrão. Você diz o que acontece quando o cérebro para de responder, por tipo de sala. “Cérebros indisponíveis” é um evento retido, então quem assina depois fica sabendo da situação atual, e não só das próximas mudanças.

O que um bot, de propósito, não pode ser

São recusas, não omissões.

  • Um bot não é um jogador e não possui direitos de uso, compras nem registros no ranking. Um bot que pudesse tê-los seria uma forma de fabricá-los.
  • A marcação de bot sempre existe e a plataforma sempre consegue observá-la. Mostrá-la ou não aos jogadores é decisão sua; a existência dela, não.
  • O módulo não guarda histórico do que um bot decidiu nem por quê. Isso é com você, na sua telemetria — a plataforma não é o lugar onde o raciocínio da sua IA fica guardado.