Cursos / Jogos Digitais / Inteligência Artificial para Jogos / Aula
Neste tópico, você irá entender como os NPCs podem escolher suas ações explorando várias alternativas, das mais simples às de complexidade média. Porém, mesmo com as mais simples, você poderá elaborar para os NPCs comportamentos rebuscados.
Você vai conhecer agora uma técnica chamada de Máquina de Estados Finitos – MEF. Ela permite modelar o comportamento de um NPC através da descrição dos possíveis estados em que ele pode se encontrar e dos eventos que podem ocorrer para fazê-lo mudar de estado. Por exemplo, suponha que você esteja modelando o comportamento de um caçador. Uma possível forma de elaborar seu comportamento usando MEF é definir três estados para ele, como ilustra a Figura 11:
As mudanças de estados são reguladas por eventos que ocorrem no cenário. Assim, o caçador passa a perseguir uma presa (estado 2) quando avistar uma e volta a procurar uma presa (estado 1) quando ela sai do alcance de sua vista. Ao perseguir a presa, se esta encontra-se a uma distância segura para atirar, ele pode parar de perseguir para poder mirar e atirar na presa, e fica assim enquanto a distância ainda é boa para o tiro. Se a presa se distanciar muito, o caçador terá de parar de atirar e voltar a perseguir a presa.
Aliadas a essas mudanças de estado, pode-se incluir probabilidades de transição, em que um mesmo evento poderá gerar dois ou mais eventos possíveis, cada um com sua probabilidade de ocorrer. Chamam essa adaptação da MEF de Máquina de Estados Finitos Probabilística ou MEFP.
Na Figura 12, pode-se ver que há duas possíveis transições a partir do estado 1, ambas quando o evento A ocorrer. Mas, como saber para qual estado o NPC irá quando A ocorrer? O diagrama indica que há uma probabilidade de 60% de ele ir para o estado 3 e uma probabilidade de 40% dele ir para o estado 2. Ou seja, em aproximadamente 60% dos casos ele irá para o estado 3 e em 40% dos casos irá para o estado 2. De forma similar, quando o evento B ocorrer e o NPC estiver no estado 3, ele voltará para o estado 1 cerca de 70% das vezes e, nos casos restantes, 30%, ele irá para o estado 2.
Veja que o mecanismo é simples, mas tem o poder de definir comportamentos bastante complexos, inclusive associando probabilidade às transições de forma que o NPC se comporte diferentemente a cada nova partida ou a cada situação similar. A complexidade dessa técnica não reside na técnica em si, mas do número de estados que você está atribuindo ao seu NPC e da quantidade de eventos com que se está lidando. Quando o número de estados cresce, fica muito difícil gerenciar todas as possibilidades de transições de forma adequada.
Uma técnica alternativa a ser usada para minimizar o “ninho de cobra” de estados e transições da MEF é a Árvore de Comportamento (ou Behavior Tree). Nessa técnica, organizamos os possíveis estados em uma estrutura hierárquica, como nos organogramas de empresas. Porém, em vez de você organizar os comportamentos em torno de estados, você estrutura através de “tarefas”. Uma tarefa pode, então, ser decomposta em subtarefas e estas em outras subtarefas, assim por diante, criando uma ramificação a partir da tarefa principal. O termo “árvore” vem dessa ramificação.
A Figura 13 ilustra uma árvore cujo objetivo é modelar o comportamento de um NPC para entrar em uma sala. Há duas alternativas para alcançar esse objetivo: em uma, a porta da sala encontra-se aberta e na outra, fechada. Bem, veja com mais detalhes a simbologia desse formalismo em futuras aulas. Por enquanto, quero apenas dar uma ideia de qual tipo de ferramenta é possível utilizar para modelar o comportamento dos personagens para que você, futuro desenvolvedor de jogos, possa ter uma visão geral da disciplina.
Versão 5.3 - Todos os Direitos reservados