THAIS CARDOSO DA SILVA
COMPARAÇÃO DE ALGORITMOS PARA GERAÇÃO
PROCEDURAL DE FASES
LONDRINA 2018
THAIS CARDOSO DA SILVA
COMPARAÇÃO DE ALGORITMOS PARA GERAÇÃO
PROCEDURAL DE FASES
Versão Preliminar de Trabalho de Conclusão de Curso apresentado ao curso de Bachare-lado em Ciência da Computação da Univer-sidade Estadual de Londrina para obtenção do título de Bacharel em Ciência da Compu-tação.
Orientador: Prof(a). Jacques Duílio Brancher
LONDRINA 2018
Ficha de identificação da obra elaborada pelo autor, através do Programa de Geração Automática do Sistema de Bibliotecas da UEL
da Silva, Thais Cardoso.
Comparação de algoritmos para geração procedural de fases / Thais Cardoso da Silva. - Londrina, 2018.
20 f.
Orientador: Jacques Duílio Brancher.
Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) -Universidade Estadual de Londrina, Centro de Ciências Exatas, Graduação em Ciência da Computação, 2018.
Inclui bibliografia.
1. Geração Procedural de Contéudo - TCC. I. Brancher, Jacques Duílio . II. Universidade Estadual de Londrina. Centro de Ciências Exatas. Graduação em Ciência da Computação. III. Título.
THAIS CARDOSO DA SILVA
COMPARAÇÃO DE ALGORITMOS PARA GERAÇÃO
PROCEDURAL DE FASES
Versão Preliminar de Trabalho de Conclusão de Curso apresentado ao curso de Bachare-lado em Ciência da Computação da Univer-sidade Estadual de Londrina para obtenção do título de Bacharel em Ciência da Compu-tação.
BANCA EXAMINADORA
Orientador: Prof(a). Jacques Duílio Brancher
Universidade Estadual de Londrina
Prof. Dr. Segundo Membro da Banca Universidade/Instituição do Segundo Membro da Banca – Sigla instituição
Prof. Dr. Terceiro Membro da Banca Universidade/Instituição do Terceiro Membro da Banca – Sigla instituição
Prof. Ms. Quarto Membro da Banca Universidade/Instituição do Quarto Membro da Banca – Sigla instituição
Este trabalho é dedicado às crianças adultas que, quando pequenas, sonharam em se tornar cientistas.
AGRADECIMENTOS
Os agradecimentos principais são direcionados à Gerald Weber, Miguel Frasson, Leslie H. Watter, Bruno Parente Lima, Flávio de Vasconcellos Corrêa, Otavio Real Sal-vador, Renato Machnievscz1 e todos aqueles que contribuíram para que a produção de
trabalhos acadêmicos conforme as normas ABNT com LATEX fosse possível.
Agradecimentos especiais são direcionados ao Centro de Pesquisa em Arquitetura da Informação2 da Universidade de Brasília (CPAI), ao grupo de usuários latex-br3 e aos
novos voluntários do grupo abnTEX24 que contribuíram e que ainda contribuirão para a
evolução do abnTEX2.
1
Os nomes dos integrantes do primeiro projeto abnTEX foram extraídos de <http://codigolivre.org. br/projects/abntex/>
2 <http://www.cpai.unb.br/>
3 <http://groups.google.com/group/latex-br>
“Não vos amoldeis às estruturas deste mundo, mas transformai-vos pela renovação da mente, a fim de distinguir qual é a vontade de Deus: o que é bom, o que Lhe é agradável, o que é perfeito. (Bíblia Sagrada, Romanos 12, 2))
DA SILVA, T. C.. Comparação de algoritmos para geração procedural de fases. 2018. 33f. Trabalho de Conclusão de Curso – Versão Preliminar (Bacharelado em Ciência da Computação) – Universidade Estadual de Londrina, Londrina, 2018.
RESUMO
Em um jogo educacional, é ideal manter a atenção do jogador, para isso o jogo deve continuar a ser interessante durante seus níveis independente do usuário jogador. Para isso é necessário uma forma de gerar conteúdo personalizado, assim, esse trabalho apresenta um estudo em algoritmos para geração de fases em jogos. O seu objetivo é através de teste com jogadores determinar qual algoritmo cria fases mais agradáveis considerando a preferencia humana.
Palavras-chave: Jogos digitais. Conteúdo para jogos digitais. Geração procedural de
DA SILVA, T. C.. Comparison of algorithms for procedural generation of game
phases. 2018. 33p. Final Project – Draft Version (Bachelor of Science in Computer
Sci-ence) – State University of Londrina, Londrina, 2018.
ABSTRACT
In an educational game, it’s necessary to keep the attention of the player, the game should continue to be interesting during their levels independent of the user. For this it is necessary a way to generate personalized content, thus, this work presents a study in algorithms for generation of phases in games. The goal is through testing with players determine which algorithm creates more enjoyable phases considering the human prefer-ence.
Keywords: Digital games. Content for digital games. Procedural Content generation.
LISTA DE ABREVIATURAS E SIGLAS
ABNT Associação Brasileira de Normas Técnicas
BNDES Banco Nacional de Desenvolvimento Econômico e Social
IBGE Instituto Nacional de Geografia e Estatística
IBICT Instituto Brasileiro de Informação em Ciência e Tecnologia
SUMÁRIO
1 INTRODUÇÃO . . . . 23
2 FUNDAMENTAÇÃO TEÓRICA . . . . 25
2.1 Definição de Conteúdo . . . . 25
2.2 Geração Procedural de Conteúdo(GPC) . . . 25
2.2.1 Taxonomia . . . 26
2.3 Estado da Arte . . . . 26
3 DESENVOLVIMENTO . . . . 27
4 CONTRIBUIÇÕES E/OU RESULTADOS ESPERADOS . . . 29
5 CONCLUSÃO . . . . 31
23
1 INTRODUÇÃO
O mercado de jogos atual enfrenta um problema com a demanda dos usuários por cada vez mais conteúdo, uma demanda que eleva o já alto custo de produção monetária, ainda mais considerando que esta produção não é escalável e portanto utiliza um alto número de mão de obra e tempo [1]. Uma solução usada esse problema é a Geração Pro-cedural de Conteúdo (GPC), onde procedimentos computacionais são usados para criar conteúdos (i.e. arvores [2], rios [3], terrenos [4], níveis [5]), que podem ser usados em jogos. Essa solução tem como características promover diversidade à suas saídas [6], permitir que estas saídas sejam controladas através de parâmetros [7], possibilitar em tempo real uma reação do jogo [8], bem como proporcionar uma redução do espaço ocupado pelos dados para seu conteúdo [1].
Uma etapa importante na utilização da GPC em um jogo é selecionar o algoritmo a ser implementado. Para este fim, uma avaliação da performance de diferentes propostas pode ser realizada, analisando a expressividade [6] de cada uma delas ou comparando a preferencia dos usuários pelo conteúdo criado pelos diferentes algoritmos [9]. Baseado neste contexto, o foco desse trabalho é investigar diferentes técnicas para geração procedural de níveis (fases) e identificar qual delas é preferida pelos usuários de jogo educacional, SpaceMath.
25
2 FUNDAMENTAÇÃO TEÓRICA
Para o desenvolvimento desse trabalho será usada a geração procedural de con-teúdo. A seguir será apresentado os conceitos necessários para melhor compreensão esse trabalho.
2.1
Definição de Conteúdo
Boa parte dos elementos que compõe um jogo são considerados conteúdo [2], esses são separados em categorias em forma de pirâmide [1].
Na base da pirâmide estaria os Bits de jogo, as unidades elementares do conteúdo de um jogo, são elementos como texturas, sons, vegetação, construções, comportamento e elementos naturais (fogo, água, pedra e nuvens).
Sobre ele estaria o Espaço de jogo, o ambiente onde o jogo se manifesta e que utiliza os Bits de jogo, podendo ser ambientes internos, mapas externos (que podem conter deformações de terreno como montanhas e ravinas, e corpos de água como rios, lagos e oceanos).
Em seguida, temos os Sistemas de jogo, usados para fazer o jogo mais acreditável e assim mais atrativo aos jogadores. Estes podem ser ecossistemas, redes de rotas e estradas, ambientes urbanos e comportamento de entidades.
A próxima classe é o Contexto de jogo, o jeito em que os eventos do jogo se desenrolam. Pode ter como elementos puzzles, histórias, eventos e niveis.
2.2
Geração Procedural de Conteúdo(GPC)
GPC pode ser definida como a geração de conteúdo através de algoritmos com pouca ou nenhuma intervenção do usuário. Muitos jogos utilizam esse sistema atualmente para geração de alguma parte dos seus conteúdos. Spore(2008), Minecraft(2009) e Dwarf Fortress(2006) são exemplos de jogos que utilizam GPC, cada um desses usa geração procedural em uma ou classes de conteúdo especificadas anteriormente [1].
Um dos métodos de uso do GPC é a Geração Procedural baseada em Busca que é utilizada como algoritmo de geração e teste [10]. É um algoritmo evolucionário, baseado na teoria da evolução darwiniana, que consiste no uso da seleção natural numa população formada por candidatos a solução do problema. Na seleção natural os candidatos que pos-suem a maior aptidão em algum parâmetro, determinado pelo programador, tem a maior chance de reprodução. Para a descoberta dessa aptidão todos os indivíduos da população
26
são testados no parâmetro escolhido. Num algoritmo esse tipo é comum a implementação de crossovers, mistura de características dos indivíduos, e mutações, mudanças aleatórias nas características.
Em um conteúdo gerado por GPC é desejado certas características, sendo algumas delas: a Velocidade, capacidade de criar conteúdo satisfatório rapidamente, a Diversidade, a geração de conteúdo com grande variação e a Controlabilidade, o nível de controle do usuário sobre as saídas dos algoritmos.
2.2.1 Taxonomia
Uma técnica de GPC pode ser definida como offline quando a geração ocorre durante o estado de carregamento inicial do jogo ou previamente ao carregamento, e online quando ela a geração ocorre em tempo real [2].
Os algoritmos também podem ser determinísticos, se diante de uma mesma entrada sempre apresentarem a mesma saída, e estocásticos caso se tenha uma certa dose de variação para a mesma entrada.
27
3 DESENVOLVIMENTO
Para atingir o objetivo estabelecido o jogo SpaceMath será utilizado como testbed. Este é um jogo educacional sobre matemática, que contém uma versão estática, com 20 fases criadas por um desenvolvedor de jogos, e outra versão dinâmica, onda os níveis são gerados proceduralmente por um algoritmo Construtivo similar ao descrito em [9].
Além disso, o algoritmo evolucionário Baseado em busca apresentado em [9] será usado nas comparações, bem como um outro algoritmo ainda a ser escolhido.
Como a função dos algoritmos escolhidos é criar fases num nível de dificuldade em que o jogador continue se divertindo, o próximo passo é ajustar os algoritmos de forma que a suas fases geradas considerem esse fator.
No que tange a comparação das propostas, a preferencia do usuário será o fator principal. Para coletar essa preferencia, será implementado um sistema de coleta de votos. O formato usado será a comparação todos contra todos, onde cada usuário jogará um fase com um algoritmo e depois uma fase gerada com o outro e votará em qual prefere.
Com os dados coletados, será feito um relatório mostrando os resultados e compa-rando os algoritmos utilizados.
29
4 CONTRIBUIÇÕES E/OU RESULTADOS ESPERADOS
Com esse trabalho busca-se, através da comparação de abordagens já estabelecidas na literatura, determinar qual delas é melhor, considerando como melhor o algoritmo que obter suas fases preferidas em comparação as outras, em uma aplicação especifica. Além disso esta pesquisa contribuirá para um projeto de mestrado identificando, entre as propostas do estado da arte, qual delas é melhor para a aplicação analisada em ambos trabalhos.
31
33
REFERÊNCIAS
[1] HENDRIKX, M. et al. Procedural content generation for games: A survey. TOMCCAP, v. 9, p. 1:1–1:22, 2013.
[2] SHAKER, N.; TOGELIUS, J.; NELSON, M. J. Procedural Content Generation in Games: A Textbook and an Overview of Current Research. [S.l.]: Springer, 2016. [3] GÉNEVAUX, J.-D. et al. Terrain generation using procedural models based
on hydrology. ACM Trans. Graph., ACM, New York, NY, USA, v. 32, n. 4, p. 143:1–143:13, jul. 2013. ISSN 0730-0301. Disponível em: <http: //doi.acm.org/10.1145/2461912.2461996>.
[4] ASHLOCK, D. A.; GENT, S. P.; BRYDEN, K. M. Evolution of l-systems for compact virtual landscape generation. In: IEEE. Evolutionary Computation, 2005. The 2005 IEEE Congress on. [S.l.], 2005. v. 3, p. 2760–2767.
[5] FERREIRA, L.; PEREIRA, L.; TOLEDO, C. A multi-population genetic algorithm for procedural generation of levels for platform games. In: Proceedings of the Companion Publication of the 2014 Annual Conference on Genetic and Evolutionary Computation. New York, NY, USA: ACM, 2014. (GECCO Comp ’14), p. 45–46. ISBN 978-1-4503-2881-4. Disponível em: <http://doi.acm.org/10.1145/2598394.2598489>.
[6] SMITH, G.; WHITEHEAD, J. Analyzing the expressive range of a level generator. In: Proceedings of the 2010 Workshop on Procedural Content Generation in Games. New York, NY, USA: ACM, 2010. (PCGames ’10), p. 4:1–4:7. ISBN 978-1-4503-0023-0. Disponível em: <http://doi.acm.org/10.1145/1814256.1814260>.
[7] TOGELIUS, J. et al. Procedural content generation: goals, challenges and actionable steps. v. 6, p. 61–75, 01 2013.
[8] CABRERA, R. L. et al. Procedural content generation for real-time strategy games. IJIMAI, Universidad Internacional de La Rioja, v. 3, n. 2, p. 40–48, 2015.
[9] KHALIFA, A. et al. General video game level generation. In: ACM. Proceedings of the Genetic and Evolutionary Computation Conference 2016. [S.l.], 2016. p. 253–259. [10] TOGELIUS, J. et al. Search-based procedural content generation: A taxonomy and
survey. IEEE Transactions on Computational Intelligence and AI in Games, v. 3, n. 3, p. 172–186, Sept 2011. ISSN 1943-068X.