SlideShare uma empresa Scribd logo
1 de 82
Baixar para ler offline
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     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
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.
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.
Principais Técnicas
• Cheating;                     • Rules-based AI Systems;


• Finite State Machines;        • A-Life techniques;


• Fuzzy Logic;                  • Entre outras.


•Pathfinding;
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.
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.
Chasing and Evading
Chasing and Evading
Chasing and Evading
Chasing and Evading
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.
Pattern Movement
Pattern Movement
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?
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
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.
Scripted AI and Scripting Engines
Scripted AI and Scripting Engines
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;
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 é 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
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, usando
         funções de associação.
        Exemplo: uma função de associação para o peso de uma
         pessoa.
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.
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.
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 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:
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 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:
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 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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
Pac-Man
          Chasing and
            Evading

          Pathfinding



          Finite State
           Machine
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
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
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?"
Desenvolvimento do SilvesterMob
            CLASSES DO JOGO




            Diagrama de Classes
Desenvolvimento do SilvesterMob
          INTELIGÊNCIA ARTIFICIAL




            Máquinas de Estados
Resultados do SilvesterMob
     INVENTÁRIO         Á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
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.

Mais conteúdo relacionado

Mais procurados

Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...Potiguar Indie Games
 
Inteligência artificial algumas técnicas aplicadas em jogos
Inteligência artificial  algumas técnicas aplicadas em jogosInteligência artificial  algumas técnicas aplicadas em jogos
Inteligência artificial algumas técnicas aplicadas em jogosCRISLANIO MACEDO
 
Inteligência Artificial e suas aplicações - A experiência do TECPAR
Inteligência Artificial e suas aplicações  - A experiência do TECPARInteligência Artificial e suas aplicações  - A experiência do TECPAR
Inteligência Artificial e suas aplicações - A experiência do TECPARBruno Campagnolo
 
Realidade aumentada com ia
Realidade aumentada com iaRealidade aumentada com ia
Realidade aumentada com iaAdriana Euzebio
 
Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...
Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...
Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...Igenesis - Fábrica de Inovação
 
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos Estombelo
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos EstombeloFundamentos da Inteligencia Artificial :: Prof Dr. Carlos Estombelo
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos EstombeloRogerio P C do Nascimento
 
Técnicas de Teste para Jogos Digitais
Técnicas de Teste para Jogos DigitaisTécnicas de Teste para Jogos Digitais
Técnicas de Teste para Jogos DigitaisLuana Lobão
 
NXT Lego Mindstorm - Sensor de Luz
NXT Lego Mindstorm - Sensor de LuzNXT Lego Mindstorm - Sensor de Luz
NXT Lego Mindstorm - Sensor de LuzDJM Projecto
 
Inteligência Artificial Aplicada na SC&L - Thiago Richter - Palestra 2009 Pt Br
Inteligência Artificial Aplicada na SC&L - Thiago Richter - Palestra 2009 Pt BrInteligência Artificial Aplicada na SC&L - Thiago Richter - Palestra 2009 Pt Br
Inteligência Artificial Aplicada na SC&L - Thiago Richter - Palestra 2009 Pt BrThiago Richter
 
Apresentacao minicursofinal
Apresentacao minicursofinalApresentacao minicursofinal
Apresentacao minicursofinalAlmerindo Rehem
 
Introdução à Programação com Robôs Lego
Introdução à Programação com Robôs LegoIntrodução à Programação com Robôs Lego
Introdução à Programação com Robôs LegoRayner Pires
 
Trabalho em greenfoot
Trabalho em greenfootTrabalho em greenfoot
Trabalho em greenfootVitor Faria
 
Amostra robos lego
Amostra robos legoAmostra robos lego
Amostra robos legoArtur (Ft)
 
3W1H - Where What Why and How: Uma Abordagem Prática para Desenvolvimento de ...
3W1H - Where What Why and How: Uma Abordagem Prática para Desenvolvimento de ...3W1H - Where What Why and How: Uma Abordagem Prática para Desenvolvimento de ...
3W1H - Where What Why and How: Uma Abordagem Prática para Desenvolvimento de ...Almerindo Rehem
 
Conceitos inteligencia artificial
Conceitos inteligencia artificialConceitos inteligencia artificial
Conceitos inteligencia artificiallucasgodines
 

Mais procurados (20)

Inteligência Artificial
Inteligência ArtificialInteligência Artificial
Inteligência Artificial
 
Exemplo de GDD
Exemplo de GDDExemplo de GDD
Exemplo de GDD
 
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
 
Técnicas de ia
Técnicas de iaTécnicas de ia
Técnicas de ia
 
Game Design e Educação
Game Design e EducaçãoGame Design e Educação
Game Design e Educação
 
