Geração processual

Um exemplo de geração processual, aqui usando sistemas L para gerar modelos de árvore de aparência realista. Diferentes modelos podem ser gerados alterando parâmetros determinísticos e uma semente aleatória.

Na computação , a geração processual (às vezes abreviada como proc-gen ) é um método de criação de dados algoritmicamente em vez de manualmente, normalmente por meio de uma combinação de conteúdo e algoritmos gerados por humanos, juntamente com aleatoriedade gerada por computador e poder de processamento. Na computação gráfica , é comumente usado para criar texturas e modelos 3D . Nos videogames, é usado para criar automaticamente grandes quantidades de conteúdo em um jogo. Dependendo da implementação, as vantagens da geração processual podem incluir tamanhos de arquivo menores, maiores quantidades de conteúdo e aleatoriedade para uma jogabilidade menos previsível. A geração processual é um ramo da síntese de mídia .

Visão geral

Uma paisagem processual renderizada em Terragen

O termo processual refere-se ao processo que calcula uma função específica. Fractais são padrões geométricos que muitas vezes podem ser gerados processualmente. O conteúdo processual comum inclui texturas e malhas . O som muitas vezes também é gerado processualmente e tem aplicações tanto na síntese de fala quanto na música. Tem sido usado para criar composições em diversos gêneros de música eletrônica por artistas como Brian Eno que popularizou o termo " música generativa ". [1]

Texturas geradas processualmente

Embora os desenvolvedores de software tenham aplicado técnicas de geração processual durante anos, poucos produtos empregaram essa abordagem extensivamente. Elementos gerados processualmente apareceram em videogames anteriores: The Elder Scrolls II: Daggerfall se passa em um mundo gerado principalmente processualmente, dando um mundo com aproximadamente dois terços do tamanho real das Ilhas Britânicas . Soldier of Fortune da Raven Software usa rotinas simples para detalhar modelos de inimigos, enquanto sua sequência apresentava um modo de nível gerado aleatoriamente . Avalanche Studios empregou geração processual para criar um grande e variado grupo de ilhas tropicais detalhadas para Just Cause . No Man's Sky , um jogo desenvolvido pelo estúdio de jogos Hello Games , é todo baseado em elementos gerados processualmente.

A demoscene moderna utiliza geração processual para empacotar uma grande quantidade de conteúdo audiovisual em programas relativamente pequenos.

Novos métodos e aplicações são apresentados anualmente em conferências como a Conferência IEEE sobre Inteligência Computacional e Jogos e a Conferência AAAI sobre Inteligência Artificial e Entretenimento Digital Interativo. [2]

Particularmente na aplicação da geração processual com videojogos, que se destinam a ser altamente reproduzíveis, existem preocupações de que os sistemas procedimentais possam gerar um número infinito de mundos para explorar, mas sem orientação humana suficiente e regras para os guiar. O resultado foi chamado de "aveia processual", termo cunhado pela escritora Kate Compton, pois embora seja possível gerar matematicamente milhares de tigelas de aveia com geração processual, elas serão percebidas como iguais pelo usuário, e não terão a noção de singularidade percebida que um sistema processual deve almejar. [3]

Aplicação contemporânea

RPGs de mesa

O uso da geração processual em jogos teve origem no cenário de RPG (RPG) de mesa. [4] O principal sistema de mesa, Advanced Dungeons & Dragons , forneceu maneiras para o "mestre da masmorra" gerar masmorras e terrenos usando jogadas de dados aleatórias, expandidas em edições posteriores com tabelas processuais ramificadas complexas. A Strategic Simulations sob licença da TSR lançou o Dungeon Master's Assistant , um programa de computador que gerava masmorras com base nessas tabelas publicadas. Tunnels & Trolls , publicado pela Flying Buffalo , [5] foi projetado principalmente para jogos solitários e usou geração processual semelhante para suas masmorras. Outros RPGs de mesa emprestaram conceitos semelhantes na geração processual para vários elementos do mundo. [6]

Muitas ferramentas online para Dungeon Masters agora usam geração processual em graus variados. [ carece de fontes ]

Jogos de vídeo

História antiga

Um mapa de masmorra gerado processualmente no videogame NetHack

Antes dos videogames orientados graficamente, os jogos roguelike , um gênero diretamente inspirado em Dungeons & Dragons adotado para jogos de paciência, utilizavam fortemente a geração processual para produzir masmorras aleatoriamente, da mesma maneira que os sistemas de mesa faziam. Esses primeiros jogos incluem Beneath Apple Manor (1978) e o homônimo do gênero, Rogue (1980). O sistema de geração processual em roguelikes criaria masmorras em ASCII – ou sistemas regulares baseados em blocos e definiria salas, corredores, monstros e tesouros para desafiar o jogador. Roguelikes, e jogos baseados nos conceitos roguelike, permitem o desenvolvimento de jogabilidade complexa sem a necessidade de gastar tempo excessivo na criação do mundo do jogo. [7]

