inteligência artificial em jogos eletrônicos

82
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

Upload: erisvaldo-junior

Post on 11-Jun-2015

8.121 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Inteligência Artificial em Jogos Eletrônicos

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

Page 2: Inteligência Artificial em Jogos Eletrônicos

Objetivo ROTEIRO

Introduzir e demonstrar

as principais técnicas de

IA aplicadas em jogos

acadêmicos e comerciais.

Introdução

Técnicas de IA para jogos

Exemplos Práticos

Considerações Finais

O Estado da Arte

Page 3: Inteligência Artificial em Jogos Eletrônicos
Page 4: Inteligência Artificial em Jogos Eletrônicos

Inteligência Artificial em JogosExistem diversas interpretaçõespara o que é considerada IA nosjogos eletrônicos.

Utilizaremos uma definição ampla,considerando a Game AI uma"weak AI".

Pela nossa definição, qualquertécnica que forneça a ilusão deinteligência em um nívelapropriado, tornando o jogo maisimersivo, desafiador e divertido,será considerado Game AI.

Determinística X Não-Determinística

Principais Técnicas

O Futuro

Page 5: Inteligência Artificial em Jogos Eletrônicos

Determínistica X Não-Determinística

• Técnicas fáceis de implementar,

entender e testar;

• Rápidas, quando comparadas às

técnicas não-determinísticas;

• Previsíveis. Com o passar do

tempo, o jogador é capaz de prever

com exatidão o comportamento

do NPC, diminuindo a diversão e

longevidade do jogo.

• Técnicas difíceis de implementar,

entender e testar;

• Lentas, quando comparadas às

técnicas não-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.

Page 6: Inteligência Artificial em Jogos Eletrônicos

Principais Técnicas

• Cheating;

• Finite State Machines;

• Fuzzy Logic;

•Pathfinding;

• Rules-based AI Systems;

• A-Life techniques;

• Entre outras.

Page 7: Inteligência Artificial em Jogos Eletrônicos

O Futuro

• O próximo grande passo em IA

para jogos é o APRENDIZADO;

• Uso cada vez mais intensivo de IA

não-determinística;

• Foco maior na inteligência dos

jogos, já que a mesma não vem

acompanhando a notória evolução

nos gráficos.

• Alguns jogos comerciais, nos

últimos anos, destacaram-se por

uso de IA não-determinística,

marcando um novo patamar na IA

dos jogos eletrônicos, tais como:

Creatures, Black & White,

Battlecruiser 3000AD, Dirt Track

Racing, Fields of Battle e Heavy

Gear.

Page 8: Inteligência Artificial em Jogos Eletrônicos
Page 9: Inteligência Artificial em Jogos Eletrônicos

Chasing and Evading

• O problema de Chasing andEvading se divide em duas partes:primeiro, define-se qual dos dois sedeve fazer. Segundo, executa-se oalgoritmo responsável pelomovimento;

• Pode-se adicionar uma terceiraparte no problema, que é o desvio deobstáculos;

• Agora, focaremos na segunda partedo problema, que é efetuar, de fato,a perseguição ou fuga.

• Existem diversas formas de implementar

Chasing/Evading, da mais simples até a

mais complexa;

•Uma técnica de Chasing/Evading pode ser

implementada em um mundo contínuo ou

em um mundo tile-based, pouco diferindo

no código;

• Dependendo da necessidade do jogo,

escolhe-se a forma mais simples possível

que possa atender aquela situação

específica.

Page 10: Inteligência Artificial em Jogos Eletrônicos

Chasing and Evading

Page 11: Inteligência Artificial em Jogos Eletrônicos

Chasing and Evading

Page 12: Inteligência Artificial em Jogos Eletrônicos

Chasing and Evading

Page 13: Inteligência Artificial em Jogos Eletrônicos

Chasing and Evading

Page 14: Inteligência Artificial em Jogos Eletrônicos

Pattern Movement

• Muito utilizado para simularmovimentações complexas dosNPCs, mas que na verdade são pré-determinadas;

• A movimentação do NPC ocorresegundo um determinado padrãopreviamente definido;

• Utilizado na maioria dos jogos,dos mais simples aos maiscomplexos;

