Geração procedural

### **Descrição**

Geração procedural (PCG) é o processo no qual um algoritmo gera conteúdo para um jogo a partir de certos parâmetros predeterminados durante a programação. Ela pode ser usada para gerar, fases, inimigos, leveis, itens, estruturas, loot, e parte da decoração do cenário. O processo ajuda tremendamente a reduzir o tamanho de arquivos, pois eles são salvos em parâmetros muito menores.

### **História**

Por conta de ter poucos recursos gráficos e limitações devido a baixa memória nos computadores, decidiram explorar a aleatoriedade pois manualmente acarretaria muito tempo de desenvolvimento.

> Iniciados com os clássicos:
>
>

> River Raid(1982) - Activision
>
>

> A geração procedural nesse jogo foi estabelecida para criar o mesmo mundo toda vez mas para tornar a as ações dos inimigos imprevisíveis tornando assim sem um padrão.
>
>

> Elite(1984) - Frontier Developments, David Braben, Ian Bell, Telecomsoft, GameTek, Imagineer, Torus
>
>

> Esses sistemas estelares foram gerados processualmente a partir de uma semente fixa, que gerou a descrição do sistema estelar, incluindo sua economia, governo e população. Havia 8 galáxias de estrelas na Elite original, cada uma com 256 estrelas geradas
>
>

> Rescue of Fractalus(1985) - Atari e LUCASFILM GAMES
>
>

> O jogo tem o jogador pilotando uma nave espacial em uma paisagem fractal gerada processualmente para resgatar pilotos caídos
>
>

### **Funções**

Pode acabar sendo aplicado com eficácia e trazendo a tona produtos inovadores, apesar de ser necessário um boa construção. Popularizaram-se por solucionar problemas criativos e de otimização. Podem ser utilizados para Geração de mapas, narrativa, artes visuais dentre outras. Devido a aleatoriedade tem diversas opções de aplicações, como em jogos Runner (Corrida Infinita), Roguelikes, recompensas em diversos jogos e até mesmo em cenários e missões

### **Prós e Contras**

#### Prós

* Aumenta o prazo de validade do jogo;
* Menos trabalho à mão, se for um processo muito longo;
* Diminuir arquivos muito extensos;
* Aumenta o fator de rejogabilidade.

#### Contras

* Muito dinheiro investido;
* Dificuldade para fazer;
* Criação de regras para possíveis gerações indevidas (Dead Ends);
* Caso os parâmetros não sejam definidos corretamente, o jogo pode acabar criando “abominações” .

### **Dicas para Desenvolvedores**

Vale lembrar que deve-se efetuar muitos testes e conhecimento sobre, para aplicar esta mecânica por conta de demandar uma boa noção de Matemática e Lógica de Programação, sem contar com a necessidade de atender a alta meta nas novas gerações.

### **Exemplo em Jogos**

Jogos que utilizam de geração procedural
 Dead Cells
 Spore
 No man's sky
 Enter the gungeon
 Nobody saves the world

### **Referências**

Geração Procedural em Jogos Digitais

https://pt.wikipedia.org/wiki/Geração\_pr'ocedural\_em\_jogos\_digitais#:~:text=Geração%20procedural%20em%20jogos%20é,em%20arquivos%20de%20tamanhos%20mínimos.

Algoritmos que não sabia que queria conhecer

https://cgreinhold.dev/2020/09/15/fluid/

How Games Create Infinite Worlds

https://www.youtube.com/watch?v=TgbuWfGeG2o

Geração Procedural - Controlando o Caos

https://www.indiegame.com.br/geracao-procedural/

Procedural Generation ( Elite)

https://procedural-generation.tumblr.com/post/112509130817/elite-1984-elite-created-by-ian-bell-and-david

Rescue On Fractalus!

http://pcg.wikidot.com/rescue-on-fractalus

River Raid

https://en.wikipedia.org/wiki/River\_Raid

Artigo feito por Nicolas Schüssler, Júlia de Paula Mazzitelli e Felipe Duarte Nass