Inteligência Computacional para
Jogos Eletrônicos
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
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
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
Histórico
• 1770: “O turco”, criado por Wolfgang von
Kempelen, que supostamente jogava xadrez
com perfeição.
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
Histórico
Pac-man conta com movimentos padronizados dos
inimigos, porém cada fantasma tem um modo
diferente de caçar o jogador
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
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.
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
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.
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
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
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
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.
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
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.
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
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.
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
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.
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
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.
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
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
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
Sistemas
Baseados em Regras
Técnicas de Inteligência Artificial em Jogos -
• 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.
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
Sistema
Baseado em Planejamento
Técnicas de Inteligência Artificial em Jogos -
• 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).
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
Inteligência Computacional para
Jogos Eletrônicos
TECNOLOGIA EM JOGOS DIGITAIS
JOGOS MASSIVOS PELA INTERNET – 2013
Marcelo Henrique dos Santos - http://www.marcelohsantos.com
Download

Técnicas de Inteligência Artificial em Jogos