Aplicação de Técnicas de Inteligência Computacional ao Controle de Oponentes em um Jogo Eletrônico Bruno Bottino Ferreira ...
Motivação <ul><li>Interesse nas áreas de Inteligência Computacional e Artificial; </li></ul><ul><li>Inexistência de um Fra...
Objetivos <ul><li>Construção de um Framework para aplicações Cliente-Servidor; </li></ul><ul><li>Pesquisar soluções de IC ...
Framework <ul><li>Junta a camada da aplicação com as APIs responsáveis pelo trabalho de base; </li></ul><ul><li>Economiza ...
Framework
Por que Cliente-Servidor? <ul><li>Mesmo que dois usuários estejam jogando na mesma máquina, serão considerados Clientes; <...
Por que Cliente-Servidor? <ul><li>Toda a lógica global é processada no Servidor; </li></ul><ul><li>Servidor atua como “Jui...
Framework – Pontos Importantes <ul><li>Frameworks usuais para jogos: integração grande com algum pacote específico; </li><...
Protótipo: Sumo Checkers <ul><li>Intuito:  </li></ul><ul><ul><li>Testar o Framework; </li></ul></ul><ul><ul><li>Natureza p...
Protótipo: Sumo Checkers <ul><li>Fase de turnos: Damas; </li></ul><ul><li>Fase em tempo real: “Sumo” </li></ul><ul><ul><li...
Protótipo: Sumo Checkers
Implementação da IA <ul><li>O protocolo de comunicação com jogadas é comum a clientes humanos e IA </li></ul><ul><ul><li>P...
Implementação da IA <ul><li>Primeiro Nível - Turnos </li></ul><ul><ul><li>Busca Min-Max com corte Alfa-Beta; </li></ul></u...
IA – Segundo Nível <ul><li>Conjunto de treinamento </li></ul><ul><ul><li>Amostras coletadas de jogadores reais </li></ul><...
IA – Segundo Nível <ul><li>Primeira abordagem: entradas absolutas </li></ul><ul><ul><li>Arquitetura da rede: </li></ul></u...
IA – Segundo Nível <ul><li>Primeira abordagem – Possíveis problemas: </li></ul><ul><ul><li>Situações análogas são tratadas...
IA – Segundo Nível <ul><li>Exemplo de estados análogos </li></ul>
IA – Segundo Nível <ul><li>Segunda abordagem: entradas relativas </li></ul><ul><ul><li>Posições em coordenadas polares; </...
IA – Segundo Nível <ul><li>Segunda abordagem: entradas relativas </li></ul><ul><ul><li>Arquitetura da rede: </li></ul></ul...
Conclusões <ul><li>A arquitetura e a abordagem cliente-servidor do Framework funcionaram bem no caso estudado; </li></ul><...
Trabalhos futuros: <ul><li>Testar outras maneiras de definir uma RN para o “Sumo” </li></ul><ul><ul><li>Filtragem do conju...
Próximos SlideShares
Carregando em…5
×

Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Framework

532 visualizações

Publicada em

