Inteligência Computacional para Jogos Eletrônicos
Papéis da IA em Jogos Adversários Aliados Personagens de apoio NPC s (Non-player Character) Comentaristas Controle de câmera Geração de fases Nivelamento da dificuldade
Histórico 1770: O turco, criado por Wolfgang von Kempelen, que supostamente jogava xadrez com perfeição.
Histórico Pac-man conta com movimentos padronizados dos inimigos, porém cada fantasma tem um modo diferente de caçar o jogador
Como anda a IA nos Jogos Os jogos estão chegando a um patamar artístico incrível, com gráficos extraordinários, simulando a física real e tendo uma inteligência artificial bem convincente. Com o avanço dos jogos, é cada vez mais comum o uso das mais diversas técnicas de inteligência artificial. Antigamente os desenvolvedores pouco se preocupavam com a IA, preocupando-se mais com os gráficos do game e sua jogabilidade. Hoje o cenário esta mudando. A Inteligência Artificial está cada vez mais forte no desenvolvimento de um jogo. Proporcionando principalmente uma maior diversão ao jogo.
Mas o que é afinal AI? Inteligência artificial em jogos é o uso de técnicas que possibilitam a implantação de rotinas complexas de tomada de decisões no software. Tudo isso para encontrar caminhos, tomar decisões, agir de acordo com a situação, aprender. A inteligência artificial tem grandes aplicações em jogos, ao tentar atribuir ao computador um comportamento humano.
Técnicas para Programar AI em Jogos Máquinas de Estado Maquinas de Estado baseada em Pilha Lógica Fuzzy Uso de scripts Sistema de mensagens Ferramentas de autoria Algoritmos Genéticos Combinação de física com grafos Matrizes e Árvores de Decisão Sistemas Baseados em Regras Sistema baseado em planejamento Redes Neurais Sistemas baseados dados Uso de Agentes Combinação de física com grafos Vida artificial
Técnicas de Inteligência Artificial em Jogos - Máquinas de Estado Finita Uma máquina de estados é basicamente composta por um conjunto de estados e um conjunto de regras de transição entre estes estados. Ou seja, o personagem está configurado com uma série de regras e possui regras de transição para ver se o personagem deve alterar o estado inicial, como por exemplo, se ele viu um oponente e se vale a pena ir atrás dele. As desvantagens em utilizar as FSM são os comportamentos repetitivos, caso uma situação se repita. E a questão do desempenho, pois quanto mais complexo for o ambiente, maior será o número de estados e transições na qual o FSM terá de prever. Aumentando seu custo.
Técnicas de Inteligência Artificial em Jogos - Agentes Um agente inteligente pode ser um personagem na qual pode raciocinar e tomar suas próprias decisões, baseadas tanto em regras quanto no cenário do jogo em si. Além disso, é possível criar emoções que podem deixar um personagem mais realista. Uma abordagem interessante para se utilizar em agentes é a arquitetura BDI, baseada em 3 conceitos: Crenças, desejos e intenções.
Técnicas de Inteligência Artificial em Jogos - Lógica Fuzzy Lógica Difusa é uma generalização da lógica booleana que admite valores lógicos intermediários entre a falsidade e a verdade (como o talvez). A lógica difusa normalmente está associada ao uso de uma teoria de conjuntos fuzzy. A lógica fuzzy permite representar num sistema computacional valores onde lógicas clássicas não conseguiriam representar, como pouca comida, muito perto, e outros eventos não contáveis (ou imprecisos). Uma estratégia interessante para se utilizar é a mistura entre a lógica Fuzzy e as FSMs.
Técnicas de Inteligência Artificial em Jogos - Algoritmos de Pathfinding Os personagens precisam criar rotas, e não podem fazer coisas que comprometam seu funcionamento, como, por exemplo, atravessar paredes ou andar em cima de um lago. Por isso, os programadores aplicam algoritmos de pathfinding (procura por caminhos). Este tipo de lógica é importante para que o personagem faça uma rota satisfatória e normalmente mais curta, e não ande a esmo pelo cenário. Além disso, o algoritmo deverá calcular possíveis novos obstáculos que o personagem poderá se deparar, como uma nova parede, outros personagens, possíveis projéteis que o podem atingir (como uma bala de uma pistola), e qualquer variável do ambiente que possa interromper a ação deste personagem.
Técnicas de Inteligência Artificial em Jogos - Redes Neurais São sistemas não lineares que imitam o mecanismo de processamento do cérebro humano. Elas são redes computadorizadas onde a sua estrutura é similar a um cérebro humano, tendo nós de rede (neurônios) e conexões entre os nós. A vantagem de usar uma rede neural é que a rede pode aprender e armazenar conhecimento para uso posterior. Num game de futebol, a aplicação de redes neurais pode ser utilizada para que jogadores de futebol aprendam a interceptar a bola durante uma partida.
Técnicas de Inteligência Artificial em Jogos - Algoritmo genético Um algoritmo genético é uma técnica de procura utilizada na ciência da computação para achar soluções aproximadas em problemas de otimização e busca. Algoritmos genéticos são uma classe particular de algoritmos evolutivos que usam técnicas inspiradas pela biologia evolutiva como hereditariedade, mutação, seleção natural e recombinação. Algoritmos genéticos diferem dos algoritmos tradicionais de otimização em basicamente quatro aspectos: Se baseiam em uma codificação do conjunto das soluções possíveis, e não nos parâmetros da otimização em si; Os resultados são apresentados como uma população de soluções e não como uma solução única; Não necessitam de nenhum conhecimento derivado do problema, apenas de uma forma de avaliação do resultado; Usam transições probabilísticas e não regras determinísticas
Técnicas de Inteligência Artificial em Jogos - Sistemas Baseados em Regras Trata-se de um sistema de apoio à decisão que procura representar o modo de raciocínio e o conhecimento utilizado por especialistas na resolução de problemas no seu âmbito de especialidade. É definido através de um conjunto de parâmetros e um conjunto de regras que trabalham sobre estes parâmetros, de modo que durante a tomada de decisão, essas regras são então processadas.
Técnicas de Inteligência Artificial em Jogos -Sistema Baseado em Planejamento O planejamento de IA aplicado a jogos digitais é o armazenamento de planos de ação e fazer com que o usuário escolha o plano mais adequado numa determinada situação. Também pode permitir ao personagem decidir qual estratégia ele pode utilizar (além do próprio personagem criar a sua estratégia). Uma vantagem desta técnica é que as ações do personagem não são tão repetitivas (diferente dos personagens com o sistema de Máquina de estado Finita, por exemplo).
Inteligência Computacional para Jogos Eletrônicos