Você está na página 1de 82

UNIVERSIDADE FEDERAL DA PARABA CENTRO DE CINCIAS EXATAS E DA NATUREZA Grupo: Bruno Marinho Erisvaldo Jnior Josemar Barrto Professora:

Natasha Queiroz

Objetivo
Introduzir e demonstrar as principais tcnicas de IA aplicadas em jogos acadmicos e comerciais.

ROTEIRO
Introduo Tcnicas de IA para jogos Exemplos Prticos

O Estado da Arte
Consideraes Finais

Inteligncia Artificial em Jogos


Existem diversas interpretaes para o que considerada IA nos jogos eletrnicos.
Utilizaremos uma definio ampla, considerando a Game AI uma "weak AI". Pela nossa definio, qualquer tcnica que fornea a iluso de inteligncia em um nvel apropriado, tornando o jogo mais imersivo, desafiador e divertido, ser considerado Game AI.

Determinstica X No-Determinstica

Principais Tcnicas

O Futuro

Determnistica
Tcnicas fceis de implementar,

X No-Determinstica
Tcnicas difceis de implementar,

entender e testar;
Rpidas, quando comparadas s

entender e testar;
Lentas, quando comparadas s

tcnicas no-determinsticas;
Previsveis. Com o passar do

tcnicas no-determinsticas;
Imprevisveis. O comportamento

tempo, o jogador capaz de prever com exatido o comportamento do NPC, diminuindo a diverso e longevidade do jogo.

do NPC pode variar de acordo com as aes do jogador, aumentando a diverso e longevidade do jogo.

Principais Tcnicas
Cheating; Finite State Machines; Fuzzy Logic; Pathfinding; Rules-based AI Systems; A-Life techniques; Entre outras.

O Futuro
O prximo grande passo em IA Alguns

para jogos o APRENDIZADO;


Uso cada vez mais intensivo de IA

no-determinstica;
Foco maior na inteligncia dos

jogos, j que a mesma no vem acompanhando a notria evoluo nos grficos.

jogos comerciais, nos ltimos anos, destacaram-se por uso de IA no-determinstica, marcando um novo patamar na IA dos jogos eletrnicos, tais como: Creatures, Black & White, Battlecruiser 3000AD, Dirt Track Racing, Fields of Battle e Heavy Gear.

Chasing and Evading


O

problema de Chasing and Evading se divide em duas partes: primeiro, define-se qual dos dois se deve fazer. Segundo, executa-se o algoritmo responsvel pelo movimento;
Pode-se adicionar uma terceira

Existem diversas formas de implementar Chasing/Evading, da mais simples at a mais complexa;

parte no problema, que o desvio de obstculos;


Agora, focaremos na segunda parte

Uma tcnica de Chasing/Evading pode ser implementada em um mundo contnuo ou em um mundo tile-based, pouco diferindo no cdigo;

do problema, que efetuar, de fato, a perseguio ou fuga.

Dependendo da necessidade do jogo, escolhe-se a forma mais simples possvel que possa atender aquela situao especfica.

Chasing and Evading

Chasing and Evading

Chasing and Evading

Chasing and Evading

Pattern Movement
Muito

utilizado para simular movimentaes complexas dos NPCs, mas que na verdade so prdeterminadas;
A movimentao do NPC ocorre

Arrays de coordenadas podem ser utilizados para definir as posies-chave do movimento;

segundo um determinado padro previamente definido;


Utilizado na maioria dos jogos,

Vrios padres podem ser carregados em situaes diferentes, fazendo com que a movimentao fique variada e parea de grande complexidade;

dos mais complexos;

simples

aos

mais

Pelo fato de ser uma tcnica determinstica, pode se tornar previsvel, diminuindo a diverso e longevidade do jogo.

Pattern Movement

Pattern Movement

Basic Pathfinding andWaypoints


Existem

diversas tcnicas de Pathfinding e a utilizao de uma delas depende de uma srie de fatores, tais como:

O destino esttico ou

mvel? Existem obstculos no caminho? Se existem obstculos, esses obstculos so mveis? Como o terreno? O caminho mais curto sempre a melhor soluo?

Para a maior parte dos problemas de Pathfinding, existe um algoritmo bastante conhecido, chamado A*;

