título do resumo

Propaganda
Geração Procedural de Mapa Pseudo-Infinito
Felipe Abrahão Ferrari, Luiz Antonio Lima Rodrigues (Bolsista da Fundação
Araucária/PIBIC), Paulo Ricardo Bueno (Bolsista da Fundação
Araucária/PIBIC)
Ricardo Inácio Álvares e Silva, Mario Henrique Akihiko da Costa Adaniya
e-mail: [email protected]
Centro Universitário Filadélfia/Departamento de Computação.
Área e sub-área do conhecimento: Ciências Exatas e da Terra/Ciência da
Computação.
Palavras-chave: Geração Procedural de Conteúdo; mapa pseudo-infinito;
entretenimento eletrônico.
Resumo
Este trabalho é uma evolução ao trabalho iniciado em 2015. Através de
algumas técnicas como Evolução Gramatical e Agentes de Software, e
geramos um mapa pseudoinfinito. Aplicamos em um jogo rogue-like, como
prova de conceito. O sistema desenvolvido se demonstrou eficiente no sentido
que, a geração é em tempo de execução e os mapas gerados são jogáveis.
Introdução
Atualmente, com a evolução da tecnologia no desenvolvimento de jogos
eletrônicos, a geração de conteúdo vem sendo uma tarefa que tem alto custo
de tempo, trazendo a necessidade de um recurso para automatizar essa tarefa,
para melhor rendimento do desenvolvimento do jogo. A Geração Procedural de
Conteúdo (GPC) se encaixa nesse quesito, pois ele busca automatizar essa
tarefa, através diversos tipos de técnicas controláveis. O GPC pode ser
aplicado para gerar uma grande variedade de tipos de conteúdo do jogo, que é
dividida em 6 tipos de classes, cada classe é especializada por gerar
específicos conteúdos. (HENDRIKX et al., 2012).
Levando em conta o alto custo de tempo para se gerar grandes
quantidades de mapas, com a GPC se minimizaria este custo, facilitando o
desenvolvimento dos jogos. O objetivo desse projeto é desenvolver um mapa
pseudo-infinito, onde o jogador ao explorar o mapa, faz com que o mesmo
expanda proceduralmente utilizando a GPC. Com essa ideia da para trazer
1
uma grande de variedade de mapas e mantendo a complexidade do jogo
(GREUTER et al., 2003).
Revisão Bibliográfica
A utilização do GPC veio da ideia que hoje em dia para gerar mapas para os
jogos, é uma tarefa muito cara e que leva muito tempo para ser realizado, só
empresas que fizeram jogos como World of Warcraft e Halo 3, tem a
capacidade para bancar o custo para gerar os mapas, com isso era necessário
algo que minimizasse este custo e que gerasse os mapas automaticamente
(HENDRIKX et al., 2012).
Em (TOGELIUS et al., 2012) os autores discutem as técnicas de GPC de
diversos aspectos, apresentando seus pontos fortes e fracos, mesmo quando
desenvolvidas para um domínio específico. Discutem e demonstram através de
exemplos que a combinação de diferentes algoritmos juntos maximiza as
qualidade e minimiza as fraquezas, complementando-se.
Uma abordagem de cidades virtuais pseudo-infinitas é apresentada por Greuter
et al.. A cidade virtual é gerada em tempo de execução usando um numero
inteiro como seed. A utilização de uma cache com a política substituição least
recently used minimiza a regeneração procedural de construções, para
economia e utilização eficiente de memória e manter a taxa de quadros estável.
Os resultados apresentados indicam que o overhead do caching é
insignificante para construções complexas (GREUTER et al., 2003).
Métodos
Neste projeto foi utilizada a linguagem C#, e a engine Unity. Como teste, foi
utilizada uma reimplementação de um jogo guia da Unity. Sendo uma
adaptação do jogo para um mundo infinito, ele não gera uma saída. No jogo
original, a cada fase gerada, uma saída era uma produção obrigatória. No
mundo pseudoinfinito, ele não gera uma saída. Como uma prova de conceito, o
jogo também não possui objetivos para o fim.
Uma das técnicas empregadas foi Evolução Gramatical (EG) define uma
gramática na forma de Backus-Naur (BNF). Esta forma expressa uma
linguagem através de regras de produções. É representa por uma tupla N, T, P,
S; onde N é um conjunto de símbolos não terminais, os quais podem ser
expandidos em um ou mais símbolos, sendo estes também não terminais ou
terminais. Os símbolos terminais são os itens que fazem parte da linguagem de
fato, representados por T. O conjunto de regras de produções é representado
2
por P e, o ponto de início é definido por S.
Na EG, o algoritmo evolucionário é aplicado em um genótipo, definido
como um conjunto de números inteiros, onde cada um destes valores é
chamado de gene, usado na escolha da produção a ser aplicada, dado um
símbolo não terminal.
Agentes de Software (ASs) são entidades que detectam informações do
ambiente através de sensores e são capazes de agir neste (RUSSELL;
NORVIG, 2009). No algoritmo criado, estes agentes são utilizados como
construtores, agindo em uma fase inicialmente vazia, realizando o
posicionamento dos artefatos que devem estar conti- dos. Digamos que P é um
agente de proximidade, o qual deve posicionar um artefato A próximo ao
artefato B. A ação deste agente em um determinado ambiente (fase) poderia
ser definida da seguinte maneira, com um único parâmetro D, dizendo a distância máxima que A pode ser criado de B.
Resultados e Discussão
A geração foi decomposta em três partes: definição dos elementos
selecionados para uma fase; tentativa de criação destes, um a um, a partir de
uma fase vazia e; avaliação se o resultado obtido é aceitável ou não.
No primeiro passo, o algoritmo utiliza a EG. Todos os elementos
possíveis à fase são mapeados como símbolos terminais T. Em seguida, a
criação de cada um destes é realizada por ASs. Durante o processo de
configuração, é necessário que para cada um dos símbolos terminais definidos,
um AS deve ser vinculado. Então, após a definição dos elementos pela EG,
eles serão criados iterativamente por seus respectivos agentes. Isso permite
que a criação de elementos seja diferenciada, independente e/ou dependente,
além de adaptável através de parâmetros. E por fim, uma verificação é
realizada, concluindo se o mapa gerado é jogável ou não.
3
Figura 1 - Exemplo de uma parte do mapa gerado, com os elementos: personagem, inimigos, itens
e obstáculos.
Conclusões
Os resultados propostos no inicio do projeto foram alcançados, e as técnicas
empregadas alcançam o seu objetivo gerando mapas pseudo-infinitos em
tempo de execução. Para trabalhos futuros da pesquisa, além da geração e
posicionamento dos mapas, queremos estudar a analisar a geração de
construções, itens e inimigos de forma procedural também.
Agradecimentos
Agradecemos à Fundação Araucária pelo apoio ao nosso projeto e aos
professores pelas orientações.
Referências
HENDRIKX, M. et al. Procedural content generation for games: A survey. ACM
Trans. Multimedia Comput. Commun. Appl., ACM, New York, NY, USA, v. 9,
n. 1, p. 1:1–1:22, fev. 2013. ISSN 1551-6857.
Greuter , S.; Parker, J; Stewart, N; Leach, G. 2003. Real-time procedural
generation of `pseudo infinite' cities. In Proceedings of the 1st international
conference on Computer graphics and interactive techniques in Australasia and
South East Asia (GRAPHITE '03). ACM, New York, NY, USA, 87-ff.
Russell, Stuart J. e Norvig, Peter. Reinforcement Learning. In ______. Artificial
Inteligence: A modern Approach. 3 ed. Prentice Hall, 2003. p. 830-859.
TOGELIUS, J.; JUSTINUSSEN, T.; HARTZEN, A. Compositional procedural
content generation. In: Proceedings of the The Third Workshop on Procedural
Content Generation in Games. New York, NY, USA: ACM, 2012. (PCG’12), p.
16:1–16:4. ISBN 978-1-4503-1447-3.
4
Download