Inteligência Artificial nos Games – Categorias e Aplicações

Inteligencia-Artificial-nos-Games

Olá gurizada,

conforme prometido, trago hoje o segundo post do arco sobre Inteligência Artificial nos games. Minha intenção é manter uma periodicidade quinzenal sobre este assunto tão requisitado aqui no blog. Hoje veremos como a I.A. é organizada juntamente com exemplos de aplicações das técnicas mais comuns na indústria de games. Nestes primeiros posts, a intenção é manter uma abordagem mais abrangente sobre o assunto, apresentando a vocês uma visão geral sobre este tema.

A Inteligência Artificial pode ser dividida em duas grandes categorias:

Determinística

Tem comportamento previsível, consome poucos recursos da máquina e é mais fácil de ser implementada.
O problema desta abordagem é que se faz necessário prever todas as ações possíveis em um determinado momento, fazendo-se uso de muitas regras do tipo “se-então”.

  • Técnicas fáceis de implementar, entender e testar;
  • Rápidas, quando comparadas às técnicas não-determinísticas;
  • Previsíveis. Como passar do tempo,o jogador é capaz de prever com exatidão o comportamento do NPC
    (Non Player Character – Personagem não controlado pelo jogador), diminuindo a diversão e longevidade do jogo.

Dentro da I.A. determinística,  desenvolvedores podem utilizar várias técnicas. Abaixo veja uma listagem das mais utilizadas:

  • Máquina de Estados Finita
  • Sistema Baseado em Regras
  • Pathfinding
  • Comportamentos de Movimentação

Não Determinística

Possui um grau de incerteza, podendo variar a cada implementação. Um exemplo de comportamento não determinístico inclui o aprendizado que um NPC adquire ao jogar contra um humano após um determinado período.

  • Técnicas difíceis de implementar, entender e testar;
  • Lentas, quando comparadas às técnicas determinísticas;
  • Imprevisíveis. O comportamento do NPC pode variar de acordo com as ações do jogador, aumentando a diversão e longevidade do jogo.

Dentro da I.A. não determinística,  também há um grande número de técnicas que podem ser utilizadas.  Abaixo veja uma listagem das mais populares:

  • Redes Neurais
  • Algoritmos genéticos
  • Lógica Fuzzy
  • Planejamento

No que diz respeito ao desenvolvimento de games, não há dúvida que as técnicas determinísticas são utilizadas em maior número em relação a não determinísticas. Se pensarmos no mercado como um todo, são poucas mecânicas de jogo que exigem realmente técnicas complexas para criar a inteligência dos NPC´s. Um bom exemplo é a franquia do bigodudo mais famoso da indústria, Mario. Mesmo em sua mais nova aventura para o 3DS, seus inimigos não possuem comportamentos complexos.  Perceba que isso não foi, não é, e nunca será motivo para Hammer Brother, Koopa ou Goompa não cumprirem o seu papel na jogabilidade. Se um dia essa turma toda ficar mais inteligente, sendo capaz de planejar uma estratégia de contra-ataque mais efetivo, o encanador estará em sérios apuros e o jogo não será mais o mesmo. Por outro lado, games como Black or White, The Sims e Metal Gear Solid, exigem o uso de  técnicas mais complexas para entregar ao jogador uma experiência mais rica e real. Perceba que em The Sims, o game não possui uma time line definida, a jogabilidade é composta por regras e não é previsível. Mas, isso só funciona pois faz parte da essência da experiência que Will Wright queria passar ao jogador. Uma simulação da vida, que obivamente, não é previsível.

Veremos agora alguns exemplos de aplicações das técnicas organizadas em gêneros de jogos.

Gênero: RPG

A principal característica desse gênero é o enredo imersivo, representado por personagens controlados pelo computador.  A imserão faz com que o jogador identifique-se com o personagem principal, acompanhando sua evolução durante o jogo.

Técnicas

Máquina de Estados Finita
As FSM’s permitem ao desenvolvedor dividir o jogo em estados explícitos. Cada personagens possuirá um conjunto finito de estados (sentado, correndo, lutando, fugindo, etc) , e para cada estado, haverá um comportamento – um bloco de código específico que será executado no momento correto.

Sistema de Mensagens (Eventos)
Nenhuma entidade desperdiça tempo e processamento realizando checagens para determinar se mudanças ocorreram. Eventos são enviados através de uma central para todos os objetos a ela cadastrados. Se eu, NPC, desejo agir segundo movimentos do personagem princiopal, devo “ouvir” suas ações pra tomar minha decisão.

Sistemas de Script

Sistema de Script é uma técnica que provê ao desenvolvedor uma camada de abstração, facilitando a programação de regras do jogo ou de comportamentos para NPC´s. Ela pode ser interpretada como uma meta linguagem utilizada para interagir com o programa de uma forma mais simples e intuitiva.

Abaixo veja um exemplo de Script para o game Final Fantasy.

AI: Main
{
   If (MidgarZolomIdleAnim == Sitting) Then
   {
      Choose Random Opponent
      Use  on Target
   } Else If (Count == 0 or 1 or 2) Then {
      Choose Random Opponent
      Use  on Target
      Count = Count + 1
   } Else {
      If ((Rnd(1..SpclChance) == 1) AND (TempVar:BlownAway > 0)) Then
      {
         Choose Random Opponent
         Use  on Target
         TempVar:BlownAway = TempVar:BlownAway - 1
      } Else {
         Choose Random Opponent
         Use  on Target
      }
      Count = Rnd(0..1)
   }
}

Gênero: Estratégia