Em alguns casos, principalmente nos mais simples, o A* no a melhor escolha. Esses casos sero 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 de programao extremamente simples que so utilizadas para moldar tarefas especficas do jogo;
Podem

Os scripts podem ser lidos e executados quando o jogo for iniciado ou durante o prprio jogo, quando um determinado evento acionado;

ser utilizadas pelos desenvolvedores no momento da produo do jogo bem como por jogadores aps o jogo ter sido lanado, visando a sua expanso;
Pode utilizar uma linguagem de script

Com os scripts, pode-se alterar atributos, comportamentos e respostas dos NPCs, bem como lidar com eventos do jogo;

apropriada, como Lua ou Python, ou ter uma sintaxe especfica para o jogo;

O jogo se torna extremamente expansvel e manutenvel, podendo ser alterado significativamente sem necessidade de se desenvolver uma nova verso.

Scripted AI and Scripting Engines

Scripted AI and Scripting Engines

FiniteState Machines
Mquinas de Estados Finitos so

estruturas lgicas compostas por um conjunto de estados e um conjunto de regras de transio entre esses estados;
No caso dos jogos, so bastante

utilizadas para efetuar o controle do comportamento de agentes inteligentes;


Os dados de entrada e sada, nesse

caso, so eventos e outros sinais importantes do jogo;

FiniteState Machines

FiniteState Machines

FiniteState Machines

FiniteState Machines
Substituindo o estado Atacando um Inimigo pelos estados Procurando Posio de Ataque, Desferindo Golpe e Esquivando.

FiniteState Machines

FiniteState Machines

Fuzzy Logic
A essncia da lgica difusa que tudo uma questo de nveis - Lofti

Zadeh, criador da teoria dos conjuntos difusos.


A lgica difusa procura estender a lgica booleana, aplicando ela nveis de verdade. Ao invs de 0 ou 1, verdadeiro ou falso, a lgica difusa afirma que tudo verdade, no seu respectivo nvel. Sistemas baseados em regras difusas requerem de 50% a 80% menos regras

do que sistemas baseados em regras tradicionais para efetuarem as mesmas tarefas. - Timothy Masters

Aplicaes em jogos: Navegao de unidades atravs de obstculos, waypoints, etc. Controle de deciso.

Fuzzy Logic

Etapas do processo de inferncia de lgica difusa.

Fuzzy Logic

Primeira etapa (fuzzification):

Mapear os inputs com valores reais para inputs fuzzy, usando funes de associao. Exemplo: uma funo de associao para o peso de uma pessoa.

Fuzzy Logic

Segunda etapa:

De posse dos inputs fuzzy, pode-se produzir algum output ou concluso combinando certas regras (fuzzy rules). Uso de axiomas fuzzy:

As regras geram nveis de verdade para cada conjunto de outputs.

Fuzzy Logic

Segunda etapa (Exemplo):


Criatura de um jogo decide se deve atacar um jogador: Variveis de entrada: distncia, sade da criatura e ranking do jogador.

Fuzzy Logic

Segunda etapa (Exemplo):


Variveis de sada (aes): fugir, atacar ou fazer nada. Algumas possveis regras:

Output gerado:

Fuzzy Logic

Terceira etapa (defuzzification):

Necessria quando se exige um resultado real de um processamento fuzzy. Mtodo simples: atribuir valores s variveis de sada e calcular a mdia ponderada. Exemplo anterior: valor -10 para fugir, 1 para fazer nada e 10 para atacar. Resultado:

Rule-BasedAI

Sistemas baseados em regras consiste em um conjunto de regras if-then que so usadas para fazer inferncias e tomar decises. Possuem dois componentes:

Memria de trabalho;

Armazena fatos ou assertivas feitas pelas regras. Contm regras if-then que operam sobre os fatos armazenados na memria de trabalho.

Memria de regras ou simplesmente regras.

Rule-BasedAI

Exemplo: descobrir rvore tecnolgica de um oponente em um jogo de estratgia. rvore tecnolgica:

Rule-BasedAI

Inferncia pode ser de dois tipos:

Encadeamento para a frente (Forward chaining):

