Your SlideShare is downloading. ×
Inteligência Artificial em Jogos Eletrônicos
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Inteligência Artificial em Jogos Eletrônicos

7,942
views

Published on

Apresentação sobre técnicas de Inteligência Artificial em Jogos Eletrônicos.

Apresentação sobre técnicas de Inteligência Artificial em Jogos Eletrônicos.


1 Comment
7 Likes
Statistics
Notes
  • Gostei e pretendo levar isso também na minha apresentação de faculdade sobre jogos em 3D ou IA em Jogos
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
7,942
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
360
Comments
1
Likes
7
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. UNIVERSIDADE FEDERAL DA PARAÍBA CENTRO DE CIÊNCIAS EXATAS E DA NATUREZA Grupo: Bruno Marinho Erisvaldo Júnior Josemar Barrêto Professora: Natasha Queiroz
  • 2. Objetivo ROTEIRO Introduzir e demonstrar Introdução as principais técnicas de IA aplicadas em jogos Técnicas de IA para jogos acadêmicos e comerciais. Exemplos Práticos O Estado da Arte Considerações Finais
  • 3. Inteligência Artificial em Jogos Existem diversas interpretações para o que é considerada IA nos jogos eletrônicos. Determinística X Não-Determinística Utilizaremos uma definição ampla, considerando a Game AI uma "weak AI". Principais Técnicas Pela nossa definição, qualquer técnica que forneça a ilusão de O Futuro inteligência em um nível apropriado, tornando o jogo mais imersivo, desafiador e divertido, será considerado Game AI.
  • 4. Determínistica X Não-Determinística • Técnicas fáceis de implementar, • Técnicas difíceis de implementar, entender e testar; entender e testar; • Rápidas, quando comparadas às • Lentas, quando comparadas às técnicas não-determinísticas; técnicas não-determinísticas; • Previsíveis. Com o passar do • Imprevisíveis. O comportamento tempo, o jogador é capaz de prever do NPC pode variar de acordo com com exatidão o comportamento as ações do jogador, aumentando do NPC, diminuindo a diversão e a diversão e longevidade do jogo. longevidade do jogo.
  • 5. Principais Técnicas • Cheating; • Rules-based AI Systems; • Finite State Machines; • A-Life techniques; • Fuzzy Logic; • Entre outras. •Pathfinding;
  • 6. O Futuro • O próximo grande passo em IA • Alguns jogos comerciais, nos para jogos é o APRENDIZADO; últimos anos, destacaram-se por uso de IA não-determinística, marcando um novo patamar na IA • Uso cada vez mais intensivo de IA dos jogos eletrônicos, tais como: não-determinística; Creatures, Black & White, Battlecruiser 3000AD, Dirt Track • Foco maior na inteligência dos Racing, Fields of Battle e Heavy jogos, já que a mesma não vem Gear. acompanhando a notória evolução nos gráficos.
  • 7. Chasing and Evading •O problema de Chasing and Evading se divide em duas partes: • Existem diversas formas de implementar primeiro, define-se qual dos dois se Chasing/Evading, da mais simples até a deve fazer. Segundo, executa-se o mais complexa; algoritmo responsável pelo movimento; •Uma técnica de Chasing/Evading pode ser implementada em um mundo contínuo ou • Pode-se adicionar uma terceira em um mundo tile-based, pouco diferindo parte no problema, que é o desvio de no código; obstáculos; • Dependendo da necessidade do jogo, • Agora, focaremos na segunda parte escolhe-se a forma mais simples possível do problema, que é efetuar, de fato, que possa atender aquela situação a perseguição ou fuga. específica.
  • 8. Chasing and Evading
  • 9. Chasing and Evading
  • 10. Chasing and Evading
  • 11. Chasing and Evading
  • 12. Pattern Movement • Muito utilizado para simular • Arrays de coordenadas podem ser movimentações complexas dos utilizados para definir as posições-chave do NPCs, mas que na verdade são pré- movimento; determinadas; •Vários padrões podem ser carregados em • A movimentação do NPC ocorre situações diferentes, fazendo com que a segundo um determinado padrão movimentação fique variada e pareça de grande complexidade; previamente definido; • Pelo fato de ser uma técnica • Utilizado na maioria dos jogos, determinística, pode se tornar previsível, dos mais simples aos mais diminuindo a diversão e longevidade do complexos; jogo.
  • 13. Pattern Movement
  • 14. Pattern Movement
  • 15. Basic Pathfinding andWaypoints • Existem diversas técnicas de Pathfinding e a utilização de uma delas depende de uma série de fatores, tais como: • Para a maior parte dos problemas de • O destino é estático ou Pathfinding, existe um algoritmo móvel? bastante conhecido, chamado A*; • Existem obstáculos no caminho? •Em alguns casos, principalmente nos • Se existem obstáculos, mais simples, o A* não é a melhor esses obstáculos são escolha. Esses casos serão abordados a móveis? seguir. • Como é o terreno? • O caminho mais curto é sempre a melhor solução?
  • 16. Basic Pathfinding andWaypoints
  • 17. Basic Pathfinding andWaypoints
  • 18. Basic Pathfinding andWaypoints
  • 19. Basic Pathfinding andWaypoints
  • 20. Basic Pathfinding andWaypoints
  • 21. Basic Pathfinding andWaypoints
  • 22. Basic Pathfinding andWaypoints
  • 23. Basic Pathfinding andWaypoints
  • 24. Scripted AI and Scripting Engines • Tratam-se de linguagens de programação extremamente simples que • Os scripts podem ser lidos e executados são utilizadas para moldar tarefas quando o jogo for iniciado ou durante o específicas do jogo; próprio jogo, quando um determinado evento é acionado; • Podem ser utilizadas pelos desenvolvedores no momento da •Com os scripts, pode-se alterar atributos, produção do jogo bem como por comportamentos e respostas dos NPCs, jogadores após o jogo ter sido lançado, bem como lidar com eventos do jogo; visando a sua expansão; •O jogo se torna extremamente expansível • Pode utilizar uma linguagem de script e manutenível, podendo ser alterado apropriada, como Lua ou Python, ou ter significativamente sem necessidade de se uma sintaxe específica para o jogo; desenvolver uma nova versão.
  • 25. Scripted AI and Scripting Engines
  • 26. Scripted AI and Scripting Engines
  • 27. FiniteState Machines • Máquinas de Estados Finitos são estruturas lógicas compostas por um conjunto de estados e um conjunto de regras de transição entre esses estados; • No caso dos jogos, são bastante utilizadas para efetuar o controle do comportamento de agentes inteligentes; • Os dados de entrada e saída, nesse caso, são eventos e outros sinais importantes do jogo;
  • 28. FiniteState Machines
  • 29. FiniteState Machines
  • 30. FiniteState Machines
  • 31. FiniteState Machines Substituindo o estado “Atacando um Inimigo” pelos estados “Procurando Posição de Ataque”, “Desferindo Golpe” e “Esquivando”.
  • 32. FiniteState Machines
  • 33. FiniteState Machines
  • 34. Fuzzy Logic • “A essência da lógica difusa é que tudo é uma questão de níveis” - Lofti Zadeh, criador da teoria dos conjuntos difusos.  Aplicações em •A lógica difusa procura estender a jogos: lógica booleana, aplicando à ela níveis de verdade.  Navegação de •Ao invés de 0 ou 1, verdadeiro ou unidades através falso, a lógica difusa afirma que tudo é verdade, no seu respectivo de obstáculos, nível. waypoints, etc. •“Sistemas baseados em regras difusas requerem de 50% a 80% menos regras  Controle de do que sistemas baseados em regras tradicionais para efetuarem as mesmas decisão. tarefas.” - Timothy Masters
  • 35. Fuzzy Logic Etapas do processo de inferência de lógica difusa.
  • 36. Fuzzy Logic  Primeira etapa (fuzzification):  Mapear os inputs com valores reais para inputs fuzzy, usando funções de associação.  Exemplo: uma função de associação para o peso de uma pessoa.
  • 37. Fuzzy Logic  Segunda etapa:  De posse dos inputs fuzzy, pode-se produzir algum output ou conclusão combinando certas regras (fuzzy rules).  Uso de axiomas fuzzy:  As regras geram níveis de verdade para cada conjunto de outputs.
  • 38. Fuzzy Logic  Segunda etapa (Exemplo):  Criatura de um jogo decide se deve atacar um jogador:  Variáveis de entrada: distância, saúde da criatura e ranking do jogador.
  • 39. Fuzzy Logic  Segunda etapa (Exemplo):  Variáveis de saída (ações): fugir, atacar ou fazer nada.  Algumas possíveis regras:  Output gerado:
  • 40. Fuzzy Logic  Terceira etapa (defuzzification):  Necessária quando se exige um resultado real de um processamento fuzzy.  Método simples: atribuir valores às variáveis de saída e calcular a média ponderada.  Exemplo anterior: valor -10 para fugir, 1 para fazer nada e 10 para atacar.  Resultado:
  • 41. Rule-BasedAI  Sistemas baseados em regras consiste em um conjunto de regras if-then que são usadas para fazer inferências e tomar decisões.  Possuem dois componentes:  Memória de trabalho;  Armazena fatos ou assertivas feitas pelas regras.  Memória de regras ou simplesmente regras.  Contém regras if-then que operam sobre os fatos armazenados na memória de trabalho.
  • 42. Rule-BasedAI  Exemplo: descobrir árvore tecnológica de um oponente em um jogo de estratégia.  Árvore tecnológica:
  • 43. Rule-BasedAI  Inferência pode ser de dois tipos:  Encadeamento para a frente (Forward chaining):  Fase 1: casamento de regras aos fatos atuais.  Fase 2: resolução de conflitos de regras.  Fase 3: executar a regra.  Encadeamento para trás (Backward chaining):  Ao invés de tentar casa a parte if das regras com os fatos, tenta-se casar a parte else.  A partir daí, tenta-se inferir quais regras foram acionadas para se atingir aquele fato.  É recursiva e de difícil implementação.
  • 44. Basic Probability  Usado para diversos fins em jogos:  Inserir aleatoriedade;  Calcular probabilidades de acerto, etc;  Definir habilidades de personagens;  Inserir probabilidades em transições de estado;  Adaptabilidade e tomada de decisões.
  • 45. Basic Probability  Dado um evento E que possa ocorrer de n maneiras dentro de um experimento que possui N resultados possíveis (espaço amostral N), define-se a probabilidade de E como: P(E) = n/N  Propriedades:  0 <= P(A) <= 1;  Se A é o espaço amostral, então P(A) = 1;  P(A') = 1 – P(A);  Se A e B são mutuamente exclusivos, P(A U B) = P(A) + P(B);  Se A e B não são mutuamente exclusivos,  Probabilidade condicional:  Fórmula de Bayes:
  • 46. Bayesian Networks  Grafos cujos nodos representam variáveis aleatórias e cujos elos representam relações causais entre essas variáveis.  Exemplo:
  • 47. Bayesian Networks  Exemplo de inferência usando rede bayesiana (NPC decidir se abre um baú em procura de tesouro, dado que ele pode estar ou não fechado e/ou com armadilha): P(armadilha) Verdadeiro Falso PT 1 - PT Rede Bayesiana P(fechado | armadilha) Armadilha Verdadeiro Falso verdadeiro PLt 1 - PLt falso PLf 1 - PLf Usando a Fórmula de Bayes, tem-se que:
  • 48. Bayesian Networks  Exemplo de inferência usando rede bayesiana (NPC decidir se abre um baú em procura de tesouro, dado que ele pode estar ou não fechado e/ou com armadilha):  Digamos que um NPC tenha experimentado abrir 100 baús e obteve os seguintes resultados: 37 baús tinham armadilhas. Destes, 29 estavam fechados. Dos 63 baús que não tinham armadilhas, 18 estavam fechados. Temos então as seguintes probabilidades:  Então, se um NPC notar que o baú está fechado, temos a seguinte probabilidade de que este baú contenha uma armadilha:  A inferência estatística melhora o palpite do NPC, simulando uma aprendizagem.
  • 49. Bayesian Networks  As tabelas de probabilidade crescem exponencialmente, de acordo com o número de possíveis valores das variáveis ou de acordo com o número de nodos parentes, tornado-as computacionalmente inviável.  Redes bayesianas para usos em jogos devem ser simples.
  • 50. Neural Networks Em termos intuitivos, Redes Neurais Artificiais (RNAs) são modelos matemáticos inspirados nos princípios de funcionamento dos neurônios biológicos e na estrutura do cérebro. Estes modelos têm capacidade de adquirir, armazenar e utilizar conhecimento experimental. Buscam simular computacionalmente habilidades humanas tais como aprendizado, generalização, associação e abstração.
  • 51. Neural Networks ESTRUTURA DE UMA REDE NEURAL camada de entrada: em que as unidades recebem os padrões. a camada intermediária: onde é feito processamento e a extração de características. camada de saída: que conclui e apresenta o resultado final. Quanto maior o número de camadas, melhor a capacidade de aprendizado.
  • 52. Neural Networks Aprendizagem de Estruturas de Redes Neurais Existem, basicamente, 3 tipos de aprendizado nas redes neurais artificiais: Supervisionado: neste tipo, a rede neural recebe um conjunto de entradas padronizados e seus correspondentes padrões de saída, onde ocorrem ajustes nos pesos sinápticos até que o erro entre os padrões de saída gerados pela rede tenham um valor desejado; Não-supervisionado: neste tipo, a rede neural trabalha os dados de forma a determinar algumas propriedades dos conjunto de dados. A partir destas propriedades é que o aprendizado é constituído; Híbrido: neste tipo ocorre uma "mistura" dos tipos supervisionado e não- supervisionado. Assim, uma camada pode trabalhar com um tipo enquanto outra camada trabalha com o outro tipo.
  • 53. Neural Networks Aplicações para Redes Neurais em Jogos Na área de jogos e de sistemas de realidade virtual, as redes neurais apresentam como característica principal a capacidade de capturar comportamentos e predisposições em determinados padrões.
  • 54. GeneticAlgorithms •A idéia do desenvolvimento dos algoritmos genéticos partiu dos conhecimentos da biologia, através da teoria da evolução de Darwin, daí a denominação desta abordagem de evolutiva; •Nesta técnica, diversos indivíduos diferentes são gerados aleatoriamente e somente os mais adaptados sobrevivem. O fundamento básico desta técnica é criar indivíduos, pontuá-los de acordo com suas ações e, após isso, escolher os mais aptos e fazer um “cruzamento”, gerando assim novos indivíduos possivelmente mais adaptados.
  • 55. GeneticAlgorithms Vantagens dos Algoritmos Genéticos Uma de suas vantagens é a simplificação que permite na formulação e solução de problemas otimização. Algoritmos genéticos normalmente com descrições de entradas formadas por cadeias de bits de tamanho fixo. Eles possuem um paralelismo implícito decorrente da avaliação independente de cada uma dessas cadeias de bits, ou seja, pode-se avaliar paralelamente a viabilidade de um conjunto de parâmetros para a solução do problema de otimização em questão.
  • 56. GeneticAlgorithms Algoritmos Genéticos x Mundo Real A idéia por trás do algoritmo genético consiste em gerar, através de regras específicas, um grande número de cromossomos (indivíduos), população, de forma a promover uma varredura tão extensa quanto necessária do espaço de soluções. Vale salientar que cada cromossomo corresponde a um ponto no espaço de soluções do problema de otimização.
  • 57. GeneticAlgorithms O Algoritmo dos algoritmos genéticos Observa-se que cada iteração do algoritmo genético corresponde à aplicação de um conjunto de quatro operações básicas: cálculo de aptidão (fitness evaluation), seleção (selection), cruzamento (crossover) e mutação (mutation). Ao fim destas operações cria-se uma nova população, chamada de geração (generation) que, espera-se, representa uma melhor aproximação da solução (best solution) do problema de otimização que a população anterior. A população inicial é gerada atribuindo-se aleatoriamente valores aos genes (pense um gene como um repositório que armazena algo) de cada cromossomo. A aptidão bruta de um indivíduo da população é medida por uma função de erro, também chamada de função objetivo (fitness function) do problema de otimização. A aptidão bruta é em seguida normalizada (aptidão normalizada), para permitir um melhor controle do processo de seleção. Como critérios de parada do algoritmo em geral são usados a aptidão do melhor indivíduo em conjunto com a limitação do número de gerações. Outros critérios podem envolver, por exemplo, um erro abaixo de um valor especificado pelo projetista para um determinado parâmetro do problema.
  • 58. GeneticAlgorithms Algoritmos Genéticos em Jogos Interessante em situações onde Os “melhores” irão não é possível prever o sobreviver comportamento do jogador; Exemplo: Multiplayer RPG É difícil criar NPCs para todas as situações; O jogador escolhe seu personagem: cavaleiro, Os NPCs se adaptam ao longo do mágico, etc jogo; O NPC tem que se adaptar Inicia-se com uma população aleatória; para enfrentar o adversário
  • 59. Pac-Man Chasing and Evading Pathfinding Finite State Machine
  • 60. SilvesterMob PONTOS ENTIDADE CARDEAIS •O que é; Campo, Planície, Conceitos LIMITE CLASSE E •Proposta; Pântano e Geográficos LIMIAR Floresta •Objetivo. DENSIDADE E INTENSIDADE
  • 61. Características do SilvesterMob Pântano Floresta •Mapa com quatro áreas geográficas; •NPCs inteligentes; •Salvar jogo; •Itens, Inimigos e Sistema de Batalha. Campo Planície
  • 62. Desafios do SilvesterMob •"Desculpe, mas você não pode entrar no Pântano sem botas."; •"Vi um par de botas na Planície. Siga na direção noroeste"; •"Existe uma espada na direção sudeste, no limite do rio"; •"Em que área existe uma densidade de árvores muito grande?"
  • 63. Desenvolvimento do SilvesterMob CLASSES DO JOGO Diagrama de Classes
  • 64. Desenvolvimento do SilvesterMob INTELIGÊNCIA ARTIFICIAL Máquinas de Estados
  • 65. Resultados do SilvesterMob INVENTÁRIO ÁREAS DO JOGO
  • 66. Resultados do SilvesterMob CASA 1 DO CAMPO VENDA DE ITENS
  • 67. Resultados do SilvesterMob CASA 2 DO CAMPO COMPRA DE ITENS
  • 68. SilvesterPEC
  • 69. Linha do Tempo de IA em Jogos
  • 70. Black & White (1 e 2)
  • 71. Spore
  • 72. The Sims 3
  • 73. The Sims 3
  • 74. GTA IV
  • 75. Referências (BOURG, 2004) Bourg, David. Seemann, Glenn. AI For Game Developers. O’REILLY. 2004. (SCHWAB, 2004) SCHWAB, Brian. AI Game Engine Programming. Hingham: Charles River Media. 2004.