O gênero Estratégia está embasado no planejamento cuidadoso e na habilidade de gerenciar recursos de maneira a alcançar a vitória. Os jogos de estratégia podem ser baseados em turnos, em tempo real ou uma mistura de ambos.

Técnicas

Sistema de Mensagens
A comunicação é fundamental para delegar responsabilidades e atividades a outras unidades, descobrir as unidades que fornecem determinados serviços, obter informações gerais sobre estado do mundo, entre várias outras funções.

Máquinas de Estados Finitos
É possível criar máquinas inteiras para cada ação do jogo. Um exemplo seria um FSM para a construção de uma cidade. A máquina define a ordem de cada ação até o final da construção, por exemplo: juntar mão matéria prima, preparar moldes, construir alicerces, levantar paredes, etc.

Lógica Fuzzy

A  lógica fuzzy, ou lógica difusa, parte do princípio que existem valores lógicos intermediários entre o Falso (0) e o Verdadeiro (1) – por exemplo o valor médio Talvez (0,5). Com este conceito, ela trata de incertezas, definindo uma porcentagem de verdade para determinada afirmação. Por exemplo, se aplicado a ações de um NPC, podemos dizer um determinado soldado tem 70% de chance de ver o jogador se estiver próximo a ele. Esta técnica é muito útil e traz um grau de realismo importante e fundamental a este gênero.

Bom pessoal, para o post de hoje acho que já temos bastante material. No próximo, tratei mais exemplos de aplicações organizadas em gêneros de jogos. Após esta visão geral da I.A.,  entraremos a fundo em algumas das técnicas mais utilizadas para melhor entender o seu funcionamento.

Se gostaram do post, não deixem de comentar. Caso contrário, ficamos sem um feedback.

Até lá ;)

Autor: Everton Vieira Ver todos os posts de
Sou Bacharel em Análise de Sistemas pela Universidade Católica de Pelotas (UCPel) no ano de 1999. Minha paixão por games é de longa data. Porém, em 2003 tornei essa paixão uma profissão. Durante oito anos atuei como Game Designer e Arquiteto de Software em mais de 30 projetos de Serious Games (simuladores) para grandes empresas do país. Atualmente sou sócio-fundador da Izyplay Game Studio, onde exerço o cargo de Diretor de Criação. Além do envolvimento corporativo, também participei da organização da Pós Graduação em Arquitetura e Desenvolvimento de Jogos Digitais na FATEC SENAC Pelotas. Minha área de interesse e especialização é Game Design e Inteligência Artificial.

8 Comentários em "Inteligência Artificial nos Games – Categorias e Aplicações"

  1. Marcelo Martins 08/03/2012 at 18:05 - Reply

    Everton,

    Muito bom o texto. Gostei muito de aprender um pouco mais sobre inteligência artificial e acho o assunto fascinante. Aguardo ansiosamente os próximos posts.

    Um abraço!

    • everton.vieira 09/03/2012 at 14:15 - Reply

      Valeu Marcelo, e olha que o mais interessante está por vir ;)

  2. Bárbara 12/03/2012 at 10:04 - Reply

    Everton, acho que a coisa mais legal neste post é aprender os nomes destas técnicas que, de certa forma, a gente sabia que existia, mas, no contexto do jogo, nem pensava em Inteligência Artificial.
    Enquanto eu lia, não consegui parar de pensar no couro que tomei do Masamune Chrono Trigger, porque demorei demais para entender o sistema de regras daquele Boss.
    Na verdade, acho que a Determinística impera nas batalhas por turnos nos jogos de RPG.

  3. Diego 15/03/2012 at 16:23 - Reply

    Muito bom, sou aluno de mestrado e estou realizando pesquisa na parte de IA, é muito interessante essa parte, seria bacana ter mais materiais sobre isso, referencia da técnica de IA e em qual jogo foi aplicada.

    • everton.vieira 16/03/2012 at 13:03 - Reply

      Olá Diego,
      Legal saber que a IA é tema de pesquisas pelo Brasil todo. Semana que vem tem mais um post sobre I.A ;)

  4. Daniel Sakura 16/03/2012 at 02:40 - Reply

    Olá,
    Gostei da definição entre os tipos de IA, só achei que a Não-Determinística ficou um pouco confusa, acredito que um exemplo ou outro ajudaria a entender melhor.

    Quanto a Black/White, seu código de AI é relativamente simples, envolve personalidade, nível e tipos de golpes, mas basicamente acontece uma comparação entre varios modulos e chega ao padrão de usar esse golpe, talvez aquele e nunca aquele terceiro…

    • everton.vieira 16/03/2012 at 10:09 - Reply

      Olá Daniel,
      Em relação a técnica Não Determinística, ao contrário da Determinística, não há um “roteiro” a ser seguido. Não há um grupo de ações que serão disparadas se determinado evento ocorrer. Esta técnica está baseada no planejamento e na incerteza em relação as ações dos NPC´s. Utilizando como exemplo o próprio Black or White que você citou, a base da sua I.A é o chamado aprendizado por reforço ou aprendizagem de máquina (machine learning). Não há um comportamento determinado para as criaturas, elas irão analisar as ações do jogador para aprender em tempo real o que é certo e o que é errado fazer.

      Um outra forma de ver a técnica Não Determinística seria que para uma mesma ação, podemos ter resultados diferentes.

  5. Anonimo 28/05/2012 at 04:18 - Reply

    Ótimo artigo, porém, gostaria de ver algo sobre AI em jogos Space Shooters!! Abraço,até.

Deixar um Comentário