Fase 1: casamento de regras aos fatos atuais. Fase 2: resoluo de conflitos de regras. Fase 3: executar a regra.
Ao invs 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 difcil implementao.

Encadeamento para trs (Backward chaining):


Basic Probability

Usado para diversos fins em jogos:


Inserir aleatoriedade; Calcular probabilidades de acerto, etc; Definir habilidades de personagens; Inserir probabilidades em transies de estado; Adaptabilidade e tomada de decises.

Basic Probability

Dado um evento E que possa ocorrer de n maneiras dentro de um experimento que possui N resultados possveis (espao amostral N), define-se a probabilidade de E como: P(E) = n/N

Propriedades:

0 <= P(A) <= 1; Se A o espao amostral, ento P(A) = 1; P(A') = 1 P(A); Se A e B so mutuamente exclusivos, P(A U B) = P(A) + P(B); Se A e B no so mutuamente exclusivos, Probabilidade condicional: Frmula de Bayes:

Bayesian Networks

Grafos cujos nodos representam variveis aleatrias e cujos elos representam relaes causais entre essas variveis. Exemplo:

Bayesian Networks

Exemplo de inferncia usando rede bayesiana (NPC decidir se abre um ba em procura de tesouro, dado que ele pode estar ou no fechado e/ou com armadilha):
P(armadilha) Verdadeiro Falso PT 1 - PT Rede Bayesiana Armadilha verdadeiro falso P(fechado | armadilha) Verdadeiro PLt PLf Falso 1 - PLt 1 - PLf

Usando a Frmula de Bayes, tem-se que:

Bayesian Networks

Exemplo de inferncia usando rede bayesiana (NPC decidir se abre um ba em procura de tesouro, dado que ele pode estar ou no fechado e/ou com armadilha):

Digamos que um NPC tenha experimentado abrir 100 bas e obteve os seguintes resultados: 37 bas tinham armadilhas. Destes, 29 estavam fechados. Dos 63 bas que no tinham armadilhas, 18 estavam fechados. Temos ento as seguintes probabilidades:

Ento, se um NPC notar que o ba est fechado, temos a seguinte probabilidade de que este ba contenha uma armadilha: A inferncia estatstica melhora o palpite do NPC, simulando uma aprendizagem.

Bayesian Networks

As tabelas de probabilidade crescem exponencialmente, de acordo com o nmero de possveis valores das variveis ou de acordo com o nmero de nodos parentes, tornado-as computacionalmente invivel.

Redes bayesianas para usos em jogos devem ser simples.

Neural Networks
Em termos intuitivos, Redes Neurais Artificiais (RNAs) so modelos matemticos inspirados nos princpios de funcionamento dos neurnios biolgicos e na estrutura do crebro. Estes modelos tm capacidade de adquirir, armazenar e utilizar conhecimento experimental. Buscam simular computacionalmente habilidades humanas tais como aprendizado, generalizao, associao e abstrao.

Neural Networks
ESTRUTURA DE UMA REDE NEURAL camada de entrada: em que as unidades recebem os padres. a camada intermediria: onde feito processamento e a extrao de caractersticas. camada de sada: que conclui e apresenta o resultado final. Quanto maior o nmero de camadas, melhor a capacidade de aprendizado.

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 padres de sada, onde ocorrem ajustes nos pesos sinpticos at que o erro entre os padres de sada gerados pela rede tenham um valor desejado; No-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 constitudo; Hbrido: neste tipo ocorre uma "mistura" dos tipos supervisionado e nosupervisionado. Assim, uma camada pode trabalhar com um tipo enquanto outra camada trabalha com o outro tipo.

Neural Networks
Aplicaes para Redes Neurais em Jogos

Na rea de jogos e de sistemas de realidade virtual, as redes neurais apresentam como caracterstica principal a capacidade de capturar comportamentos e predisposies em determinados padres.

GeneticAlgorithms
A idia do desenvolvimento dos algoritmos genticos

partiu dos conhecimentos da biologia, atravs da teoria da evoluo de Darwin, da a denominao desta abordagem de evolutiva; Nesta tcnica, diversos indivduos diferentes so gerados aleatoriamente e somente os mais adaptados sobrevivem. O fundamento bsico desta tcnica criar indivduos, pontu-los de acordo com suas aes e, aps isso, escolher os mais aptos e fazer um cruzamento, gerando assim novos indivduos possivelmente mais adaptados.

GeneticAlgorithms
Vantagens dos Algoritmos Genticos
Uma de suas vantagens a simplificao que permite na formulao e soluo de problemas otimizao. Algoritmos genticos normalmente com descries de entradas formadas por cadeias de bits de tamanho fixo. Eles possuem um paralelismo implcito decorrente da avaliao independente de cada uma dessas cadeias de bits, ou seja, pode-se avaliar paralelamente a viabilidade de um conjunto de parmetros para a soluo do problema de otimizao em questo.

GeneticAlgorithms
Algoritmos Genticos x Mundo Real
A idia por trs do algoritmo gentico consiste em gerar, atravs de regras especficas, um grande nmero de cromossomos (indivduos), populao, de forma a promover uma varredura to extensa quanto necessria do espao de solues. Vale salientar que cada cromossomo corresponde a um ponto no espao de solues do problema de otimizao.

GeneticAlgorithms
O Algoritmo dos algoritmos genticos
Observa-se que cada iterao do algoritmo gentico corresponde aplicao de um conjunto de quatro operaes bsicas: clculo de aptido (fitness evaluation), seleo (selection), cruzamento (crossover) e mutao (mutation). Ao fim destas operaes cria-se uma nova populao, chamada de gerao (generation) que, espera-se, representa uma melhor aproximao da soluo (best solution) do problema de otimizao que a populao anterior. A populao inicial gerada atribuindo-se aleatoriamente valores aos genes (pense um gene como um repositrio que armazena algo) de cada cromossomo. A aptido bruta de um indivduo da populao medida por uma funo de erro, tambm chamada de funo objetivo (fitness function) do problema de otimizao.

A aptido bruta em seguida normalizada (aptido normalizada), para permitir um melhor controle do processo de seleo. Como critrios de parada do algoritmo em geral so usados a aptido do melhor indivduo em conjunto com a limitao do nmero de geraes. Outros critrios podem envolver, por exemplo, um erro abaixo de um valor especificado pelo projetista para um determinado parmetro do problema.

GeneticAlgorithms
Algoritmos Genticos em Jogos
Interessante em situaes onde no possvel prever o comportamento do jogador;
difcil criar NPCs para todas as situaes; Os NPCs se adaptam ao longo do jogo; Inicia-se com uma populao aleatria;

Os melhores iro sobreviver Exemplo: Multiplayer RPG O jogador escolhe seu personagem: cavaleiro, mgico, etc
O NPC tem que se adaptar para enfrentar o adversrio

Pac-Man
Chasing and Evading Pathfinding

Finite State Machine

SilvesterMob
O que ;
Campo,

PONTOS ENTIDADE CARDEAIS

Proposta;
Objetivo.

Plancie, CLASSE Pntano e Floresta

Conceitos Geogrficos

LIMITE E LIMIAR

DENSIDADE E INTENSIDADE

Caractersticas do SilvesterMob
Pntano Floresta

Mapa

com quatro reas geogrficas; NPCs inteligentes; Salvar jogo; Itens, Inimigos e Sistema de Batalha.
Campo Plancie

Desafios do SilvesterMob
"Desculpe, mas voc no pode

entrar no Pntano sem botas.";


"Vi um par de botas na Plancie.

Siga na direo noroeste";


"Existe uma espada na direo

sudeste, no limite do rio";


"Em que rea existe uma

densidade de rvores muito grande?"

Desenvolvimento do SilvesterMob
CLASSES DO JOGO

Diagrama de Classes

Desenvolvimento do SilvesterMob
INTELIGNCIA ARTIFICIAL

Mquinas de Estados

Resultados do SilvesterMob
INVENTRIO REAS DO JOGO

Resultados do SilvesterMob
CASA 1 DO CAMPO VENDA DE ITENS

Resultados do SilvesterMob
CASA 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

Referncias

(BOURG, 2004) Bourg, David. Seemann, Glenn. AI For Game Developers. OREILLY. 2004.
(SCHWAB, 2004) SCHWAB, Brian. AI Game Engine Programming. Hingham: Charles River Media. 2004.

Você também pode gostar