Publicada em: Educação, Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
532
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Framework

  1. 1. Aplicação de Técnicas de Inteligência Computacional ao Controle de Oponentes em um Jogo Eletrônico Bruno Bottino Ferreira Yanko Gitahy Oliveira Orientador: Adriano Joaquim de Oliveira Cruz LabIC – Laboratório de Inteligência Computacional IM/UFRJ
  2. 2. Motivação <ul><li>Interesse nas áreas de Inteligência Computacional e Artificial; </li></ul><ul><li>Inexistência de um Framework com o foco desejado; </li></ul><ul><li>Diminuir o tempo gasto com implementação. </li></ul>
  3. 3. Objetivos <ul><li>Construção de um Framework para aplicações Cliente-Servidor; </li></ul><ul><li>Pesquisar soluções de IC e IA para jogos eletrônicos que envolvessem situações de turnos e tempo real; </li></ul><ul><li>Desenvolver um protótipo para testes do Framework e para as pesquisas sobre oponentes virtuais. </li></ul>
  4. 4. Framework <ul><li>Junta a camada da aplicação com as APIs responsáveis pelo trabalho de base; </li></ul><ul><li>Economiza tempo no desenvolvimento; </li></ul><ul><li>Altamente modular. </li></ul>
  5. 5. Framework
  6. 6. Por que Cliente-Servidor? <ul><li>Mesmo que dois usuários estejam jogando na mesma máquina, serão considerados Clientes; </li></ul><ul><li>Clientes: funcionam como “terminais”; </li></ul><ul><li>O oponente virtual é tratado como um Cliente; </li></ul><ul><li>Aplicação Cliente faz checagens básicas e envia jogadas ao Servidor para verificação final; </li></ul>
  7. 7. Por que Cliente-Servidor? <ul><li>Toda a lógica global é processada no Servidor; </li></ul><ul><li>Servidor atua como “Juiz”: impede movimentos ilegais e tentativas de trapaça; </li></ul><ul><li>Mudanças de regras ou de ambiente de jogo podem ocorrer apenas no código do Servidor; </li></ul><ul><li>Reutilização do código em situações de apenas um jogador. </li></ul>
  8. 8. Framework – Pontos Importantes <ul><li>Frameworks usuais para jogos: integração grande com algum pacote específico; </li></ul><ul><li>Nosso Framework: foco na reutilização e na facilidade de “plugar” e “desplugar” novos módulos; </li></ul><ul><li>Pode ser utilizado para qualquer tipo de aplicação Cliente-Servidor. </li></ul>
  9. 9. Protótipo: Sumo Checkers <ul><li>Intuito: </li></ul><ul><ul><li>Testar o Framework; </li></ul></ul><ul><ul><li>Natureza peculiar do jogo: mescla turnos e ação em tempo real; </li></ul></ul><ul><ul><li>Simplicidade. </li></ul></ul>
  10. 10. Protótipo: Sumo Checkers <ul><li>Fase de turnos: Damas; </li></ul><ul><li>Fase em tempo real: “Sumo” </li></ul><ul><ul><li>Jogador tem que empurrar oponente para fora de um ringue circular </li></ul></ul><ul><li>Se o atacante perder, nada muda; </li></ul><ul><li>Se o atacante ganhar, adversário perde a peça; </li></ul><ul><li>O controle das peças, na arena, é em terceiro grau (controla-se a aceleração)‏ </li></ul>
  11. 11. Protótipo: Sumo Checkers
  12. 12. Implementação da IA <ul><li>O protocolo de comunicação com jogadas é comum a clientes humanos e IA </li></ul><ul><ul><li>Pode-se testar diferentes abordagens mantendo o protocolo. </li></ul></ul><ul><li>Primeiro nível: estratégia clássica; </li></ul><ul><li>Segundo nível: ação em tempo real; </li></ul>
  13. 13. Implementação da IA <ul><li>Primeiro Nível - Turnos </li></ul><ul><ul><li>Busca Min-Max com corte Alfa-Beta; </li></ul></ul><ul><ul><li>Resultados esperados: boa performance no jogo de tabuleiro. </li></ul></ul><ul><li>Segundo Nível – Ação em tempo real </li></ul><ul><ul><li>Redes Neurais MLP </li></ul></ul><ul><ul><ul><li>Entradas: posições e velocidades de dois jogadores; </li></ul></ul></ul><ul><ul><ul><li>Saída: aceleração do jogador considerado. </li></ul></ul></ul>
  14. 14. IA – Segundo Nível <ul><li>Conjunto de treinamento </li></ul><ul><ul><li>Amostras coletadas de jogadores reais </li></ul></ul><ul><li>Duas abordagens: </li></ul><ul><ul><li>Entradas absolutas: posições e velocidades em X e Y (8 entradas); </li></ul></ul><ul><ul><li>Entradas relativas: posições e velocidades em relação ao Jogador considerado (7 entradas). </li></ul></ul><ul><ul><ul><li>Primeiro formato: coordenadas polares </li></ul></ul></ul><ul><ul><ul><li>Segundo formato: coordenadas retangulares </li></ul></ul></ul>
  15. 15. IA – Segundo Nível <ul><li>Primeira abordagem: entradas absolutas </li></ul><ul><ul><li>Arquitetura da rede: </li></ul></ul><ul><ul><ul><li>8 entradas; </li></ul></ul></ul><ul><ul><ul><li>12 neurônios na camada intermediária; </li></ul></ul></ul><ul><ul><ul><li>2 saídas. </li></ul></ul></ul><ul><ul><li>Resultados: </li></ul></ul><ul><ul><ul><li>Comportamento razoável (bom aprendizado) com problemas na borda da arena (zona de dúvida)‏ </li></ul></ul></ul>
  16. 16. IA – Segundo Nível <ul><li>Primeira abordagem – Possíveis problemas: </li></ul><ul><ul><li>Situações análogas são tratadas em separado; </li></ul></ul><ul><ul><li>Uma rotação da arena atual é uma situação análoga; </li></ul></ul><ul><ul><li>Inconsistências no conjunto de treinamento (humanos respondem diferente). </li></ul></ul>
  17. 17. IA – Segundo Nível <ul><li>Exemplo de estados análogos </li></ul>
  18. 18. IA – Segundo Nível <ul><li>Segunda abordagem: entradas relativas </li></ul><ul><ul><li>Posições em coordenadas polares; </li></ul></ul><ul><ul><li>Considera-se o jogador com ângulo 0 (zero); </li></ul></ul><ul><ul><li>Rotaciona-se as velocidades pelo ângulo que o jogador (novo ângulo zero) faz com a semi-reta zero original (+1, 0); </li></ul></ul><ul><ul><li>Filtra informação redundante. </li></ul></ul>
  19. 19. IA – Segundo Nível <ul><li>Segunda abordagem: entradas relativas </li></ul><ul><ul><li>Arquitetura da rede: </li></ul></ul><ul><ul><ul><li>7 entradas; </li></ul></ul></ul><ul><ul><ul><li>12 neurônios na camada intermediária; </li></ul></ul></ul><ul><ul><ul><li>2 saídas. </li></ul></ul></ul><ul><ul><li>Resultados piores que a primeira abordagem nos dois formatos de entrada; </li></ul></ul><ul><ul><li>Possível explicação: Aglomeração das entradas semelhantes aumenta a densidade de inconsistências. </li></ul></ul>
  20. 20. Conclusões <ul><li>A arquitetura e a abordagem cliente-servidor do Framework funcionaram bem no caso estudado; </li></ul><ul><li>Redes Neurais são um bom caminho para oponentes mais “humanos”, porém existem alguns problemas a serem tratados; </li></ul>
  21. 21. Trabalhos futuros: <ul><li>Testar outras maneiras de definir uma RN para o “Sumo” </li></ul><ul><ul><li>Filtragem do conjunto de treinamento </li></ul></ul><ul><ul><li>Algoritmos Genéticos </li></ul></ul><ul><li>Pesquisar diferentes abordagens de IA no caso estudado (SumoCheckers); </li></ul><ul><li>Expandir e completar o desenvolvimento do Framework. </li></ul>

×