1 / 33

Deep Island Racer

Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim. Um jogo de corrida em ambiente virtual. Deep Island Racer. Apresentação de Projeto de Graduação. Agenda. Introdução Ambiente de Desenvolvimento Movimentação dos Carros Pista Tipo I Pista Tipo II

minda
Download Presentation

Deep Island Racer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Deep Island Racer Apresentação de Projeto de Graduação

  2. Agenda • Introdução • Ambiente de Desenvolvimento • Movimentação dos Carros • Pista Tipo I • Pista Tipo II • Controlador Heurístico • Controlador Neural • Demonstração • Conclusões • Trabalhos Futuros

  3. Introdução • Motivação: • Industria de jogos em crescimento: • Movimenta bilhões de dólares apenas nos Estados Unidos [10]. • Principais atrativos dos jogos atuais: • Interatividade e realismo: • Importantes para a imersão do jogador. • Objetivo: • Implementar uma versão preliminar jogável de um jogo de corrida e analisar seus componentes; • Constituir uma fonte de estudo para o desenvolvimento de jogos.

  4. Introdução • Metodologia: • Preocupação com a imersão do usuário: • Imersão sensorial (audiovisual): • Áudio 3D; • Efeitos gráficos (e.g. CelShading). • Imersão baseada em desafios: • Inteligência, ou competitividade, dos oponentes: • Busca-se um controlador capaz de, pelo menos, completar o percurso de uma volta da corrida. • Oponentes humanos: • Partida multijogador em rede; • Realismo físico. • Imersão imaginativa: • Gerada pela narrativa, personagens e ambientação; • Não faz parte do foco do projeto.

  5. Ambiente de Desenvolvimento • Game engines ( ouMotores de jogos): • Fornecem ferramentas de desenvolvimento e componentes reusáveis; • Costumam operar através de um sistema integrado de desenvolvimento (IDE) : • Busca permitir que se produzam jogos de um modo rápido e simplificado. • Panda3D [22]: • Criada pela Disney e mantida por um grupo de pesquisa da Universidade CarnegieMellon; • Gratuita; • Fórum ativo; • Bastante completa: • Simulações físicas; • Técnicas avançadas de renderização; • Monitoramento do desempenho; • Alto grau de customização;

  6. Ambiente de Desenvolvimento • Game engines ( ou Motores de jogos): • Open Dynamics Engine (ODE) [23] • Engine de física. • Integrada com o Panda3D. • Permite maior controle das rotinas de simulação. • Viabiliza a construção de efeitos mais complexos. • Biblioteca neat-python [11] • Mesma linguagem de programação utilizada pelo Panda3D; • Base para a inteligência artificial dos oponentes; • Treinamento de redes neurais: • Através da neuroevolução com crescimento topológico (NEAT) [2].

  7. Movimentação dos Carros • Carrega-se o modelo 3D do veículo; • Cria-se um corpo do ODE para o modelo: • Utilizado na simulação física; • Define-se a massa do corpo/body; • Distribuída na forma de uma caixa; • Densidade uniforme; • Envolve todo o volume do modelo. • Associa-se uma geometria ao corpo: • Utilizada na detecção de colisão; • Forma de caixa delimitadora: • Envolve todo o volume do modelo; • Detecção de colisões entre carros ou com o cenário.

  8. Movimentação dos Carros • Cria-se um corpo do ODE para cada roda: • Utilizada na simulação física; • Define-se a massa de cada corpo/body; • Distribuída em forma de cilindro; • Densidade uniforme; • Envolve todo o volume de sua respectiva roda. • Define-se uma superfície/surface para as rodas: • Define atributos físicos; • Ex: coeficiente de atrito. • Associa-se uma geometria ao corpo de cada roda: • Para detecção de colisão: • Geometrias em forma de esfera: • Envolve todo o volume do roda; • Detecção de colisões entre as rodas e o chão.

  9. Movimentação dos Carros • Resultado:

  10. Movimentação dos Carros • Definem-se as articulações: • Ligam corpos distintos; • Permitem o movimento conjunto entre os corpos das rodas e do carro; • Permite rotação e alteração da direção das rodas; • Simulam a suspensão do carro. • Retirado do Manual do ODE[17].

  11. Movimentação dos Carros • Deslocamentos: • Para frente: • Uma força é aplicada ao corpo do carro no sentido para frente; • Rodas se movem devido às articulações: • Rotacionadas sobre o eixo horizontal devido ao atrito com o chão. • Para trás ou frenagem: • Uma velocidade angular e uma força são aplicadas às rodas no sentido para trás. • Rodas se movem devido ao atrito com o chão: • Articulações entre as rodas e o corpo do carro fazem com que o carro se mova. • Em curva: • Realizado através de mudanças na direção das rodas frontais. • Rotacionadas sobre o eixo vertical. • Deslocamento para frente ou para trás faz com que o carro realize uma curva. • Efeitos sonoros: • Aceleração do motor; • Motor ligado; • Freio.

  12. PistaTipo I • Terreno 3D gerado através um mapa de altura: • Imagem em escala de cinza; • Cores representam deslocamentos em altura: • Preto é altura mínima e branco a máxima; • Textura aplicada sobre a topologia gerada. • Um Shader simula um plano de água que reflete o cenário. • Idealmente: permite corrida em terreno altamente irregular; • Não foi encontrada uma configuração de parâmetros do ODE para suportar tal cenário; • Os carros escorregavam ao tentar subir uma pequena elevação. • Terreno projetado sobre o plano XY; • Menu principal do jogo: • Demonstração do efeito visual planejado.

  13. PistaTipo I • Delimitação da pista sobre o cenário: • Textura com o desenho do formato da pista . • Teste do jogador sobre a pista: • Mapeamento direto: • Entre coordenadas XY de mundo e posição do pixel na imagem do mapa da pista. • Verifica a cor do pixel correspondente. • Aplica-se uma penalidade por estar fora da pista • Definição do centro de checkpoints: • Definidos empiricamente: • Distribuídos de modo uniforme e centrados ao longo da pista. • Checkpoints: • Ativado quando um jogador está a um distância mínima de seu centro. • Acompanhamento do progresso dos jogadores; • Definição da colocação de cada jogador na corrida.

  14. PistaTipo II • Modelo 3D : • Concatenação de unidades • Numeração das unidades: • Define a ordem de cada unidade na pista. • Centros geométricos das unidades: • Definem as posições dos checkpoints. • Checkpoints: • Planos orientados de acordo com a pista.

  15. Checkpoint θ ControladorHeurístico • Suposições: • Percurso formado pelos checkpoints é um bom caminho. • Ajuste incremental da direção do jogador para seguir este caminho resulta em um bom controlador. • Jogador se move para frente: • Realizam-se pequenos ajustes na direção do movimento em cada iteração. • Em cada iteração: • θ > 0 : • Checkpoint à direita do carro ; • Virar para a direita. • θ < 0: • Checkpoint à esquerda do carro; • Virar para a esquerda. • θ = 0: • Checkpoint à frente; • Continuar em frente. Direção do movimento

  16. Controlador Neural Camada de Intermediária (ou oculta) • Rede Neural: Camada de Entrada Camada de Saída

  17. Controlador Neural Camada de Intermediária (ou oculta) • Rede Neural: Camada de Entrada Camada de Saída • Modelo Neural: Pesos Sinápticos Junção Aditiva Função de Ativação Saída

  18. Controlador Neural • 8 nós de entrada, referentes à: • Sensores a -90, -60, -30, 30, 60 e 90 graus; • Sensor frontal especializado: • Retorna o maior valor entre os obtidos por sensores a -10, 0 e 10 graus; • Procura detectar mais precisamente o final de uma curva. • Velocidade instantânea do jogador.

  19. Controlador Neural • 2 nós de saída, onde: • Variam entre -1 e 1; • Saída Y1: • Andar para frente ou para trás. • Saída Y2: • Virar para a direita ou esquerda. • Camadas intermediárias: • Determinadas pelo algoritmo de treinamento.

  20. Controlador Neural • Função Objetivo / Função de Aptidão: • Procura-se a maximizar; • F (controlador) = (C1nCheckPointsReached - distance) + C2avgSpeed; • Maior progresso geral com a menor distância, maximizando a velocidade; • C1 e C2 definidos empiricamente para ajustar a ordem de grandeza das variáveis. • População de 100 indivíduos; • Quantidade máxima de indivíduos em qualquer momento do treinamento. • 100 Iterações ou épocas do treinamento; • Para cada iteração do treinamento: • Controladores guiam um jogador durante 500 iterações do Panda3D. • Calculam-se as aptidões de cada controlador; • Ao final, o indivíduo com melhor aptidão é escolhido; • Rede obtida é salva; • Pode ser carregada durante o jogo.

  21. Algoritmo de Treinamento • Neuroevolução com crescimento topológico • NeuroEvolutionofAugmentingTopologies (NEAT); • Utiliza algoritmos genéticos para treinar uma rede neural. • Inicia com a menor topologia possível: • Entradas ligadas diretamente as saídas. • Crescimento incremental da topologia da rede: • Dada pela inserção ou alteração de pesos, conexões e nós das camadas intermediárias; • Somente as estruturas significantes são mantidas; • Buscas em espaços com complexidade incremental. • Especiação: • Protege inovações estruturais. • Ao final de cada iteração: • Escolhem-se os indivíduos mais aptos de cada espécie; • Realiza-se a reprodução dos indivíduos.

  22. Algoritmo de Treinamento Nó 1 Entrada Nó 2 Entrada Nó 3 Entrada Nó 4 Saída Nó 5 Oculto Inovação 1 Entrada: 1 Saída: 4 Peso: 0.7 Habilitado Inovação 2 Entrada: 2 Saída: 4 Peso: 0.5 Desabilitado Inovação 3 Entrada: 3 Saída: 4 Peso: 0.5 Habilitado Inovação 4 Entrada: 2 Saída: 5 Peso: 0.2 Habilitado • Representação das Características do Individuo • Genoma(Genótipo): • Genes dos Nós: • Genes das Conexões: Inovação 5 Entrada: 5 Saída: 4 Peso: 0.4 Habilitado Inovação 6 Entrada: 1 Saída: 5 Peso: 0.6 Habilitado Inovação 11 Entrada: 4 Saída: 5 Peso: 0.6 Habilitado 4 5 3 1 2

  23. Algoritmo de Treinamento • Representação das Características do Individuo • Fenótipo: 4 5 3 1 2

  24. Pai 1 Algoritmo de Treinamento • Pai 2 • Operador de Crossover / Cruzamento: • Prole Inovação 1 Entrada: 1 Saída: 4 Habilitado Inovação 2 Entrada: 2 Saída: 4 Desabilitado Inovação 3 Entrada: 5 Saída: 4 Habilitado Inovação 5 Entrada: 2 Saída: 5 Habilitado Inovação 1 Entrada: 1 Saída: 4 Habilitado Inovação 2 Entrada: 2 Saída: 4 Desabilitado Inovação 3 Entrada: 5 Saída: 4 Desabilitado Inovação 4 Entrada: 1 Saída: 5 Habilitado Inovação 6 Entrada: 3 Saída: 5 Habilitado Inovação 3 Entrada: 5 Saída: 4 Habilitado Inovação 5 Entrada: 2 Saída: 5 Habilitado Inovação 1 Entrada: 1 Saída: 4 Habilitado Inovação 2 Entrada: 2 Saída: 4 Desabilitado Inovação 4 Entrada: 1 Saída: 5 Habilitado Inovação 6 Entrada: 3 Saída: 5 Habilitado

  25. Algoritmo de Treinamento • Operador de Crossover / Cruzamento: 4 4 4 5 5 5 1 2 1 2 3 1 2 3

  26. Antes Algoritmo de Treinamento • Mutaçãoporinclusão de um novo nó. Inovação 1 Entrada: 1 Saída: 4 Habilitado Inovação 2 Entrada: 2 Saída: 4 Desabilitado Inovação 3 Entrada: 5 Saída: 4 Habilitado Inovação 5 Entrada: 2 Saída: 5 Habilitado Inovação 1 Entrada: 1 Saída: 4 Desabilitado Inovação 2 Entrada: 2 Saída: 4 Desabilitado Inovação 3 Entrada: 5 Saída: 4 Habilitado Inovação 5 Entrada: 2 Saída: 5 Habilitado Inovação 6 Entrada: 1 Saída: 6 Habilitado Inovação 7 Entrada: 6 Saída: 4 Habilitado • Depois 4 4 6 5 5 1 2 1 2

  27. ControladorTreinado

  28. Demonstração • PistaTipo I

  29. Demonstração • PistaTipo II

  30. Conclusões • Panda3D e ODE: • Forneceram meios de se efetuar desde a criação de uma janela até a realização de simulações de física. • Neuroevolução com crescimento topológico (NEAT): • Permite construir controladores de carros em ambientes virtuais. • Não é necessário se preocupar com a quantidade de camadas da rede neural: • Não é preciso testar diferentes configurações topológicas de modo manual. • Rede de baixa complexidade: • Apenas três nós intermediários entre as entradas e as saídas. • Controlador neural pouco eficiente: • Guia um carro para completar pelo menos uma volta; • Facilmente derrotado pelo usuário ou pelo jogador controlado pelo método heurístico; • Cardamoneet al. [3] construiu um controlador com bom desempenho através do mesmo método: • Rede obtida pode ser aprimorada. • Passo inicial para a construção de um jogo mais complexo: • Base para estudo e aprendizagem de fundamentos e questões de implementação.

  31. TrabalhosFuturos • Melhor imersão do usuário no jogo: • Buscar mais fatores de caráter sensorial, baseado em desafios, ou imaginativo, por exemplo: • Ambientação de cada corrida, introduzindo outros atores no mundo, fora os jogadores e a pista. • Animais, pessoas, som do vento, objetos, como construções, etc. • Novo estudo para tornar mais eficiente o controlador neural • Interagir com o usuário e não somente guiar um carro. • Abordagem mais competitiva pra o controlador neural: • Constituído de dois controladores, ou duas redes neurais • Um para guiar o carro para completar voltas • Outro para interação com o jogador, impedindo ou realizando uma ultrapassagem. • Gerador de Pistas Tipo II • Pistas geradas pela concatenação de diversas unidades em um mesmo plano. • Permite a criação de conteúdo personalizado.

  32. Referências • [2] Stanley, K. O., Miikkulainen, R. “Efficient Reinforcement Learning through Evolving Neural Network Topologies”, In: Proceedings of the Genetic and Evolutionary Computation Conference (GECCO), 2002. • [3] Cardamone, L., Loiacono, Daniele, Lanzi, P. L, “Evolving Competitive Car Controllers for Racing Games with Neuroevolution”, In: Proceedings of the Genetic and Evolutionary Computation Conference (GECCO), 2009. • [4] Togelius J., Lucas, S. M., Nardi, R. de, “Computational Intelligence in Racing Games”, Studies in Computational Intelligence, v. 71/2007, pp. 39-69, 2007. • [7] Ermy, L., Mäyrä, F., “Fundamental Components of the Gameplay Experience: Analysing Immersion”. In: Proceedings of DiGRA 2005 Conference: Changing Views – Worlds in Play, 2005. • [10] Entertainment Software Association, “The Entertainment Software Association – Industry Facts”, http://www.theesa.com/facts/index.asp, 2010, (Acessoem 11/11/2010). • [11] neat-python, “neat-python - Project Hosting on Google Code”, http://code.google.com/p/neat-python/, 2010 (Acessoem 11/11/2010). • [17] Open Dynamics Engine (ODE) Community Wiki, “Manual (All) - ODE Wiki”, http://opende.sourceforge.net/wiki/index.php/Manual_(All)#Hinge-2 (Acessoem 02/12/2010). • [22] Panda3D, “Panda3D – Free 3D Game Engine”, http://www.panda3d.org/, (Acesso em 03/12/10). • [23] Open Dynamics Engine, “Open Dynamics Engine – home”, http://www.ode.org, (Acessoem 05/12/10).

  33. Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Deep Island Racer Apresentação de Projeto de Graduação

More Related