• Arrays de coordenadas podem ser

utilizados para definir as posições-chave do

movimento;

•Vários padrões podem ser carregados em

situações diferentes, fazendo com que a

movimentação fique variada e pareça de

grande complexidade;

• Pelo fato de ser uma técnica

determinística, pode se tornar previsível,

diminuindo a diversão e longevidade do

jogo.

Page 15: Inteligência Artificial em Jogos Eletrônicos

Pattern Movement

Page 16: Inteligência Artificial em Jogos Eletrônicos

Pattern Movement

Page 17: Inteligência Artificial em Jogos Eletrônicos

Basic Pathfinding andWaypoints

• Existem diversas técnicas dePathfinding e a utilização de uma delasdepende de uma série de fatores, taiscomo:

• O destino é estático oumóvel?

• Existem obstáculos nocaminho?

• Se existem obstáculos,esses obstáculos sãomóveis?

• Como é o terreno?

• O caminho mais curto ésempre a melhor solução?

• Para a maior parte dos problemas de

Pathfinding, existe um algoritmo

bastante conhecido, chamado A*;

•Em alguns casos, principalmente nos

mais simples, o A* não é a melhor

escolha. Esses casos serão abordados a

seguir.

Page 18: Inteligência Artificial em Jogos Eletrônicos

Basic Pathfinding andWaypoints

Page 19: Inteligência Artificial em Jogos Eletrônicos

Basic Pathfinding andWaypoints

Page 20: Inteligência Artificial em Jogos Eletrônicos

Basic Pathfinding andWaypoints

Page 21: Inteligência Artificial em Jogos Eletrônicos

Basic Pathfinding andWaypoints

Page 22: Inteligência Artificial em Jogos Eletrônicos

Basic Pathfinding andWaypoints

Page 23: Inteligência Artificial em Jogos Eletrônicos

Basic Pathfinding andWaypoints

Page 24: Inteligência Artificial em Jogos Eletrônicos

Basic Pathfinding andWaypoints

Page 25: Inteligência Artificial em Jogos Eletrônicos

Basic Pathfinding andWaypoints

Page 26: Inteligência Artificial em Jogos Eletrônicos

Scripted AI and Scripting Engines

• Tratam-se de linguagens deprogramação extremamente simples quesão utilizadas para moldar tarefasespecíficas do jogo;

• Podem ser utilizadas pelosdesenvolvedores no momento daprodução do jogo bem como porjogadores após o jogo ter sido lançado,visando a sua expansão;

• Pode utilizar uma linguagem de scriptapropriada, como Lua ou Python, ou teruma sintaxe específica para o jogo;

• Os scripts podem ser lidos e executados

quando o jogo for iniciado ou durante o

próprio jogo, quando um determinado

evento é acionado;

•Com os scripts, pode-se alterar atributos,

comportamentos e respostas dos NPCs,

bem como lidar com eventos do jogo;

•O jogo se torna extremamente expansível

e manutenível, podendo ser alterado

significativamente sem necessidade de se

desenvolver uma nova versão.

Page 27: Inteligência Artificial em Jogos Eletrônicos

Scripted AI and Scripting Engines

Page 28: Inteligência Artificial em Jogos Eletrônicos

Scripted AI and Scripting Engines

Page 29: Inteligência Artificial em Jogos Eletrônicos

FiniteState Machines

• Máquinas de Estados Finitos sãoestruturas lógicas compostas por umconjunto de estados e um conjuntode regras de transição entre essesestados;

• No caso dos jogos, são bastanteutilizadas para efetuar o controle docomportamento de agentesinteligentes;

• Os dados de entrada e saída, nessecaso, são eventos e outros sinaisimportantes do jogo;

Page 30: Inteligência Artificial em Jogos Eletrônicos

FiniteState Machines

Page 31: Inteligência Artificial em Jogos Eletrônicos

FiniteState Machines

Page 32: Inteligência Artificial em Jogos Eletrônicos

FiniteState Machines

Page 33: Inteligência Artificial em Jogos Eletrônicos

FiniteState Machines

Substituindo o estado “Atacando um Inimigo” pelos estados “Procurando Posição de Ataque”, “Desferindo Golpe” e “Esquivando”.