Inteligência artificial algumas técnicas aplicadas em jogos
Inteligência artificial  algumas técnicas aplicadas em jogosInteligência artificial  algumas técnicas aplicadas em jogos
Inteligência artificial algumas técnicas aplicadas em jogos
 
Inteligência Artificial e suas aplicações - A experiência do TECPAR
Inteligência Artificial e suas aplicações  - A experiência do TECPARInteligência Artificial e suas aplicações  - A experiência do TECPAR
Inteligência Artificial e suas aplicações - A experiência do TECPAR
 
Realidade aumentada com ia
Realidade aumentada com iaRealidade aumentada com ia
Realidade aumentada com ia
 
Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...
Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...
Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...
 
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos Estombelo
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos EstombeloFundamentos da Inteligencia Artificial :: Prof Dr. Carlos Estombelo
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos Estombelo
 
Técnicas de Teste para Jogos Digitais
Técnicas de Teste para Jogos DigitaisTécnicas de Teste para Jogos Digitais
Técnicas de Teste para Jogos Digitais
 
NXT Lego Mindstorm - Sensor de Luz
NXT Lego Mindstorm - Sensor de LuzNXT Lego Mindstorm - Sensor de Luz
NXT Lego Mindstorm - Sensor de Luz
 
Inteligência Artificial Aplicada na SC&L - Thiago Richter - Palestra 2009 Pt Br
Inteligência Artificial Aplicada na SC&L - Thiago Richter - Palestra 2009 Pt BrInteligência Artificial Aplicada na SC&L - Thiago Richter - Palestra 2009 Pt Br
Inteligência Artificial Aplicada na SC&L - Thiago Richter - Palestra 2009 Pt Br
 
Apresentacao minicursofinal
Apresentacao minicursofinalApresentacao minicursofinal
Apresentacao minicursofinal
 
Introdução à Programação com Robôs Lego
Introdução à Programação com Robôs LegoIntrodução à Programação com Robôs Lego
Introdução à Programação com Robôs Lego
 
Trabalho em greenfoot
Trabalho em greenfootTrabalho em greenfoot
Trabalho em greenfoot
 
Amostra robos lego
Amostra robos legoAmostra robos lego
Amostra robos lego
 
3W1H - Where What Why and How: Uma Abordagem Prática para Desenvolvimento de ...
3W1H - Where What Why and How: Uma Abordagem Prática para Desenvolvimento de ...3W1H - Where What Why and How: Uma Abordagem Prática para Desenvolvimento de ...
3W1H - Where What Why and How: Uma Abordagem Prática para Desenvolvimento de ...
 
Conceitos inteligencia artificial
Conceitos inteligencia artificialConceitos inteligencia artificial
Conceitos inteligencia artificial
 
Inteligência Artificial
Inteligência ArtificialInteligência Artificial
Inteligência Artificial
 

Destaque

Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect
Adaptando e desenvolvendo jogos para uso com o Microsoft KinectAdaptando e desenvolvendo jogos para uso com o Microsoft Kinect
Adaptando e desenvolvendo jogos para uso com o Microsoft KinectBruno Campagnolo
 
Plataformas e Sistemas de Jogos
Plataformas e Sistemas de JogosPlataformas e Sistemas de Jogos
Plataformas e Sistemas de JogosGerson Victor
 
A influência de jogos digitais na vida dos adolescentes.
A influência de jogos digitais na vida dos adolescentes.A influência de jogos digitais na vida dos adolescentes.
A influência de jogos digitais na vida dos adolescentes.E-Proinfo
 
Aprendendo no Meio Digital através Jogos Educativos Computacionais
Aprendendo no Meio Digital através  Jogos Educativos Computacionais Aprendendo no Meio Digital através  Jogos Educativos Computacionais
Aprendendo no Meio Digital através Jogos Educativos Computacionais Valquiria Bauer
 
Python e Aprendizagem de Máquina (Inteligência Artificial)
Python e Aprendizagem de Máquina (Inteligência Artificial)Python e Aprendizagem de Máquina (Inteligência Artificial)
Python e Aprendizagem de Máquina (Inteligência Artificial)Marcel Caraciolo
 
Inteligência artificial aplicada a jogos
Inteligência artificial aplicada a jogosInteligência artificial aplicada a jogos
Inteligência artificial aplicada a jogosRafael Sakurai
 

Destaque (11)

Projeto de Rede Social de Jogos
Projeto de Rede Social de JogosProjeto de Rede Social de Jogos
Projeto de Rede Social de Jogos
 
Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect
Adaptando e desenvolvendo jogos para uso com o Microsoft KinectAdaptando e desenvolvendo jogos para uso com o Microsoft Kinect
Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect
 
Plataformas e Sistemas de Jogos
Plataformas e Sistemas de JogosPlataformas e Sistemas de Jogos
Plataformas e Sistemas de Jogos
 
