Desenvolvimento de Algoritmo de Geração Procedural de Mapas Coerente Com Assets Visuais
A downloadable game
Introdução
Nesse relatório será descrito o progresso de um projeto que será realizado para, baseado no conteúdo de foco da disciplina de Programação Aplicada Avançada, realizar a proposta de desenvolver um jogo funcional com mapa gerado proceduralmente e com arte visual que não apresenta conflitos com tal geração.
Objetivos
1.1.1 Objetivo Geral
O objetivo deste projeto consiste em desenvolver um protótipo de um Extraction Shooter, ou Tiro de Extração (COSTA, 2023), os objetivos principais abrange fazer um sistema de geração procedural de mapas e a produção de uma direção de arte coesa com o ambiente gerado pelo programa.
1.1.2 Objetivos específicos
- Produzir Assets: O jogo será populado por modelos 3D de temática de masmorra (barris, baús, tochas, entre outros);
- Relacionar arte e mapa procedural: Definir a melhor maneira de relacionar arte e assets autorais com mapas gerados proceduralmente;
- Definir testes: Definir disponibilização de máquinas e pessoas dispostas a colaborar para os testes;
1.2 Procedimentos metodológicos
Para a parte técnica do projeto, será usado a linguagem de Blueprints da UE5, e na parte artística os modelos estão sendo feitos no Blender antes de serem exportados para o motor de jogo. Reuniões estão sendo feitas semanalmente no ambiente virtual com documentação e outros arquivos virtuais sendo organizados e armazenados pela nuvem.
1.2.1 Metodologia de Projeto
Para a produção desse projeto está sendo tomada uma metodologia similar ao Modelo Agile (Beck et al., 2001b), de comunicação rápida e constante iterações de novos passos, com reuniões regulares alinhando o avanço nas áreas de programação e arte visual, essas sendo constantemente trabalhadas ao longo do semestre.
2. Tecnologia
Para o desenvolvimento deste projeto, está sendo utilizado o motor de jogo Unreal Engine 5 (UE5), fazendo uso da linguagem visual Blueprint que, de acordo com a documentação da Unreal, “é um sistema de programação de jogabilidade completo baseado no conceito de usar uma interface baseada em nodos para criar elementos de jogabilidade dentro do Editor Unreal.”
Em conjunto será utilizado o sistema de compartilhamento em nuvem GitHub, para o armazenamento e administração do código e suas alterações. O Git é usado para armazenar o código-fonte de um projeto e rastrear o histórico completo de todas as alterações neste código. Ele permite que os desenvolvedores colaborem em um projeto de forma mais eficaz, fornecendo ferramentas para gerenciar possíveis alterações conflitantes de vários desenvolvedores.
2.1 Motor de Jogo
A Unreal Engine se firma hoje como um dos motores gráficos mais importantes da indústria de jogos, graças à sua filosofia acessível e facilidade de uso. A Epic Games oferece uma ampla documentação, tutoriais detalhados e um fórum de comunidade ativa, onde desenvolvedores podem compartilhar dúvidas e soluções, incluindo suporte de profissionais diretamente ligados ao motor.
2.2 Otimização
Para a otimização utilizaremos a Unreal Insights, uma ferramenta de telemetria e análise oferecida pela Unreal Engine 5. O processo tem 3 componentes: Trace, Trace Server e Unreal Insights.
Trace é um framework que grava a performance de um sistema durante o uso de um processo, que então é salvo no Trace Server.
O Trace Server recebe as gravações dos Traces e guarda as sessões diferentes em uma pasta que é acessada pela Unreal Insights UI.
A Unreal Insights pode carregar as sessões diferentes para analisar o uso de vários componentes do sistema, como o GPU, CPU e memória, assim como a network, UI, Asset Loading e vários outros processos.
Figura 1 - Gráfico de Performance da GPU e CPU. Disponível em: Unreal Insights in Unreal Engine Acesso em: 2025
2.3 Armazenamento de Dados
A UE5 possui capacidade de armazenamento de arquivos e assets dentro do próprio motor, facilitando assim a organização de todo o material que pode ser usado para o desenvolvimento de projeto.
Figura 2 - Interface de conteúdos da Unreal Engine 5. Fonte Autoral - 2025
Também está sendo utilizado a ferramenta de extensão GitHub Desktop para o compartilhamento online do projeto em sua integridade completa, impossibilitando assim a perda de qualquer tipo de asset e atualização realizada durante o desenvolvimento entre os membros do grupo, permitindo assim o andamento do projeto com poucos contratempos.
Figura 3 - Interface de mudanças. GitHub Desktop. Fonte Autoral - 2025
3. Características e Testes
3.1 Geração Procedural
A geração procedural é uma técnica utilizada em animações, efeitos visuais, desenvolvimento de jogos, e muitas outras áreas da criação de conteúdo digital algoritmicamente, ao contrário de criar manualmente.
De acordo com estudos sobre o tema, como os de Amiri-Chimeh; Haghighi; Vahidi-Asl (2022) Um conteúdo crítico em muitos gêneros de jogos são os mapas. Mapas são mundos virtuais que atuam como infraestrutura para outros aspectos dos jogos. Os mapas determinam locais relacionados à jogabilidade, como arenas de combate e pontos de spawn em jogos de tiro em primeira pessoa (FPS) ou locais de recursos e canteiros de obras em jogos de estratégia em tempo real (RTS). Além disso, os mapas incluem locais relacionados à história onde a narrativa do jogo se desenrola.
3.2 Inteligência Artificial
IA em jogos são utilizadas de muitos jeitos, como padrões de movimento, máquinas de estado e redes neurais. Na maioria dos casos, a IA é utilizada como oposição para o jogador, como em Pac Man (1980) com os padrões de movimento usados pelos fantasmas, Doom (1992) que usa máquinas de estado para alterar os comportamentos de seus diversos inimigos e Supreme Commander 2 (2010) usou redes neurais para controlar o sistema “fight or flight” dos oponentes.
Para o desenvolvimento dos comportamentos da IA dos inimigos, serão utilizadas as técnicas: Máquinas de Estado Finito, que tem como função expressar o comportamento dos personagens, permitindo mudanças de ações dos personagens; Pathfinding, é uma técnica que verifica o melhor caminho possível para o personagem percorrer (Bourg, 2004); Padrões de Movimento, que serve para definir os estados de animados do personagem, desde movimentação à ações de ataque e defesa (Lamothe, 1999).
3.3 Delineamento de Testes
Os testes serão realizados tanto localmente em computadores próprios, quanto em computadores disponibilizados pela universidade. Dessa forma será possível realizar os testes com perspectivas do próprio grupo e de voluntários que tenham o interesse para colaborar.
Para a coerência esperada entre a parte artística e geração procedural de mapas, serão realizados testes periódicos durante o desenvolvimento do projeto para garantir a melhor sintonia dos parâmetros visuais e estéticos.
Considerações Finais
Descobrir uma maneira de desenvolver a relação entre arte autoral e mapas gerados proceduralmente se mostrou desafiador, de forma que soluções que pareciam simples não colaboraram com o desenvolvimento do projeto.
A problemática que foi apresentada ainda não teve uma solução definida oficialmente, porém ainda estamos à procura de métodos que possam ajudar, sejam eles mais específicos de forma que resolvam por partes ou um método que colabore para a resolução do problema de uma vez só. Porém
Referências
About GitHub Desktop. Disponível em: . Acesso em: 03 mai. de 2025.
AMIRI-CHIMEH, S.; HAGHIGHI, H.; VAHIDI-ASL, M. Jahan: A Framework for Procedural Map Generation from Design Specifications. SSRN Electronic Journal, 2022.
BECK, K., BEEDLE, M., Van Bennekum, A., COCKBURN, A., CUNNINGHAM, W., FOWLER, M., ... & THOMAS, D. (2001). Manifesto for agile software development. The Agile Manifesto. 2001
BOURG, David M.; SEEMAN, Glenn. AI for Game Developers. Sebastopol:
O’Reilly. 2004
COSTA, D. O que é Extraction Shooter e quais os melhores jogos disponíveis. Disponível em: . Acesso em: 10 mai. 2025.
EGENFELDT-NIELSEN, S.; JONAS HEIDE SMITH; SUSANA PAJARES TOSCA. Understanding video games : the essential introduction. 5. ed. New York, Ny: Routledge, 2024.
Epic Games, Blueprints Visual Scripting in Unreal Engine. Disponível em: . Acesso em: 10 mai. de 2025.
Epic Games, Unreal Insights in Unreal Engine. Disponível em: . Acesso em: 10 mai. de 2025.
GOBETE FILHO, A. R.; LUCCA FILHO, J. DE. INTELIGÊNCIA ARTIFICIAL EM JOGOS DIGITAIS. Revista Interface Tecnológica, v. 19, n. 2, p. 342–354, 2022.
LAMOTHE, André. Tricks of the Windows Game Programming Gurus: Fundamentals of 2D And 3D Game Programming. Indianapolis: Sams. 1999.
LUTKEVICH, B. What is GitHub? - Definition from WhatIs.com. Disponível em: . Acesso em: 10 mai. de 2025.
Leave a comment
Log in with itch.io to leave a comment.