Page 34: Inteligência Artificial em Jogos Eletrônicos

FiniteState Machines

Page 35: Inteligência Artificial em Jogos Eletrônicos

FiniteState Machines

Page 36: Inteligência Artificial em Jogos Eletrônicos

Fuzzy Logic

• “A essência da lógica difusa é quetudo é uma questão de níveis” - LoftiZadeh, criador da teoria dos conjuntosdifusos.

•A lógica difusa procura estender alógica booleana, aplicando à ela níveisde verdade.

•Ao invés de 0 ou 1, verdadeiro oufalso, a lógica difusa afirma quetudo é verdade, no seu respectivonível.

•“Sistemas baseados em regras difusasrequerem de 50% a 80% menos regrasdo que sistemas baseados em regrastradicionais para efetuarem as mesmastarefas.” - Timothy Masters

Aplicações emjogos: Navegação de

unidades atravésde obstáculos,waypoints, etc.

Controle dedecisão.

Page 37: Inteligência Artificial em Jogos Eletrônicos

Fuzzy Logic

Etapas do processo de inferência de lógica difusa.

Page 38: Inteligência Artificial em Jogos Eletrônicos

Fuzzy Logic Primeira etapa (fuzzification):

Mapear os inputs com valores reais para inputs fuzzy, usandofunções de associação.

Exemplo: uma função de associação para o peso de umapessoa.

Page 39: Inteligência Artificial em Jogos Eletrônicos

Fuzzy Logic

Segunda etapa:

De posse dos inputs fuzzy, pode-se produzir algum output ouconclusão combinando certas regras (fuzzy rules).

Uso de axiomas fuzzy:

As regras geram níveis de verdade para cada conjunto deoutputs.

Page 40: Inteligência Artificial em Jogos Eletrônicos

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 dojogador.

Page 41: Inteligência Artificial em Jogos Eletrônicos

Fuzzy Logic Segunda etapa (Exemplo):

Variáveis de saída (ações): fugir, atacar ou fazer nada.

Algumas possíveis regras:

Output gerado:

Page 42: Inteligência Artificial em Jogos Eletrônicos

Fuzzy Logic Terceira etapa (defuzzification):

Necessária quando se exige um resultado real de umprocessamento fuzzy.

Método simples: atribuir valores às variáveis de saída e calculara média ponderada.

Exemplo anterior: valor -10 para fugir, 1 para fazer nada e 10para atacar.

Resultado:

Page 43: Inteligência Artificial em Jogos Eletrônicos

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.

Page 44: Inteligência Artificial em Jogos Eletrônicos

Rule-BasedAI Exemplo: descobrir árvore tecnológica de um oponente em um jogo de

estratégia.

Árvore tecnológica:

Page 45: Inteligência Artificial em Jogos Eletrônicos

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.

Page 46: Inteligência Artificial em Jogos Eletrônicos

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.

Page 47: Inteligência Artificial em Jogos Eletrônicos

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 probabilidadede 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:

Page 48: Inteligência Artificial em Jogos Eletrônicos

Bayesian Networks Grafos cujos nodos representam variáveis aleatórias e cujos elos representam

relações causais entre essas variáveis.

Exemplo:

Page 49: Inteligência Artificial em Jogos Eletrônicos

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 comarmadilha):

Usando a Fórmula de Bayes, tem-se que:

Rede Bayesiana

P(armadilha)

Verdadeiro Falso

PT 1 - PT

P(fechado | armadilha)

Armadilha Verdadeiro Falso

verdadeiro PLt 1 - PLt

falso PLf 1 - PLf

Page 50: Inteligência Artificial em Jogos Eletrônicos

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 obteveos seguintes resultados: 37 baús tinham armadilhas. Destes, 29estavam fechados. Dos 63 baús que não tinham armadilhas, 18estavam fechados. Temos então as seguintes probabilidades:

Então, se um NPC notar que o baú está fechado, temos a seguinteprobabilidade de que este baú contenha uma armadilha:

A inferência estatística melhora o palpite do NPC, simulando umaaprendizagem.

Page 51: Inteligência Artificial em Jogos Eletrônicos

