Geração procedural de ambientes para jogos...

1
Gera¸ ao procedural de ambientes para jogos eletrˆ onicos Gustavo Teixeira da Cunha Coelho, Orientador: Dr. Marco Dimas Gubitoso Instituto de Matem´ atica e Estat´ ıstica, Universidade de S˜ ao Paulo - Trabalho de Conclus˜ ao de Curso Introdu¸ ao Muitas vezes jogos eletrˆonicos se utilizam de gera¸ ao procedural conte´ udo para gerar jogabilidade que possa ser considerada “interessante” por seus usu´ arios. Um desses conte´ udos ´ e o “mundo do jogo”. Por´ em, o processo de cria¸ ao de tal mundo de jogo, seja de forma manual ou procedural, pode tomar muito tempo dos desenvolvedores. Neste trabalho ´ e proposta a cria¸ ao de uma ferramenta que possibilite que um usu´ ario possa facilmente criar um mapa para uso em seu jogo, sendo flex´ ıvel o suficiente tal que o mundo seja personalizado de acordo com as necessidades do usu´ ario de acordo com seu jogo. Objetivos I A gera¸ ao de mapas de altura como base para o relevo do mapa de jogo. I Amanipula¸c˜ ao de mapas de altura de acordo com parˆ ametros dados pelo usu´ ario para a cria¸ ao de um mapa de jogo. Mapas de altura Um ”mapa de altura”(Heightmap em inglˆ es) ´ e um tipo de imagem que armazena dados que descrevem a eleva¸ ao de um terreno. Existem v´ arios etodos para a cria¸ ao de um mapa de altura e v´ arios programas que os geram e utilizam. Figura : Mapa de altura da Terra. Inicialmente ´ e necess´ ario criar um mapa de altura. Ele servir´ a de base como o relevo do mapa de jogo final. Um m´ etodo bastante usado ´ e o uso de fun¸ c˜oes geradoras de ru´ ıdo, tais como Value Noise e Perlin Noise, seguidos da somat´oria de v´ arias instˆ ancias de tais ru´ ıdos. Tal m´ etodo foi o usado neste trabalho. Os mapas gerados s˜ ao salvos como uma imagem no formato Netpbm. Estes mapas s˜ ao usados como entrada do ”processador de mapas”, que modifica esse mapa de entrada de acordo com as especifica¸ c˜oes do usu´ ario para ter como resultado o mapa de jogo. Figura : Mapa de altura gerado usando Value Noise. Visualizador 3D de mapas de altura e mapas de jogo Infelizmente apenas a imagem em si n˜ ao ´ e uma boa maneira de visualizar os dados contidos no mapa, especialmente ap´os este ter sido processado. Por isso foi criado um visualizador que possa n˜ ao apenas mostrar um modelo 3D do mapa de altura, mas tamb´ em um modelo 3D do mapa de jogo ap´os o processamento terminar. Figura : Visualiza¸ ao 3D de mapa gerado com o algoritmo Perlin Noise. Transforma¸ ao de um mapa de altura em um mapa de jogo O mapa de altura gerado anteriormente ´ e ent˜ ao usado como entrada no processador para criar o mapa de jogo. Este mapa depende de uma s´ erie de parˆ ametros dados pelo usu´ ario. Os parˆ ametros descrevem, por exemplo, o limite de altura que delimita o n´ ıvel do mar, as regras de divis˜ ao do mapa em “biomas” distintos, a gera¸ ao de conte´ udo do mapa tais como rios e a an´ alise do mapa segundo v´ arios fatores para capacidade de habita¸c˜ ao populacional. Como pode se perceber, os parˆ ametros s˜ ao muitos, e por isso estes s˜ ao colocados em arquivos separados ao inv´ es de serem passados via linha de comando. A an´ alise e transforma¸ ao do mapa se d´ a nos seguintes passos: I Aplica¸ ao da linha de n´ ıvel do mar. I alculo de valores a serem usados em outros passos para cada ponto do mapa, tais como vetor normal, ˆ angulo de inclina¸ ao e continentalidade. I Divis˜ ao do mapa em biomas segundo v´ arios crit´ erios determinados pelos parˆ ametros recebidos. I Gera¸ ao de conte´ udo do mapa de acordo com os parˆ ametros recebidos. I An´ alise de capacidade de habita¸ ao de acordo com os parˆ ametros recebidos. As informa¸ c˜oes geradas neste passo s˜ ao guardadas em um arquivo com todos os dados gerados para uso ent˜ ao pelo usu´ ario final. Figura : Mapa de jogo resultante ap´os processamento utilizando regras simples. Trabalhos Futuros Apesar de j´ a estar funcional, v´ arias partes da ferramenta precisam de melhorias. I Melhorias na gera¸ ao de mapas de altura atrav´ es de t´ ecnicas mais sofisticadas para obter terrenos ainda mais realistas. I Melhorar a usabilidade dos arquivos de entrada para aumentar a flexibilidade dos mapas gerados. Trabalho de Conclus˜ ao de Curso de Bacharelado em Ciˆ encia da Computa¸ ao [email protected] linux.ime.usp.br/gustavoteixeira/mac499/