TDC - Desenvolvendo com Kinect
TDC - Desenvolvendo com KinectTDC - Desenvolvendo com Kinect
TDC - Desenvolvendo com Kinect
 
A evolução dos jogos (2)
A evolução dos jogos (2)A evolução dos jogos (2)
A evolução dos jogos (2)
 
A influência de jogos digitais na vida dos adolescentes.
A influência de jogos digitais na vida dos adolescentes.A influência de jogos digitais na vida dos adolescentes.
A influência de jogos digitais na vida dos adolescentes.
 
Aprendendo no Meio Digital através Jogos Educativos Computacionais
Aprendendo no Meio Digital através  Jogos Educativos Computacionais Aprendendo no Meio Digital através  Jogos Educativos Computacionais
Aprendendo no Meio Digital através Jogos Educativos Computacionais
 
Python e Aprendizagem de Máquina (Inteligência Artificial)
Python e Aprendizagem de Máquina (Inteligência Artificial)Python e Aprendizagem de Máquina (Inteligência Artificial)
Python e Aprendizagem de Máquina (Inteligência Artificial)
 
Inteligência artificial aplicada a jogos
Inteligência artificial aplicada a jogosInteligência artificial aplicada a jogos
Inteligência artificial aplicada a jogos
 
Apostila Jogos
Apostila Jogos Apostila Jogos
Apostila Jogos
 
Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
 

Semelhante a Inteligência Artificial em Jogos Eletrônicos

O uso da metodologia iterativa na criação de videogames como sistemas emergentes
O uso da metodologia iterativa na criação de videogames como sistemas emergentesO uso da metodologia iterativa na criação de videogames como sistemas emergentes
O uso da metodologia iterativa na criação de videogames como sistemas emergentesJulia Stateri
 
Teoria do Processamento da Informação no Design
Teoria do Processamento da Informação no DesignTeoria do Processamento da Informação no Design
Teoria do Processamento da Informação no DesignUTFPR
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSprofjotamarcosduarte
 
Frameworks Formais de Game Design.
Frameworks Formais de Game Design.Frameworks Formais de Game Design.
Frameworks Formais de Game Design.Pedro Emil Freme
 
Apresentação - Extensão Virtual do Mundo Real: Integração Semântica e Inferência
Apresentação - Extensão Virtual do Mundo Real: Integração Semântica e InferênciaApresentação - Extensão Virtual do Mundo Real: Integração Semântica e Inferência
Apresentação - Extensão Virtual do Mundo Real: Integração Semântica e InferênciaLuciano Edson Mertins
 
Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Framework
Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia FrameworkJornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Framework
Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Frameworkyankooliveira
 
Desenv. jogos em java e Proj. Parallax
Desenv.  jogos em java e Proj. ParallaxDesenv.  jogos em java e Proj. Parallax
Desenv. jogos em java e Proj. ParallaxMichel Montenegro
 
Introdução às Game Engines
Introdução às Game Engines Introdução às Game Engines
Introdução às Game Engines Jerry Medeiros
 
Algoritmos, Inteligência Artificial e Políticas Públicas
Algoritmos, Inteligência Artificial e Políticas PúblicasAlgoritmos, Inteligência Artificial e Políticas Públicas
Algoritmos, Inteligência Artificial e Políticas PúblicasNathalia Sautchuk Patricio
 
Cornucopia - Um game para facilitar o assunto codificação segura
Cornucopia - Um game para facilitar o assunto codificação segura Cornucopia - Um game para facilitar o assunto codificação segura
Cornucopia - Um game para facilitar o assunto codificação segura Wagner Mendes Voltz Fusca
 
Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesMarcos Thomaz
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoLuciano Ramalho
 
Algoritmos de Percurso Aplicados à Robótica
Algoritmos de Percurso Aplicados à RobóticaAlgoritmos de Percurso Aplicados à Robótica
Algoritmos de Percurso Aplicados à RobóticaLucas Oliveira
 
Os Rumos do Teste de Software
Os Rumos do Teste de SoftwareOs Rumos do Teste de Software
Os Rumos do Teste de Softwareandrevdrodrigues
 
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem VisualAhirton Lopes
 
Sistemas para o Mundo Real - TDC 2012
Sistemas para o Mundo Real - TDC 2012Sistemas para o Mundo Real - TDC 2012
Sistemas para o Mundo Real - TDC 2012Leandro Silva
 
HeroQuest - Webgame em HTML5 e Javascript
HeroQuest - Webgame em HTML5 e JavascriptHeroQuest - Webgame em HTML5 e Javascript
HeroQuest - Webgame em HTML5 e JavascriptFelipe Pucinelli
 

Semelhante a Inteligência Artificial em Jogos Eletrônicos (20)