Maze Craze de 1978 para Atari VCS usou um algoritmo para gerar um labirinto aleatório de cima para baixo para cada jogo. [8]

Alguns jogos usavam geradores de números pseudoaleatórios . Esses PRNGs eram frequentemente usados ​​com valores iniciais predefinidos para gerar mundos de jogo muito grandes que pareciam pré-fabricados. O Sentinel supostamente tinha 10.000 níveis diferentes armazenados em apenas 48 e 64 kilobytes. Um caso extremo foi Elite , que foi originalmente planejada para conter um total de 2 48 (aproximadamente 282 trilhões) de galáxias com 256 sistemas solares cada. [9] Porém, a editora temia que um universo tão gigantesco causasse descrença nos jogadores, e oito dessas galáxias foram escolhidas para a versão final. [10] Outros exemplos notáveis ​​​​incluem o jogo Rescue on Fractalus de 1985 , que usou fractais para criar processualmente, em tempo real, as montanhas escarpadas de um planeta alienígena e River Raid , o jogo da Activision de 1982 que usou uma sequência numérica pseudoaleatória gerada por um linear registro de deslocamento de feedback para gerar um labirinto de obstáculos.

Uso moderno

Textura processual usando mosaico Voronoi

Embora os jogos de computador modernos não tenham as mesmas restrições de memória e hardware que os jogos anteriores tinham, o uso da geração processual é frequentemente empregado para criar jogos, mapas, níveis, personagens ou outras facetas aleatórias que são únicas em cada jogada. [11] [12]

Em 2004, um jogo de tiro em primeira pessoa para PC chamado .kkrieger foi lançado por um grupo de demonstração alemão. Ele está inteiramente contido em um executável de 96 kilobytes para Microsoft Windows que gera centenas de megabytes de dados 3D e de textura quando executado. De acordo com um dos programadores, "foi um fracasso total no que diz respeito ao lado do jogo (principalmente porque ninguém envolvido se importou profundamente com esse aspecto)." [13]

O RoboBlitz da Naked Sky usou geração processual para maximizar o conteúdo em um arquivo para download de menos de 50 MB para Xbox Live Arcade . O Spore de Will Wright também faz uso de síntese processual.

A geração processual é frequentemente usada em sistemas de saque de jogos baseados em missões, como jogos de RPG de ação e jogos de RPG online multijogador massivo . Embora as missões possam apresentar recompensas fixas, outros itens, como armas e armaduras, podem ser gerados para o jogador com base no nível do personagem do jogador, no nível da missão, em seu desempenho na missão e em outros fatores aleatórios. Isso geralmente faz com que o saque tenha uma qualidade de raridade aplicada para refletir quando o sistema de geração processual produziu um item com atributos melhores que a média. Por exemplo, a série Borderlands é baseada no seu sistema de geração processual que pode criar mais de um milhão de armas e outros equipamentos exclusivos. [14]

Muitos jogos de mundo aberto ou de sobrevivência criam processualmente um mundo de jogo a partir de uma semente aleatória ou fornecida pelo jogador, de modo que cada jogada seja diferente. Esses sistemas de geração criam vários biomas baseados em pixels ou voxels com distribuição de recursos, objetos e criaturas. O jogador frequentemente tem a capacidade de ajustar alguns dos parâmetros de geração, como especificar a quantidade de cobertura de água em um mundo. Exemplos de tais jogos incluem Dwarf Fortress e Minecraft .

A geração processual também é usada em jogos de exploração espacial e comércio. Elite: Dangerous , ao usar os 400 bilhões de estrelas conhecidas da Via Láctea como base mundial, usa geração processual para simular os planetas nesses sistemas solares. Da mesma forma, Star Citizen usa a tecnologia para criar planetas perfeitamente carregados em seu universo feito à mão. I-Novae Infinity apresenta uma infinidade de planetas gerados processualmente entre os quais o jogador pode viajar em naves espaciais. Outerra Anteworld é um videogame em desenvolvimento que utiliza geração processual e dados do mundo real para criar uma réplica virtual do planeta Terra em escala real.

No Man's Sky , usando geração processual, é o maior videogame da história, apresentando um universo de 18 quintilhões de planetas em galáxias inteiras, que podem ser explorados em vôo ou a pé. Todos os planetas têm seu próprio terreno, clima, flora e fauna únicos e diversos, bem como uma série de espécies exóticas que viajam pelo espaço. O mesmo conteúdo existe nos mesmos locais para todos os jogadores (graças a um único número inicial aleatório em seu mecanismo determinístico), o que permite que os jogadores se encontrem e compartilhem descobertas. [15] [16] [17]

Outras aplicações

Como nos videogames, a geração processual é frequentemente usada em filmes para criar rapidamente espaços visualmente interessantes e precisos. Isso ocorre em uma ampla variedade de aplicações.

Uma aplicação é conhecida como fábrica imperfeita , onde os artistas podem gerar rapidamente muitos objetos semelhantes. Isto explica o fato de que, na vida real, nunca existem dois objetos exatamente iguais. Por exemplo, um artista poderia modelar um produto para a prateleira de um supermercado e, em seguida, criar uma fábrica imperfeita para gerar muitos objetos semelhantes para preencher a prateleira.

