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.
4. 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.
5. 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.
6. Principais Técnicas
• Cheating; • Rules-based AI Systems;
• Finite State Machines; • A-Life techniques;
• Fuzzy Logic; • Entre outras.
•Pathfinding;
7. 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.
8.
9. 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.
14. 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.
17. 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?
26. 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.
29. 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;
36. 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
38. 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.
39. 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.
40. 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.
41. Fuzzy Logic
Segunda etapa (Exemplo):
Variáveis de saída (ações): fugir, atacar ou fazer nada.
Algumas possíveis regras:
Output gerado:
42. 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:
43. 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.
44. Rule-BasedAI
Exemplo: descobrir árvore tecnológica de um oponente em um jogo de
estratégia.
Árvore tecnológica:
45. 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.
46. 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.
47. 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:
49. 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:
50. 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.
51. 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.
52. 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.
53. 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.
54. 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.
55. 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.
56. 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.
57. 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.
58. 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.
59. 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.
60. 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
61.
62. Pac-Man
Chasing and
Evading
Pathfinding
Finite State
Machine
63. 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
64. 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
65. 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?"
82. 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.