Inteligência Artificial em Jogos Eletrônicos

Post on 11-Jun-2015

8.121 views 0 download

description

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

Transcript of 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

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

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

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.

Principais Técnicas

• Cheating;

• Finite State Machines;

• Fuzzy Logic;

•Pathfinding;

• Rules-based AI Systems;

• A-Life techniques;

• Entre outras.

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.

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.

Chasing and Evading

Chasing and Evading

Chasing and Evading

Chasing and Evading

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.

Pattern Movement

Pattern Movement

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.

Basic Pathfinding andWaypoints

Basic Pathfinding andWaypoints

Basic Pathfinding andWaypoints

Basic Pathfinding andWaypoints

Basic Pathfinding andWaypoints

Basic Pathfinding andWaypoints

Basic Pathfinding andWaypoints

Basic Pathfinding andWaypoints

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.

Scripted AI and Scripting Engines

Scripted AI and Scripting Engines

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;

FiniteState Machines

FiniteState Machines

FiniteState Machines

FiniteState Machines

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

FiniteState Machines

FiniteState Machines

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.

Fuzzy Logic

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

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.

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.

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.

Fuzzy Logic Segunda etapa (Exemplo):

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

Algumas possíveis regras:

Output gerado:

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:

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.

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

estratégia.

Árvore tecnológica:

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.

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.

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:

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

relações causais entre essas variáveis.

Exemplo:

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

Pac-Man

Chasing andEvading

Finite StateMachine

Pathfinding

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

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

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?"

Desenvolvimento do SilvesterMob

Diagrama de Classes

CLASSES DO JOGO

Desenvolvimento do SilvesterMob

Máquinas de Estados

INTELIGÊNCIA ARTIFICIAL

Resultados do SilvesterMobINVENTÁRIO ÁREAS DO JOGO

Resultados do SilvesterMobCASA 1 DO CAMPO VENDA DE ITENS

Resultados do SilvesterMobCASA 2 DO CAMPO COMPRA DE ITENS

SilvesterPEC

Linha do Tempo de IA em Jogos

Black & White (1 e 2)

Spore

The Sims 3

The Sims 3

GTA IV

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.