MASSIVE é um pacote de software de animação por computador e inteligência artificial de última geração usado para gerar efeitos visuais relacionados a multidões para cinema e televisão. Ele foi desenvolvido para criar automaticamente exércitos de combate de centenas de milhares de soldados para os filmes O Senhor dos Anéis, de Peter Jackson . [18]

O ruído coerente pode ser extremamente importante para o fluxo de trabalho processual no filme. O ruído simplex costuma ser mais rápido e com menos artefatos, embora uma função mais antiga chamada ruído Perlin também possa ser usada. Ruído coerente, neste caso, refere-se a uma função que gera pseudo-aleatoriedade suave em n dimensões.

Veja também

Referências

  1. ^ Brian Eno (8 de junho de 1996). "Uma palestra proferida em São Francisco, 8 de junho de 1996". revista em movimento . Recuperado em 07/11/2008 .
  2. ^ “Inteligência Artificial e Entretenimento Digital Interativo” . AIIDE.org . Recuperado em 12 de junho de 2016 .
  3. ^ Cozinheiro, Michael (10 de agosto de 2016). "Línguas alienígenas: como falamos sobre geração processual". Gamasutra . Recuperado em 7 de outubro de 2019 .
  4. ^ Marrom, Joseph Alexander; Scirea, Marco (2018). "Geração processual para jogos de mesa: abordagens orientadas ao usuário com restrições de recursos computacionais". SEDA 2018: Anais da 6ª Conferência Internacional em Engenharia de Software para Aplicações de Defesa . Conferência Internacional em Engenharia de Software para Aplicações de Defesa. Roma, Itália. págs. 44–54.
  5. ^ ""Um bate-papo com Ken St Andre Parte 1"". YouTube.com . Recuperado em 6 de novembro de 2021 .
  6. ^ Smith, Gillian (2015). Uma história analógica da geração de conteúdo processual (PDF) . Fundamentos de Jogos Digitais 2015. Pacific Grove, Califórnia . Recuperado em 7 de outubro de 2019 .
  7. ^ Hatfield, Tom (29/01/2013). "Rise Of The Roguelikes: um gênero evolui" . GameSpy . Recuperado em 24/04/2013 .
  8. ^ "Labirinto Mania" . Atari Mania .
  9. ^ Hiranand, Ravi (18/06/2015). “18 quintilhões de planetas: o videogame que imagina uma galáxia inteira | CNN Business” . CNN . Recuperado em 13/12/2022 .
  10. ^ Francis Spufford (18 de outubro de 2003). “Mestres do seu universo”. Guardião.
  11. ^ Moss, Richard (1º de janeiro de 2016). “7 usos da geração processual que todos os desenvolvedores deveriam estudar”. Gamasutra . Recuperado em 1º de janeiro de 2016 .
  12. ^ Baker, Chris (9 de agosto de 2016). " ' No Man's Sky': como os jogos estão se construindo" . Pedra rolando . Recuperado em 9 de agosto de 2016 .
  13. ^ Giesen, Fabian (8 de abril de 2012). “Metaprogramação para loucos”. O blog ryg .
  14. ^ Kuo, Ryan (19 de abril de 2012). "Por que Borderlands 2 tem as armas mais elegantes dos jogos" . Jornal de Wall Street . Recuperado em 21 de abril de 2016 .
  15. ^ Khatchadourian, Raffi (18 de maio de 2015). “Mundo sem fim: criando um cosmos digital em grande escala” . Anais de Jogos. O Nova-iorquino . Vol. 91, não. 13. pp . Recuperado em 5 de agosto de 2015 .
  16. ^ Wilson (16 de julho de 2015). "Como 4 designers construíram um jogo com 18,4 quintilhões de planetas únicos" . Empresa rápida . Recuperado em 9 de agosto de 2015 .
  17. ^ Sam Branco (10/08/2016). "No Man's Sky: Como o maior jogo já feito quase nunca aconteceu" . radar de jogos . Recuperado em 07/05/2022 .
  18. ^ "Sobre Massivo" . Software massivo . Recuperado em 12 de junho de 2016 .

Leitura adicional

  • Ebert, David S.; Musgrave, F. Kenton; Peachey, Darwyn; Perlin, Ken; Worley, Steve (2002). Texturização e Modelagem: Uma Abordagem Processual (3ª ed.). Morgan Kaufmann. ISBN 978-1-558-60848-1.
  • Shaker, Noor; Togelius, Juliano; Nelson, Mark J. (2016). Geração de conteúdo processual em jogos: um livro didático e uma visão geral da pesquisa atual. Springer. ISBN 978-3-319-42714-0.
  • O futuro do conteúdo – palestra de Will Wright sobre Spore e geração processual na Game Developers Conference 2005
Obtido em "https://en.wikipedia.org/w/index.php?title=Procedural_Generation&oldid=1215018326"