Bayesian Networks

As tabelas de probabilidade crescemexponencialmente, de acordo com o número depossíveis valores das variáveis ou de acordo com onúmero de nodos parentes, tornado-ascomputacionalmente inviável.

Redes bayesianas para usos em jogosdevem ser simples.

Page 52: Inteligência Artificial em Jogos Eletrônicos

Neural Networks

Em termos intuitivos, Redes Neurais Artificiais(RNAs) são modelos matemáticos inspirados nosprincípios de funcionamento dos neurôniosbiológicos e na estrutura do cérebro.

Estes modelos têm capacidade de adquirir,armazenar e utilizar conhecimento experimental.Buscam simular computacionalmente habilidadeshumanas tais como aprendizado, generalização,associação e abstração.

Page 53: Inteligência Artificial em Jogos Eletrônicos

Neural NetworksESTRUTURA DE UMA REDE NEURAL

camada de entrada: em que as unidades recebem os padrões.

a camada intermediária: onde é feito processamento e aextraçã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 deaprendizado.

Page 54: Inteligência Artificial em Jogos Eletrônicos

Neural Networks

Aprendizagem de Estruturas de Redes NeuraisExistem, basicamente, 3 tipos de aprendizado nas redes neurais artificiais:

Supervisionado: neste tipo, a rede neural recebe um conjunto de entradaspadronizados e seus correspondentes padrões de saída, onde ocorremajustes nos pesos sinápticos até que o erro entre os padrões de saídagerados pela rede tenham um valor desejado;

Não-supervisionado: neste tipo, a rede neural trabalha os dados de forma adeterminar algumas propriedades dos conjunto de dados. A partir destaspropriedades é 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 enquantooutra camada trabalha com o outro tipo.

Page 55: Inteligência Artificial em Jogos Eletrônicos

Neural Networks

Aplicações para Redes Neurais em Jogos

Na área de jogos e de sistemas derealidade virtual, as redes neuraisapresentam como característica principala capacidade de capturarcomportamentos e predisposições emdeterminados padrões.

Page 56: Inteligência Artificial em Jogos Eletrônicos

GeneticAlgorithms

•A idéia do desenvolvimento dos algoritmos genéticospartiu dos conhecimentos da biologia, através dateoria da evolução de Darwin, daí a denominaçãodesta abordagem de evolutiva;

•Nesta técnica, diversos indivíduos diferentes sãogerados aleatoriamente e somente os mais adaptadossobrevivem. O fundamento básico desta técnica é criarindiví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íduospossivelmente mais adaptados.

Page 57: Inteligência Artificial em Jogos Eletrônicos

GeneticAlgorithmsVantagens dos Algoritmos Genéticos

Uma de suas vantagens é a simplificação que permite naformulação e solução de problemas otimização. Algoritmosgenéticos normalmente com descrições de entradas formadaspor cadeias de bits de tamanho fixo.

Eles possuem um paralelismo implícito decorrente da avaliaçãoindependente de cada uma dessas cadeias de bits, ou seja,pode-se avaliar paralelamente a viabilidade de um conjunto deparâmetros para a solução do problema de otimização emquestão.

Page 58: Inteligência Artificial em Jogos Eletrônicos

GeneticAlgorithms

Algoritmos Genéticos x Mundo Real

A idéia por trás do algoritmogenético consiste em gerar,através de regras específicas, umgrande número de cromossomos(indivíduos), população, de formaa promover uma varredura tãoextensa quanto necessária doespaço de soluções. Valesalientar que cada cromossomocorresponde a um ponto noespaço de soluções do problemade otimização.

Page 59: Inteligência Artificial em Jogos Eletrônicos

GeneticAlgorithmsO Algoritmo dos algoritmos genéticos

A aptidão bruta é em seguida normalizada (aptidão normalizada), para permitirum melhor controle do processo de seleção. Como critérios de parada doalgoritmo em geral são usados a aptidão do melhor indivíduo em conjunto com alimitaçã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 determinadoparâmetro do problema.

