Logo do repositório
 
A carregar...
Miniatura
Publicação

Procedural content generation in a 2-D platformer

Utilize este identificador para referenciar este registo.
Nome:Descrição:Tamanho:Formato: 
TM_Andre_Sistelo.pdf8.14 MBAdobe PDF Ver/Abrir

Resumo(s)

Procedural content generation (PCG) is the process of automatically generating content through the use of algorithms, making it a concept that involves artificial intelligence (AI). This project suggests the construction of a Rhythm-Based Level generator with online dynamic difficulty adjustment (DDA) in a 2-D platformer, using the idea of the launchpad generator [1] as a basis. DDA is a technique that adjusts the difficulty of a game to the player’s skill. The goal of this project is to contribute to the research in this area by either adding or improving methods of generating content. To create the generator, a different approach to generate rhythms and actions is considered, where an action is defined as an input or a combination of inputs that allows the player to progress in the game, and a rhythm is viewed as a group of actions. These actions are converted into playable geometry that forms a level. An analysis of the properties of each type of action was made to ensure that the generated geometry is possible to complete and the difficulty is adequate as well as adaptable. To validate the generated levels, an artificially intelligent player (AI agent) is used to set benchmark values for the DDA method and ensure that the difficulty of each generated level is discernible. Tests with this agent are conducted to verify the quality of the generated content. The evaluation function and geometry probabilities are constantly altered to reach results that suit the agent. The tests showed the average difficulty of the levels was converging to what was considered an adequate bound value. Tests with real players are performed to validate the results of the agent’s test and to obtain different opinions regarding the quality of the generated content, and the viability of the PCG and DDA methods. The results demonstrated that the players showed interest in the concepts explored in this study. The project concludes with an analysis of the viability of these methods, the qualities of the work done, and what can be improved in the future.
Este projeto veio no seguimento de outra tese com tema semelhante e teve o objetivo de implementar as melhorias propostas pela tese anterior. Para esta tese desenvolveu-se um gerador procedimental de níveis para um jogo de plataformas 2-D, em que a dificuldade dos níveis era adaptada consoante as habilidades do jogador durante o tempo de jogo. Um nível é fragmentado em múltiplos segmentos, sendo que os subsequentes elementos do nível eram formados à medida que o jogador progredia no jogo. Geração procedimental de conteúdo é o processo de gerar automaticamente conteúdo através de algoritmos. Quando aplicada a vídeo jogos, o conteúdo surge na forma de: niveis, modelos 3-D, imagens 2-D, objetos de jogo, etc. Este tipo de geração tem a vantagem de ser maioritariamente realizada por computador, reduzindo o tempo de trabalho que seria consumido a criar o respetivo conteúdo. Como o conteúdo é gerado aleatoriamente a sua qualidade está dependente das restrições colocadas no gerador, por isso a implementação deste tipo de métodos considera-se um processo complicado quando se pretende produzir bons resultados consistentemente. Como a qualidade do conteúdo gerado pode ser inconsistente, existe sempre um risco associado à sua implementação em jogos comerciais, assim este projeto pretende adicionar ou melhorar técnicas de geração procedimental de conteúdo para aumentar a viabilidade da sua execução em jogos atuais. A técnica que permite o constante ajuste da dificuldade num jogo denomina-se ajustamento dinâmico de dificuldade. Estes tipos de métodos permitem alterar a dificuldade de um jogo consoante o progresso e as habilidades demonstradas pelo jogador, com o objetivo de tornar o jogo mais apelativo. Se um jogador sentir muita facilidade durante o jogo, a contínua exposição a este conteúdo com igual grau de dificuldade pode afectar negativamente a experiência do jogador. A mesma lógica aplica-se a conteúdo que é considerado muito difícil. Para evitar estes cenários, métodos que ajustem a dificuldade tem que ser implementados corretamente. No projeto foi inicialmente realizada uma investigação de várias técnicas de geração procedimental de conteúdo e ajustamento dinâmico de dificuldade. Realizou-se uma análise dos diferentes tipos de técnicas e das suas propriedades, de forma a considerar várias metodologias que pudessem ser utilizadas no projeto. Este projeto tencionou suceder o anterior, visto que o gerador de conteúdo desenvolvido tem na sua base o conceito de ritmos. Ritmos descrevem o tipo de geometria que pode ser gerada aleatoriamente num dado nível. Um ritmo é definido como um conjunto de teclas ou ações que ao serem executadas corretamente, permitem ao jogador completar o segmento do nível que é caracterizado por um conjunto de inputs. Quando a secção constituída pelo ritmo é concluída, um novo ritmo de dificuldade adaptada é gerado. Este ciclo continua até o jogo terminar. Primeiramente para criar o gerador de conteúdo, definiu-se a metodologia utilizada para a geração de ações. Nesta secção foi definido o que é uma ação, as suas propriedades, como é que uma ação varia consoante o tipo de jogo (sendo o nosso caso um jogo de plataformas), o que se deve considerar ao gerar uma instância de ação e os principais aspetos que afetam a dificuldade de uma ação. Com esta análise foi possível averiguar uma forma viável de gerar níveis para este projeto. Concluiu-se que seria benéfico gerar geometria que proporcionasse o jogador a pressionar as teclas (inputs) que correspondiam a essa geometria, em oposição a gerar tipos de teclas que posteriormente seriam associadas a uma geometria. Foi realizada uma análise das mecânicas do jogo (limites físicos do jogo, e os eventos e interações que são possíveis de executar ao pressionar conjuntos de inputs) para determinar os tipos de geometrias que correspondem a cada ação. Este estudo possibilitou associar a cada ação um nível de dificuldade que estava, diretamente relacionado com o conjunto de inputs e a forma de os executar. Para desenvolver o método de dificuldade adaptativa foi necessário estabelecer métricas que caracterizam qualitativamente o progresso do jogador em cada ritmo. Cada parâmetro está correlacionado com o quão bem um jogador executa as ações associadas ao ritmo. Os valores obtidos em cada parâmetro permitiram avaliar a velocidade, precisão, tempo de reação e coordenação do jogador ao completar uma geometria. Cada métrica encontra-se relacionada com um peso que ajusta o impacto da variável na adaptação de dificuldade. Estas definições possibilitaram a construção de uma função de avaliação cujo valor, quantificava a qualidade da execução das ações, e consequentemente a dificuldade do ritmo seguinte. A validação do gerador foi realizada através de testes com um agente de inteligência artificial. O agente tinha a função de obter tempos de referência para o método de dificuldade adaptativa. Ponderou-se que tipo de comportamento deveria ser usado pelo agente e concluiu-se que uma árvore de decisões seria um estilo comportamento adequado devido ao tipo de conteúdo que é gerado. O agente consegue identificar uma geometria que se encontra relacionada com uma ação, e executa-a automaticamente pressionando as teclas associadas à geometria apresentada. Os testes com o agente consistiram na extração de dados usados na função de avaliação enquanto o agente jogava níveis criados pelo gerador com diversas dificuldades. Os objetivos destes testes foram, verificar se era possível distinguir a diferença na dificuldade dos níveis através das métricas utilizadas para avaliar a execução do agente, e se o agente convergia para um intervalo de dificuldade adequado. Teorizou-se que, para cumprir estes objetivos, o agente teria que obter valores superiores nas dificuldade mais baixas e valores gradualmente menores a medida que a dificuldade dos níveis aumentava. No entanto, para garantir que a função de avaliação atribuía valores adequados, nos testes iniciais não foi introduzida dificuldade adaptativa. Quando um teste terminava os resultados eram analisados e posteriormente eram executadas alterações nos pesos da função de avaliação e na probabilidade de gerar ações, com o objectivo de aperfeiçoar os resultados e a qualidade do conteúdo gerado. Nos resultados dos testes foi evidenciada uma dispersão que pode ser considerada significativa, no entanto verificou-se resultados positivos que fundamentavam os argumentos e que cumpriam os objetivos do projeto. Esta dispersão era proveniente da aleatoriedade do gerador e do comportamento do agente. Nos testes com dificuldade adaptativa, verificou-se que em média o agente obtinha mais progresso no jogo à medida que a dificuldade diminuía, ou seja obteve uma forma de distinguir os níveis de dificuldade. No que diz respeito a convergência do agente para um grau de dificuldade, o agente em média convergia para um intervalo de dificuldades de [5, 6.6] (os valores variam entre 0 e 10). Para terminar a validação testou-se o gerador com jogadores reais. Um grupo de dez jogadores com experiências diversas jogou níveis criados pelo nosso gerador com e sem ajustamento dinâmico de dificuldade. Realizou-se um quiz para obter a opinião de cada um dos jogadores sobre a qualidade da adaptação de dificuldade, e a preferência individual entre o jogo com e sem ajuste na dificuldade. Adicionalmente foi posta em questão a relevância da reutilização dos conceitos de geração procedimental de conteúdo e dificuldade adaptativa em jogos atuais. Os resultados do quiz mostraram que em geral os jogadores sentem que a adaptação foi adequada e que ambos os conceitos de geração de níveis introduzidos no gerador são interessantes para serem explorados noutros jogos. Os poucos jogadores que discordavam com a qualidade da adaptação, tendiam para valores de dificuldades baixos (entre 0 e 2). Estas opiniões derivavam da geração de ações com dificuldades ligeiramente superiores nas dificuldades mais baixas. Embora estas geometrias exigiam uma execução de inputs que era considerada mais difícil de acordo com os parâmetros estabelecidos, estas alterações vieram no âmbito de aumentar o número de geometrias possíveis em dificuldades inferiores. O projeto conclui-se com a análise dos resultados obtidos e uma discussão da viabilidade do uso das técnicas de geração procedimental de conteúdo e ajustamento dinâmico de dificuldade nos jogos comerciais. Finalmente o projeto termina mencionando algumas sugestões de inovações e reparos na abordagem utilizada.

Descrição

Tese de Mestrado Integrado em Engenharia Física, Faculdade de Ciências, Universidade de Lisboa, 2022

Palavras-chave

Geração procedimental de conteúdo Ajustamento dinâmico de dificuldade Inteligência artificial (AI) Ritmo Ação Teses de mestrado - 2022

Contexto Educativo

Citação

Projetos de investigação

Unidades organizacionais

Fascículo

Editora

Licença CC