Inteligência Artificial em Jogos Eletrônicos
-
Upload
erisvaldo-junior -
Category
Technology
-
view
8.113 -
download
0
description
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.