Observa-se que cada iteração do algoritmogenético corresponde à aplicação de um conjunto dequatro operações básicas: cálculo de aptidão (fitnessevaluation), seleção (selection), cruzamento (crossover) emutação (mutation). Ao fim destas operações cria-seuma nova população, chamada de geração (generation)que, espera-se, representa uma melhor aproximação dasolução (best solution) do problema de otimização que apopulação anterior. A população inicial é geradaatribuindo-se aleatoriamente valores aos genes (penseum gene como um repositório que armazena algo) decada cromossomo. A aptidão bruta de um indivíduo dapopulação é medida por uma função de erro, tambémchamada de função objetivo (fitness function) doproblema de otimização.

Page 60: Inteligência Artificial em Jogos Eletrônicos

GeneticAlgorithms

Algoritmos Genéticos em JogosInteressante em situações onde não é possível prever o comportamento do jogador;

É difícil criar NPCs para todas as situações;

Os NPCs se adaptam ao longo do jogo;

Inicia-se com uma população aleatória;

Os “melhores” irão sobreviver

Exemplo: Multiplayer RPG

O jogador escolhe seu personagem: cavaleiro, mágico, etc

O NPC tem que se adaptar para enfrentar o adversário

Page 61: Inteligência Artificial em Jogos Eletrônicos
Page 62: Inteligência Artificial em Jogos Eletrônicos

Pac-Man

Chasing andEvading

Finite StateMachine

Pathfinding

Page 63: Inteligência Artificial em Jogos Eletrônicos

Conceitos Geográficos

ENTIDADE

LIMITE E

LIMIAR

DENSIDADE

E INTENSIDADE

CLASSE

•O que é;

•Proposta;

•Objetivo.

SilvesterMob PONTOS CARDEAIS

Campo,

Planície,

Pântano e

Floresta

Page 64: Inteligência Artificial em Jogos Eletrônicos

Características do SilvesterMob

•Mapa com quatroáreas geográficas;

•NPCs inteligentes;

•Salvar jogo;

•Itens, Inimigos eSistema de Batalha.

Pântano Floresta

Campo Planície

Page 65: Inteligência Artificial em Jogos Eletrônicos

Desafios do SilvesterMob

•"Desculpe, mas você não podeentrar no Pântano sem botas.";

•"Vi um par de botas na Planície.Siga na direção noroeste";

•"Existe uma espada na direçãosudeste, no limite do rio";

•"Em que área existe umadensidade de árvores muitogrande?"

Page 66: Inteligência Artificial em Jogos Eletrônicos

Desenvolvimento do SilvesterMob

Diagrama de Classes

CLASSES DO JOGO

Page 67: Inteligência Artificial em Jogos Eletrônicos
Page 68: Inteligência Artificial em Jogos Eletrônicos

Desenvolvimento do SilvesterMob

Máquinas de Estados

INTELIGÊNCIA ARTIFICIAL

Page 69: Inteligência Artificial em Jogos Eletrônicos

Resultados do SilvesterMobINVENTÁRIO ÁREAS DO JOGO

Page 70: Inteligência Artificial em Jogos Eletrônicos

Resultados do SilvesterMobCASA 1 DO CAMPO VENDA DE ITENS

Page 71: Inteligência Artificial em Jogos Eletrônicos

Resultados do SilvesterMobCASA 2 DO CAMPO COMPRA DE ITENS

Page 72: Inteligência Artificial em Jogos Eletrônicos

SilvesterPEC

Page 73: Inteligência Artificial em Jogos Eletrônicos
Page 74: Inteligência Artificial em Jogos Eletrônicos

Linha do Tempo de IA em Jogos

Page 75: Inteligência Artificial em Jogos Eletrônicos
Page 76: Inteligência Artificial em Jogos Eletrônicos

Black & White (1 e 2)

Page 77: Inteligência Artificial em Jogos Eletrônicos

Spore

Page 78: Inteligência Artificial em Jogos Eletrônicos

The Sims 3

Page 79: Inteligência Artificial em Jogos Eletrônicos

The Sims 3

Page 80: Inteligência Artificial em Jogos Eletrônicos

GTA IV

Page 81: Inteligência Artificial em Jogos Eletrônicos
Page 82: Inteligência Artificial em Jogos Eletrônicos

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.