Académique Documents
Professionnel Documents
Culture Documents
Histórico
Técnicas de Inteligência Artificial para Jogos
Motores de IA e plataformas de Desenvolvimento
Por onde começar?
Um Breve Histórico
“O Turco” (1770)
• Máquina de jogar xadrez supostamente
provida de inteligência artificial
Game IA
O objetivo de usar inteligência artificial é a diversão. Sua importância é quanto
aos resultados que o sistema irá gerar, e não como o sistema chega até os
resultados.
Apesar disso, a falta de uma metodologia científica faz com que muitas
das soluções encontradas pelos desenvolvedores de jogos não sejam
aceitas como um apoio aos estudos formais de IA.
IA em Jogos
Há diversas razões para que os pesquisadores de IA migrem para a área de
desenvolvimento de jogos:
Com a evolução dos hardwares de processamento gráfico e a sua otimização sobra mais
processamento para os algoritmos de IA.
Alguns dos tipos de Inteligência Artificial voltada para área dos
jogos, em ordem crescente de complexidade, são:
Procurando o jogador
Perseguindo o jogador
Fugindo do jogador
Máquina de Estado Finito
São fáceis de escrever e são mais concisos que maquinas de estados finitos
Sistemas Baseados em
Regras
Como funciona?
O conhecimento é definido através de um conjunto de parâmetros (variáveis) e um
conjunto de regras que trabalham sobre esses parâmetros, de modo que durante a
“Tomada de Decisão” essas regras são então processadas
Energia do Agente
Energia do Inimigo
Quantidade de Munição
Sistemas Baseados em
Regras
E uma vez definidos os parâmetros de entrada, seja também concebido o conjunto de ações
possíveis do agente:
fugir
procurar
Atirar
SE (distancia do inimigo > 100) E (energia do agente > 50) E ( energia do inimigo < 50)
ENTAO procurar.
- Se há um osso por perto e o cachorro esta com fome, ele irá comê-lo;
- Se o cachorro está com fome, mas não há nenhum osso por perto, ele procura por um;
- Se o cachorro não está com fome, mas está com sono, ele irá dormir;
- Se o cachorro não está com fome e não esta com sono, o cachorro irá andar e latir.
Sistemas Baseados em
Regras
Outros:
Algoritmo de Dijkstra e waypoints também são utilizados
Algoritmos de Busca
Ela avalia nós combinando g(n), o custo para alcançar cada nó, e h(n), o custo
para ir do nó até o objetivo:
f(n) = g(n) + h(n)
Algoritmos de Busca
Desse modo, se tenta encontrar a solução de custo mais baixo, a opção razoável seria
experimentar o menor valor de g(n) + h(n).
Desde que a função heurística h(n) satisfaça certas condições, a busca A* será ao
mesmo tempo completa e ótima.
Exemplo:
Redes Neurais
Comportamento
Aprendizagem,
Erros
Descobertas
Tolerância a falhas
Podem ser treinadas para reconhecerem padrões distorcidos e até
mesmo incompletos
Auto-organização
Capacidade de aprendizagem adaptativa
Redes Neurais
A implementação dos algoritmos genéticos em jogos pode ser dividida em quatro etapas:
Exemplo:
Suponha que a população de criaturas controladas pelo computador tenham que responder de
acordo com a arma em uso pelo jogador(espada, arco, lança e machado), e as respostas
possíveis são: usarEscudo (1), ataqueComEspada (2), fugir (3), esconder (4) e ataqueComArco
(5). Então os cromossomos destas criaturas serão representados por um vetor de quatro
posições, onde a posição 1 contém o identificador da ação a ser executada caso o jogador tenha
uma espada, a posição 2 será executada caso o jogador tenha um arco, e assim por diante. Cada
posição do vetor assume um valor de 1 a 5.
Algoritmos Genéticos
2- Validação da aptidão
Para o exemplo acima, uma boa função avaliação é contabilizar a diferença entre o
dano que a criatura causou ao jogador e o dano recebido.
Algoritmos Genéticos
3- Seleção
Nesta etapa é utilizada a função calculada na etapa anterior para que sejam
escolhidos os indivíduos que participarão do processo evolucionário.
Na vida real, geralmente dois pais contribuem com seus cromossomos para a
geração seguinte.
4- Evolução
Essas engines abordam diversas áreas, porém a área de IA ainda não teve um
aprofundamento e consta de forma tímida em grande maioria das engines
para jogos, deixando o trabalho para o desenvolvedor criar a IA
Alguns motores de jogos se destacam na ênfase que dão para a área da IA,
porém ainda que timidamente:
Unreal Engine 3
IA baseada em times
Adequada para jogos de tiro em primeira pessoa e estratégia
A Unreal Engine é um framework proprietário tendo três tipos de licença:
· Royalty-Bearing;
· Royalty-Free;
· Custom.
Royalty-Bearing: possui o valor de U$$ 350.000,00 mais U$$ 50.000,00 por plataforma de
desenvolvimento, além de pagar uma taxa de 3% em cima do faturamento do jogo.
Custom: essa última licença a empresa interessada deverá entrar em contato com a Epic Games
para a aquisição do produto. Sendo destinada para projetos não comerciais voltados mais para
aprendizado.
Source Engine
Framework, Desenvolvido pela Valve Software para produção de jogos envolvendo animação de
personagens, física, baseada em shaders e uma avançada IA.
Foi usado para o desenvolvimento de jogos famosos como Half-Life, Counter-Strike e Day of Defeat.
Permite tratar eventos relacionado aos sentidos humanos e ainda adicionar relacionamentos que
definem o status amigo ou inimigo
Reality Engine
Foi criada com o objetivo de competir com a Source Engine e a Unreal Engine 3, tendo
uma qualidade gráfica bem superior.
Foi criada com o objetivo de competir com a Source Engine e a Unreal Engine 3, tendo
uma qualidade gráfica bem superior.
Dúvidas?
gabriel@ecomp.eng.br
Game AI
Inteligência Artificial para Jogos
Eletrônicos
J. Gabriel Lima
gabriel@ecomp.eng.br
http://jgabriellima.wordpress.com
Laboratório de Planejamento de Redes de Alto Desempenho - LPRAD
Empresa Júnior de Engenharia de Computação /UFPa