O uso da metodologia iterativa na criação de videogames como sistemas emergentes
O uso da metodologia iterativa na criação de videogames como sistemas emergentesO uso da metodologia iterativa na criação de videogames como sistemas emergentes
O uso da metodologia iterativa na criação de videogames como sistemas emergentes
 
Teoria do Processamento da Informação no Design
Teoria do Processamento da Informação no DesignTeoria do Processamento da Informação no Design
Teoria do Processamento da Informação no Design
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
 
Frameworks Formais de Game Design.
Frameworks Formais de Game Design.Frameworks Formais de Game Design.
Frameworks Formais de Game Design.
 
Apresentação - Extensão Virtual do Mundo Real: Integração Semântica e Inferência
Apresentação - Extensão Virtual do Mundo Real: Integração Semântica e InferênciaApresentação - Extensão Virtual do Mundo Real: Integração Semântica e Inferência
Apresentação - Extensão Virtual do Mundo Real: Integração Semântica e Inferência
 
Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Framework
Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia FrameworkJornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Framework
Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Framework
 
Desenv. jogos em java e Proj. Parallax
Desenv.  jogos em java e Proj. ParallaxDesenv.  jogos em java e Proj. Parallax
Desenv. jogos em java e Proj. Parallax
 
Introdução às Game Engines
Introdução às Game Engines Introdução às Game Engines
Introdução às Game Engines
 
Algoritmos, Inteligência Artificial e Políticas Públicas
Algoritmos, Inteligência Artificial e Políticas PúblicasAlgoritmos, Inteligência Artificial e Políticas Públicas
Algoritmos, Inteligência Artificial e Políticas Públicas
 
Cornucopia - Um game para facilitar o assunto codificação segura
Cornucopia - Um game para facilitar o assunto codificação segura Cornucopia - Um game para facilitar o assunto codificação segura
Cornucopia - Um game para facilitar o assunto codificação segura
 
Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas Aplicações
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
Cp game design
Cp game designCp game design
Cp game design
 
Algoritmos de Percurso Aplicados à Robótica
Algoritmos de Percurso Aplicados à RobóticaAlgoritmos de Percurso Aplicados à Robótica
Algoritmos de Percurso Aplicados à Robótica
 
Os Rumos do Teste de Software
Os Rumos do Teste de SoftwareOs Rumos do Teste de Software
Os Rumos do Teste de Software
 
Oficina Scratch
Oficina ScratchOficina Scratch
Oficina Scratch
 
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
 
Sistemas para o Mundo Real - TDC 2012
Sistemas para o Mundo Real - TDC 2012Sistemas para o Mundo Real - TDC 2012
Sistemas para o Mundo Real - TDC 2012
 
Aula 00
Aula 00Aula 00
Aula 00
 
HeroQuest - Webgame em HTML5 e Javascript
HeroQuest - Webgame em HTML5 e JavascriptHeroQuest - Webgame em HTML5 e Javascript
HeroQuest - Webgame em HTML5 e Javascript
 

Mais de Erisvaldo Junior

Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Erisvaldo Junior
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Erisvaldo Junior
 
Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Erisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection frameworkErisvaldo Junior
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java meErisvaldo Junior
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java meErisvaldo Junior
 

Mais de Erisvaldo Junior (20)

A Era da Mobilidade
A Era da MobilidadeA Era da Mobilidade
A Era da Mobilidade
 
Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1
 
Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1
 
Nokia SDK for Java
Nokia SDK for JavaNokia SDK for Java
Nokia SDK for Java
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection framework
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java me
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java me
 

Inteligência Artificial em Jogos Eletrônicos

  • 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.
  • 27. Scripted AI and Scripting Engines
  • 28. Scripted AI and Scripting Engines
  • 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;
  • 33. FiniteState Machines Substituindo o estado “Atacando um Inimigo” pelos estados “Procurando Posição de Ataque”, “Desferindo Golpe” e “Esquivando”.
  • 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
  • 37. Fuzzy Logic Etapas do processo de inferência de lógica difusa.
  • 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:
  • 48. Bayesian Networks  Grafos cujos nodos representam variáveis aleatórias e cujos elos representam relações causais entre essas variáveis.  Exemplo:
  • 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?"
  • 66. Desenvolvimento do SilvesterMob CLASSES DO JOGO Diagrama de Classes
  • 67.
  • 68. Desenvolvimento do SilvesterMob INTELIGÊNCIA ARTIFICIAL Máquinas de Estados
  • 69. Resultados do SilvesterMob INVENTÁRIO ÁREAS DO JOGO
  • 70. Resultados do SilvesterMob CASA 1 DO CAMPO VENDA DE ITENS
  • 71. Resultados do SilvesterMob CASA 2 DO CAMPO COMPRA DE ITENS
  • 73.
  • 74. Linha do Tempo de IA em Jogos
  • 75.
  • 76. Black & White (1 e 2)
  • 77. Spore
  • 81.
  • 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.