Negócios em Emersão  ·  Vamos Emergir?  ·  Cadastre-se e ganhe 50 REC de bonus

O que é geração procedural: a “mágica matemática” que cria universos infinitos nos games

Redação Recifes
34 visualizações
O que é geração procedural: a “mágica matemática” que cria universos infinitos nos games
Foto: Yan Krukau / Pexels

A geração procedural, vinda da computação, é uma forma de criar dados de forma algorítmica. Ou seja, através de instruções programadas e processamento de códigos numéricos (map seed), o que permite gerar elementos aleatórios automaticamente. É um processo que permite gerar até coisas complexas como texturas e modelos 3D, como é usado na computação gráfica por exemplo. Entretanto, apesar de tantas aplicabilidades, a geração procedural surgiu justamente no desenvolvimento dos games.

Geração procedural nos games

A geração procedural nos games foi realizada com o intuito de facilitar a criação de fases, mapas e mundos, com o mínimo de esforço humano. Para isso, são utilizados certos algoritmos e técnicas, de acordo com o tipo de conteúdo que será criado.

Grafos aleatórios

O Randomized graph traversal (travessia aleatória de grafos) é comumente utilizado em geradores de dungeons, ou em mapas ramificados (como em Slay the Spire e FTL: Faster Than Light). Esse processo é realizado com a construção de grafos (modelos matemáticos) que constroem salas e conexões, enquanto aplicam regras pré-definidas referentes a situações como mínimo de caminho, quantidade de barreiras (como portas trancadas ou outros tipos de obstruções que precisam de determinados itens/habilidades para desbloquear), e becos sem saída.

Todos esses elementos, geralmente, são extraídos de assets prontos e posteriormente organizados em uma forma geométrica passível de renderização. Exemplificando: a estrutura de nós e ligações em diferentes diagonais é transformada em uma estrutura “quadrada”, com ligações horizontais e verticais, como vemos nas dungeons dos jogos.

Funções de ruído

São algoritmos como o Ruído de Perlin e o Diagrama de Voronoi. Essas funções criam transições suaves entre os elementos, ideais para paisagens naturais. Elevação de terrenos, textura de nuvens e delimitação de diferentes biomas ou terrenos são os usos mais comuns dessas ferramentas. São recursos muito comuns em engines para desenvolvimento de jogos, como a Unity 3D e a Unreal Engine.

Seleção aleatória ponderada

Weighted random selection é uma função extremamente comum no posicionamento de inimigos e armadilhas, assim como na criação de loots e equipamentos. Todos esses dados são inseridos previamente, assim como o “peso” de cada um deles. Com essas informações, cabe ao algoritmo ponderar, de acordo com o “peso” estabelecido, e inserir no jogo conforme a probabilidade e outras regras estabelecidas.

Um bom exemplo pode ser visto em jogos como Diablo, Borderlands e a maioria dos roguelikes. As suas armas e equipamentos possuem diferentes status e habilidades, normalmente com valores variáveis, que são inseridos aleatoriamente em cada item, enquanto também consideram o seu tipo, a sua raridade e outros aspectos.

O começo da geração procedural na história dos videogames

A geração procedural nos games data do fim da década de 70, mais precisamente nos primeiros roguelikes. Eram jogos inspirados em Dungeons & Dragons, mas que adotavam uma jogabilidade solo, enquanto suas dungeons eram geradas de formas aleatórias. Entretanto, o processo era muito mais simples, devido aos gráficos serem basicamente caracteres ASCII (letras e símbolos comuns do teclado). Um dos games mais populares dessa época foi Rogue, lançado em 1980 (sim, foi esse jogo que inspirou os roguelikes, o que pode ser visto inclusive em seu nome).

Apesar de ser algo tão antigo, a primeira vez na qual a geração procedural foi utilizada de forma mais complexa, com todo seu potencial gráfico, foi em 1996. Foi nessa época que The Elder Scrolls II: Daggerfall foi lançado com um mapa gerado de forma procedural. O resultado era um mundo gigantesco, com 160.000km², que combinava regiões centrais pré-concebidas com terrenos, cidades e dungeons montadas algoritmicamente.

Gerador de números pseudoaleatórios (PRNG)

É uma forma “primitiva” de geração procedural, que ficou conhecida por causa de Gauntlet, lançado em 1985 para os fliperamas. O jogo utilizava 125 mapas diferentes, o que criava uma sensação de novidade quando o jogo resetava e voltava para o primeiro mapa, juntamente com o aumento de dificuldade e randomização de itens e tesouros.

Na sua continuação, lançada em 1986, essa “aleatoriedade” foi ainda mais aprimorada. Os seus mais de 100 mapas poderiam aparecer invertidos verticalmente ou horizontalmente, assim como rotacionados em até 180°, enquanto as saídas também podiam mudar de lugar. Eram elementos que traziam uma sensação de singularidade ainda maior.

O futuro da geração procedural nos jogos

As redes neurais, modelos de aprendizado de máquina inspirados no cérebro humano, têm sido utilizadas recentemente para refinar a geração procedural. Ao combinar métodos tradicionais de geração com o deep learning das IAs, novas formas de gerar áudio, imagens e níveis nos jogos são oferecidas. Também é possível criar agentes que testam o jogo, ou mesmo NPCs mais inteligentes, capazes de reagir a comandos de fala ou responder “naturalmente” a perguntas e falas dos jogadores.

Porém, são tecnologias que ainda estão em desenvolvimento, em estágios muito iniciais. Um exemplo foi o NEO NPC da Ubisoft. O projeto visava criar NPCs que interagiam naturalmente com os jogadores, gerando respostas automatizadas e de acordo com as falas dos jogadores, mas o projeto não saiu como esperado. Sem grandes esclarecimentos, ele tomou um rumo completamente diferente com o Teammates, agentes que respondem automaticamente aos comandos de voz do jogador, no lugar de uma lista de comandos pré-definida.

São ótimas ideias que podem levar os jogos a um novo patamar de interatividade, trazer uma experiência inédita e ainda mais imersão. No entanto, são tecnologias que ainda são promessas, a maioria em fase inicial de testes, que podem terminar em falha ou entregar algo completamente diferente do escopo original (como o NEO NPC). Por isso, deve-se olhar com calma para essas novidades, pelo menos até que algo mais concreto surja de fato.

O post O que é geração procedural: a “mágica matemática” que cria universos infinitos nos games apareceu primeiro em Olhar Digital.

Artigo originalmente publicado em olhardigital.com.br
Compartilhar:

Comentários

Seja o primeiro a comentar!