Sunteți pe pagina 1din 46

MAC 499

Trabalho de Formatura Supervisionado
IME­USP

Implementação De Um Jogo Com 
Inteligência Artificial e  
Aprendizado Probabilístico

Aluno: Rogério Cazelato Papetti
Orientador: Marcelo Finger
Co­Orientador: Flávio Soares Corrêa

   
Agenda

 Pac­Man
 Proposta
 Maya & Panda­3D
 Algoritmos 
 Resultados e Conclusões
 Dúvidas
 Demonstração (se houver tempo)
 
 Total: 23 slides  
Pac­Man

   
História
 Lançado na década de 1980
 Estrondoso sucesso
 Regras Básicas:
 Pacman deve capturar todas as PacDots do 
cenário
 Fantasmas o perseguem
 O Pac­Man perde uma vida ao encostar num 
fantasma
 O Pac­Man ganha pontos ao coletar bônus (maçãs) 
   
Pac­Man: Um Clássico

   
Inteligência Artificial no Jogo

 Fantasmas
 Algoritmo Determinístico
 Engenharia reversa

 Movimentos Pacman
 Estratégia vencedora
 Pattern (Padrão)
 Jogo 'Perfeito'

   
Proposta

 Desenvolver Inteligência Artificial Para 
Fantasmas
 Algoritmos
 Movimentação
 Aprendizado
 Implementar esses algoritmos na prática
 Pac­Man 3D
 Regras adaptadas

   
Maya

 Modelagem 3D
 Manipulação de figuras geométricas
 Implementação de animações
 Recursos como sombra, anti­aliasing

   
Modelagem Pac­Man

   
Modelagem Fantasma

   
Panda­3D

 Framework para implementação do jogo
 Suporte a Python e C++
 Python é preferível
 Classes Auxiliares
 Articulações das Personagens
 Gerenciar Colisões
 Física Básica
 Movimentação de Fluídos
   
Implementação

 Colisões
 Manipulação Câmera
 Manipulação de Modelos 3D
 Timers
 Tasks

   
Colisões no Panda­3D

 Collision Solids
 Collision Handlers
 Collision Entries
 Bitmask

   
Collision Solids

 Esfera
 Cilindro
 Plano
 Segmento de reta ou reta

   
Collision Solids ­ Exemplo

   
Collision Handlers

 Diversos tipos
 Gerador de Eventos
 Armazenador de Colisões
 'Collision Pusher'
 'Collision Floor'

   
Collision Handlers ­ Exemplo

   
Collision Bitmask ­ Exemplo

   
Algoritmo de Movimentação

 Baseado na visão e percepção do mapa do 
fantasma
 Visão e Percepção
 Qual objeto mais próximo
 Está muito perto de uma parede
 Existe alguma entrada lateral ou esquina
 Está sobre uma PacDot
 Sorteia uma jogada segundo probabilidades
 
 Estabelecidas para cada ação
 
Algoritmo De Aprendizado 

 Modifica probabilidade de cada ação
 Análise a cada fim de jogo
 Tempo de Vida
 Capturou Pac­Man
 Instante da Jogada

   
Resultados e Conclusões

 Fantasma
 Movimentação
 Decisões
 Aprendizado
 Probabilidades Viesadas
 Probabilidades Não Viesadas

   
Referências

 RUSSELL, Stuart ; NORVIG, Peter ­ “Artificial 
Intelligence: A Modern Approach” ­Prentice Hall 
Series  in Artificial Intelligence, 1995 .
 Site Panda­3D: www.panda3d.org
 Site Maya: www.everything4maya.com

   
Dúvidas

   
   

MAC 499
Trabalho de Formatura Supervisionado
IME­USP

Implementação De Um Jogo Com 
Inteligência Artificial e  
Aprendizado Probabilístico

Aluno: Rogério Cazelato Papetti
Orientador: Marcelo Finger
Co­Orientador: Flávio Soares Corrêa

    1

 
   

Agenda

 Pac­Man
 Proposta
 Maya & Panda­3D
 Algoritmos 
 Resultados e Conclusões
 Dúvidas
 Demonstração (se houver tempo)
 
 Total: 23 slides   2

 
   

Pac­Man

    3

 
   

História
 Lançado na década de 1980
 Estrondoso sucesso
 Regras Básicas:
 Pacman deve capturar todas as PacDots do 
cenário
 Fantasmas o perseguem
 O Pac­Man perde uma vida ao encostar num 
fantasma
 O Pac­Man ganha pontos ao coletar bônus (maçãs) 
    4

 
   

Pac­Man: Um Clássico

    5

 
   

Inteligência Artificial no Jogo

 Fantasmas
 Algoritmo Determinístico
 Engenharia reversa

 Movimentos Pacman
 Estratégia vencedora
 Pattern (Padrão)
 Jogo 'Perfeito'

    6

 
   

Proposta

 Desenvolver Inteligência Artificial Para 
Fantasmas
 Algoritmos
 Movimentação
 Aprendizado
 Implementar esses algoritmos na prática
 Pac­Man 3D
 Regras adaptadas

    7

 
   

Maya

 Modelagem 3D
 Manipulação de figuras geométricas
 Implementação de animações
 Recursos como sombra, anti­aliasing

    8

 
   

Modelagem Pac­Man

    9

 
   

Modelagem Fantasma

    10

 
   

Panda­3D

 Framework para implementação do jogo
 Suporte a Python e C++
 Python é preferível
 Classes Auxiliares
 Articulações das Personagens
 Gerenciar Colisões
 Física Básica
 Movimentação de Fluídos
    11

 
   

Implementação

 Colisões
 Manipulação Câmera
 Manipulação de Modelos 3D
 Timers
 Tasks

    12

 
   

Colisões no Panda­3D

 Collision Solids
 Collision Handlers
 Collision Entries
 Bitmask

    13

 
   

Collision Solids

 Esfera
 Cilindro
 Plano
 Segmento de reta ou reta

    14

 
   

Collision Solids ­ Exemplo

    15

 
   

Collision Handlers

 Diversos tipos
 Gerador de Eventos
 Armazenador de Colisões
 'Collision Pusher'
 'Collision Floor'

    16

 
   

Collision Handlers ­ Exemplo

    17

 
   

Collision Bitmask ­ Exemplo

    18

 
   

Algoritmo de Movimentação

 Baseado na visão e percepção do mapa do 
fantasma
 Visão e Percepção
 Qual objeto mais próximo
 Está muito perto de uma parede
 Existe alguma entrada lateral ou esquina
 Está sobre uma PacDot
 Sorteia uma jogada segundo probabilidades
 
 Estabelecidas para cada ação
  19

 
   

Algoritmo De Aprendizado 

 Modifica probabilidade de cada ação
 Análise a cada fim de jogo
 Tempo de Vida
 Capturou Pac­Man
 Instante da Jogada

    20

 
   

Resultados e Conclusões

 Fantasma
 Movimentação
 Decisões
 Aprendizado
 Probabilidades Viesadas
 Probabilidades Não Viesadas

    21

 
   

Referências

 RUSSELL, Stuart ; NORVIG, Peter ­ “Artificial 
Intelligence: A Modern Approach” ­Prentice Hall 
Series  in Artificial Intelligence, 1995 .
 Site Panda­3D: www.panda3d.org
 Site Maya: www.everything4maya.com

    22

 
   

Dúvidas

    23

S-ar putea să vă placă și