Transcript of Geração procedural de ambientes para jogos...

Geracao procedural de ambientes para jogos eletronicosGustavo Teixeira da Cunha Coelho, Orientador: Dr. Marco Dimas Gubitoso

Instituto de Matematica e Estatıstica, Universidade de Sao Paulo - Trabalho de Conclusao de Curso

Introducao

Muitas vezes jogos eletronicos se utilizam de geracao procedural conteudo paragerar jogabilidade que possa ser considerada “interessante” por seus usuarios.Um desses conteudos e o “mundo do jogo”. Porem, o processo de criacao de talmundo de jogo, seja de forma manual ou procedural, pode tomar muito tempodos desenvolvedores.Neste trabalho e proposta a criacao de uma ferramenta que possibilite que umusuario possa facilmente criar um mapa para uso em seu jogo, sendo flexıvel osuficiente tal que o mundo seja personalizado de acordo com as necessidades dousuario de acordo com seu jogo.

Objetivos

I A geracao de mapas de altura como base para o relevo do mapa de jogo.

I A manipulacao de mapas de altura de acordo com parametros dados pelousuario para a criacao de um mapa de jogo.

Mapas de altura

Um ”mapa de altura”(Heightmap em ingles) e um tipo de imagem quearmazena dados que descrevem a elevacao de um terreno. Existem variosmetodos para a criacao de um mapa de altura e varios programas que osgeram e utilizam.

Figura : Mapa de altura da Terra.

Inicialmente e necessario criar um mapa de altura. Ele servira de base comoo relevo do mapa de jogo final. Um metodo bastante usado e o uso defuncoes geradoras de ruıdo, tais como Value Noise e Perlin Noise, seguidosda somatoria de varias instancias de tais ruıdos. Tal metodo foi o usadoneste trabalho.Os mapas gerados sao salvos como uma imagem no formato Netpbm. Estesmapas sao usados como entrada do ”processador de mapas”, que modificaesse mapa de entrada de acordo com as especificacoes do usuario para tercomo resultado o mapa de jogo.

Figura : Mapa de altura gerado usando Value Noise.

Visualizador 3D de mapas de altura e mapas de jogo

Infelizmente apenas a imagem em si nao e uma boa maneira de visualizar osdados contidos no mapa, especialmente apos este ter sido processado. Porisso foi criado um visualizador que possa nao apenas mostrar um modelo 3Ddo mapa de altura, mas tambem um modelo 3D do mapa de jogo apos oprocessamento terminar.

Figura : Visualizacao 3D de mapa gerado com o algoritmo Perlin Noise.

Transformacao de um mapa de altura em um mapa de jogo

O mapa de altura gerado anteriormente e entao usado como entrada noprocessador para criar o mapa de jogo. Este mapa depende de uma serie deparametros dados pelo usuario. Os parametros descrevem, por exemplo, olimite de altura que delimita o nıvel do mar, as regras de divisao do mapa em“biomas” distintos, a geracao de conteudo do mapa tais como rios e aanalise do mapa segundo varios fatores para capacidade de habitacaopopulacional. Como pode se perceber, os parametros sao muitos, e por issoestes sao colocados em arquivos separados ao inves de serem passados vialinha de comando.A analise e transformacao do mapa se da nos seguintes passos:

I Aplicacao da linha de nıvel do mar.

I Calculo de valores a serem usados em outros passos para cada ponto domapa, tais como vetor normal, angulo de inclinacao e continentalidade.

I Divisao do mapa em biomas segundo varios criterios determinados pelosparametros recebidos.

I Geracao de conteudo do mapa de acordo com os parametros recebidos.

I Analise de capacidade de habitacao de acordo com os parametros recebidos.

As informacoes geradas neste passo sao guardadas em um arquivo com todosos dados gerados para uso entao pelo usuario final.

Figura : Mapa de jogo resultante apos processamento utilizando regras simples.

Trabalhos Futuros

Apesar de ja estar funcional, varias partes da ferramenta precisam demelhorias.

I Melhorias na geracao de mapas de altura atraves de tecnicas maissofisticadas para obter terrenos ainda mais realistas.

I Melhorar a usabilidade dos arquivos de entrada para aumentar aflexibilidade dos mapas gerados.

Trabalho de Conclusao de Curso de Bacharelado em Ciencia da Computacao [email protected] linux.ime.usp.br/∼gustavoteixeira/mac499/