Deep Island Racer

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

description

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 - PowerPoint PPT Presentation

Transcript of Deep Island Racer

Page 1: Deep Island Racer

Deep Island Racer

Aluno: Túlio Ligneul Santos DRE: 106017420Orientador: Ricardo Marroquim

Um jogo de corrida em ambiente virtual

Apresentação de Projeto de Graduação

Page 2: Deep Island Racer

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

Page 3: Deep Island Racer

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.

Page 4: Deep Island Racer

Introdução

Metodologia: Preocupação com a imersão do usuário:

▪ Imersão sensorial (audiovisual):▪ Áudio 3D;▪ Efeitos gráficos (e.g. Cel Shading).

▪ 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.

Page 5: Deep Island Racer

Ambiente de Desenvolvimento Game engines ( ou Motores 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

Carnegie Mellon;▪ 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;

Page 6: Deep Island Racer

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].

Page 7: Deep Island Racer

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.

Page 8: Deep Island Racer

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.

Page 9: Deep Island Racer

Movimentação dos Carros

Resultado:

Page 10: Deep Island Racer

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].

Page 11: Deep Island Racer

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.

Page 12: Deep Island Racer

Pista Tipo 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.

Page 13: Deep Island Racer

Pista Tipo 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.

Page 14: Deep Island Racer

Pista Tipo 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.

 

Page 15: Deep Island Racer

Controlador Heurí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.

Checkpoint

θ

Direção do movimento

Page 16: Deep Island Racer

Controlador Neural Rede Neural:

Camada de SaídaCamada de Entrada

Camada de Intermediária (ou oculta)

Page 17: Deep Island Racer

Controlador Neural Rede Neural:

iiu z

11u

2u

3u

4u

iiuf yFunção de Ativação

Junção Aditiva

Saída

Pesos Sinápticos

2

3

4

Modelo Neural:

Camada de SaídaCamada de Entrada

Camada de Intermediária (ou oculta)

Page 18: Deep Island Racer

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.

Page 19: Deep Island Racer

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.

Page 20: Deep Island Racer

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.

Page 21: Deep Island Racer

Algoritmo de Treinamento Neuroevolução com crescimento topológico

NeuroEvolution of Augmenting Topologies (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.

Page 22: Deep Island Racer

Representação das Características do Individuo Genoma(Genótipo):

▪ Genes dos Nós:

▪ Genes das Conexões:

Nó 1Entrad

a

Nó 2Entrad

a

Nó 3Entrad

a

Nó 4Saída

Nó 5Oculto

Inovação 1Entrada: 1Saída: 4Peso: 0.7Habilitado

Inovação 2Entrada: 2Saída: 4Peso: 0.5Desabilitado

Inovação 3Entrada: 3Saída: 4Peso: 0.5Habilitado

Inovação 4Entrada: 2Saída: 5Peso: 0.2Habilitado

Inovação 5Entrada: 5Saída: 4Peso: 0.4Habilitado

Inovação 6Entrada: 1Saída: 5Peso: 0.6Habilitado

Inovação 11

Entrada: 4Saída: 5Peso: 0.6Habilitado

Algoritmo de Treinamento

Page 23: Deep Island Racer

Representação das Características do Individuo Fenótipo:

1 23

4

5

Algoritmo de Treinamento

Page 24: Deep Island Racer

Operador de Crossover / Cruzamento:

Algoritmo de Treinamento

Inovação 1

Entrada: 1Saída: 4Habilitado

Inovação 2

Entrada: 2Saída: 4Desabilitado

Inovação 3Entrada: 5Saída: 4Habilitado

Inovação 5

Entrada: 2Saída: 5Habilitado

Pai 1

Inovação 1

Entrada: 1Saída: 4Habilitado

Inovação 2

Entrada: 2Saída: 4Desabilitado

Inovação 3Entrada: 5Saída: 4Desabilitado

Inovação 4

Entrada: 1Saída: 5Habilitado

Inovação 6

Entrada: 3Saída: 5Habilitado

Pai 2

Inovação 5

Entrada: 2Saída: 5Habilitado

Inovação 1

Entrada: 1Saída: 4Habilitado

Inovação 2

Entrada: 2Saída: 4Desabilitado

Inovação 4

Entrada: 1Saída: 5Habilitado

Inovação 6

Entrada: 3Saída: 5Habilitado

Inovação 3Entrada: 5Saída: 4Habilitado

Prole

Page 25: Deep Island Racer

Operador de Crossover / Cruzamento:

1 2

4

5

1 2 3

4

5

1 2 3

4

5

Algoritmo de Treinamento

Page 26: Deep Island Racer

1 2

4

5

1 2

4

56

Algoritmo de Treinamento

Mutação por inclusão de um novo nó.

Inovação 1Entrada: 1Saída: 4Habilitado

Inovação 2

Entrada: 2Saída: 4Desabilitado

Inovação 3

Entrada: 5Saída: 4Habilitado

Inovação 5

Entrada: 2Saída: 5Habilitado

Antes

Inovação 6

Entrada: 1Saída: 6Habilitado

Inovação 1Entrada: 1Saída: 4Desabilitado

Inovação 2

Entrada: 2Saída: 4Desabilitado

Inovação 3

Entrada: 5Saída: 4Habilitado

Inovação 5

Entrada: 2Saída: 5Habilitado

Inovação 7

Entrada: 6Saída: 4Habilitado

Depois

Page 27: Deep Island Racer

Controlador Treinado

Page 28: Deep Island Racer

Demonstração

Pista Tipo I

Page 29: Deep Island Racer

Demonstração

Pista Tipo II

Page 30: Deep Island Racer

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; Cardamone et 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.

Page 31: Deep Island Racer

Trabalhos Futuros

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.

Page 32: Deep Island Racer

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, (Acesso em 11/11/2010).

[11] neat-python, “neat-python - Project Hosting on Google Code”, http://code.google.com/p/neat-python/, 2010 (Acesso em 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 (Acesso em 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, (Acesso em 05/12/10).

Page 33: Deep Island Racer

Deep Island Racer

Aluno: Túlio Ligneul Santos DRE: 106017420Orientador: Ricardo Marroquim

Um jogo de corrida em ambiente virtual

Apresentação de Projeto de Graduação