Implementação De Um Jogo Com Implementação De Um Jogo Com
Inteligência Artificial e Inteligência Artificial e
Aprendizado Probabilístico Aprendizado Probabilístico
Aluno: Rogério Cazelato Papetti Orientador: Marcelo Finger
CoOrientador: Flávio Soares Corrêa
MAC 499
Trabalho de Formatura Supervisionado IMEUSP
Agenda
PacMan
Proposta
Maya & Panda3D
Algoritmos
Resultados e Conclusões
Dúvidas
Demonstração (se houver tempo)
Total: 23 slides
PacMan
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 PacMan perde uma vida ao encostar num fantasma
O PacMan ganha pontos ao coletar bônus (maçãs)
PacMan: 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
PacMan 3D
Regras adaptadas
Maya
Modelagem 3D
Manipulação de figuras geométricas
Implementação de animações
Recursos como sombra, antialiasing
Modelagem PacMan
Modelagem Fantasma
Panda3D
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 Panda3D
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
Algoritmo De Aprendizado
Modifica probabilidade de cada ação
Análise a cada fim de jogo
Tempo de Vida
Capturou PacMan
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 Panda3D: www.panda3d.org
Site Maya: www.everything4maya.com
Dúvidas
1
Implementação De Um Jogo Com Implementação De Um Jogo Com
Inteligência Artificial e Inteligência Artificial e Aprendizado Probabilístico Aprendizado Probabilístico
Aluno: Rogério Cazelato Papetti Orientador: Marcelo Finger CoOrientador: Flávio Soares Corrêa
MAC 499
Trabalho de Formatura Supervisionado IMEUSP
2
Agenda
PacMan
Proposta
Maya & Panda3D
Algoritmos
Resultados e Conclusões
Dúvidas
Demonstração (se houver tempo)
Total: 23 slides
3
PacMan
4
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 PacMan perde uma vida ao encostar num fantasma
O PacMan ganha pontos ao coletar bônus (maçãs)
5
PacMan: Um Clássico
6
Inteligência Artificial no Jogo
Fantasmas
Algoritmo Determinístico
Engenharia reversa
Movimentos Pacman
Estratégia vencedora
Pattern (Padrão)
Jogo 'Perfeito'
7
Proposta
Desenvolver Inteligência Artificial Para Fantasmas
Algoritmos
Movimentação
Aprendizado
Implementar esses algoritmos na prática
PacMan 3D
Regras adaptadas
8
Maya
Modelagem 3D
Manipulação de figuras geométricas
Implementação de animações
Recursos como sombra, antialiasing
9
Modelagem PacMan
10
Modelagem Fantasma
11
Panda3D
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
12
Implementação
Colisões
Manipulação Câmera
Manipulação de Modelos 3D
Timers
Tasks
13
Colisões no Panda3D
Collision Solids
Collision Handlers
Collision Entries
Bitmask
14
Collision Solids
Esfera
Cilindro
Plano
Segmento de reta ou reta
15
Collision Solids Exemplo
16
Collision Handlers
Diversos tipos
Gerador de Eventos
Armazenador de Colisões
'Collision Pusher'
'Collision Floor'
17
Collision Handlers Exemplo
18
Collision Bitmask Exemplo
19
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
20
Algoritmo De Aprendizado
Modifica probabilidade de cada ação
Análise a cada fim de jogo
Tempo de Vida
Capturou PacMan
Instante da Jogada
21
Resultados e Conclusões
Fantasma
Movimentação
Decisões
Aprendizado
Probabilidades Viesadas
Probabilidades Não Viesadas
22
Referências
RUSSELL, Stuart ; NORVIG, Peter “Artificial Intelligence: A Modern Approach” Prentice Hall Series in Artificial Intelligence, 1995 .
Site Panda3D: www.panda3d.org
Site Maya: www.everything4maya.com
23
Dúvidas