Top Banner
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
33

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

Apr 18, 2015

Download

Documents

Internet User
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

Movimentação dos Carros

Resultado:

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

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

Controlador Neural Rede Neural:

Camada de SaídaCamada de Entrada

Camada de Intermediária (ou oculta)

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

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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

1 23

4

5

Algoritmo de Treinamento

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

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

Operador de Crossover / Cruzamento:

1 2

4

5

1 2 3

4

5

1 2 3

4

5

Algoritmo de Treinamento

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

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

Controlador Treinado

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

Demonstração

Pista Tipo I

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

Demonstração

Pista Tipo II

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

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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: Aluno: Túlio Ligneul Santos DRE: 106017420 Orientador: Ricardo Marroquim Um jogo de corrida em ambiente virtual Apresentação de Projeto de Graduação.

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