Geração procedural em jogos digitais

Origem: Wikipédia, a enciclopédia livre.

Geração procedural em jogos é um conjunto de algoritmos usados como uma ferramenta para criar grandes quantidades de conteúdo em arquivos de tamanhos mínimos. Ademais, pode ser descrito [1] como algo de grande importância para a proporção de experiências em multimídias inovadoras, vindo a permitir desenvolvedores independentes a desenvolver produtos mais viáveis e completos.

História[editar | editar código-fonte]

Os primeiros jogos gráficos foram extremamente limitados pela baixa memória que os computadores tinham na época e isso forçou os desenvolvedores a buscar novos modos de fazer a programação, pois manualmente acarretaria em muito tempo de desenvolvimento, além de que a quantidade de memória disponível nos computadores da época não iria suportar. Então os algoritmos em tempo real assumiram [2] os papéis de desenvolvedores e artistas durante o desenvolvimento.

Partindo de princípios simples da matemática, as primeiras gerações procedurais consistiam em criar números pseudo-aleatórios, chamados de seeds (sementes), usados ​​frequentemente com valores predefinidos a fim de gerar grandes mundos. O primeiro jogo criado com o uso de seeds a ser publicado foi Akalabeth, de Richard Garriott, em 1980 que, usando o mesmo número de sementes, permitiu um jogador poder sempre voltar a um determinado mundo.

Outros exemplos notáveis ​​incluem Rescue on Fractalus (1985) que cria montanhas escarpadas de um planeta alienígena através de fractais procedurais. River Raid (1982) da Activision, usou uma sequência de números pseudo-aleatórios gerados por um registro de deslocamento linear feedback shift register, a fim de gerar um labirinto de rolagem de obstáculos, além de The Sentinel que supostamente tinha 10.000 níveis diferentes armazenados em apenas 48 de 64 KB.

Porém, com a evolução dos computadores e com o advento dos Compact Disks (CDs) foi possível armazenar uma quantidade muito maior de conteúdo pré-fabricado levando a geração procedural a perder espaço, pois era necessário um tempo grande para fazer um modelo puramente procedural se tornar um método funcional, utilizável ​​e de aparência realista tornando-se mais barato e garantir a boa qualidade contratando artistas para criação e modelagem desse conteúdo. Tais fatores contribuíram para que os geradores procedurais caíssem em desuso nos anos 90. A geração procedural se inovou na virada do século trazendo aos jogos experiências dinâmicas. Left 4 Dead, lançado pela Valve Software em 2008, é um marco, pois contendo um Game Design Assistido por inteligência artificial, aleatorizou o jogo criando e removendo inimigos e itens com base em variáveis individuais contida nos jogadores, tudo a fim de proporcionar um ritmo frenético e envolvente. Outro marco foi Minecraft, lançado em 2009, onde o estado inicial do mundo é gerado aleatoriamente com diretrizes para formar terrenos parecidos com a Terra e o mapa é gerado sempre que o jogador atinge as bordas do mundo.

Por fim, com os desenvolvedores independentes, popularmente chamado de indies, a geração procedural passou a ser um método pratico e ágil para o desenvolvimento de jogos, pois permite a criação de uma quantidade imensa de conteúdo usando equipes de desenvolvimento pequenas e grandes períodos de desenvolvimento. Dwarf Fortress (2006), Empyrion - Galactic Survival (2015) são exemplos muito bons, pois neles, antes do jogador começar a partida, o jogo é gerado com base em um conjunto complexo de opções de configuração completa, com seu terreno, história, personagens notáveis, e monstros.

Áreas de Pesquisa[editar | editar código-fonte]

As emoções e experiências do usuário são críticos para o planejamento de um jogo [3], logo se tornou essencial definir o sucesso dos eventos seguintes no gameplay, assim enfatizando a importância de uma boa construção. Porém com o aumento do mercado de jogos digitais, criar produtos inovadores se tornou um grande estresse para toda uma equipe de desenvolvimento, que passaram a sofrer com longos bloqueios criativos. Em resposta a isso, as técnicas procedurais vieram por se popularizar por solucionar tais problemas criativos em diversas áreas como:

Geração de Mapas[editar | editar código-fonte]

A fabricação de mapas é dita como principal motivo para uso de técnicas procedurais, pois é capaz [4] de aumentar o tempo de vida útil do jogo com a criação de terrenos com desafios que instigarão a curiosidade de cada jogador ao explorar. Dois métodos bastante conhecidos são os de desenho com base Fractal e o de Matriz, o primeiro conhecido por esculpir planos para formar terrenos tridimensionais com planícies, morros e depressões de diversas escalas em planos tridimensionais, enquanto o segundo é aplicado principalmente em jogos 2D para posicionar, através do calculo matemático de mesmo nome, blocos que representam a arte de jogo. É possível combinar os dois estilos, o popular método por agentes que separam um terreno em formas geométrica (o mais popular sendo o diamante) e através de uma matriz tridimensional esculpir o terreno e posicionar os modelos sob e sobre ele.

Geração de Narrativas[editar | editar código-fonte]

Narrativa trata da transmissão de uma história para um interlocutor, isto em um jogo eletrônico é de extrema importância. Diversos estudos a respeito da construção da narrativa existem, num campo de estudo conhecido como narratologia. A condição fundamental e tradicional para a existência de uma narrativa, é “Uma sequência de eventos envolvendo indivíduos pensantes, conectados por relações causais, motivadas por um conflito, buscando uma solução” [5]. Visando minimizar o tempo gasto no desenvolvimento construindo tal narrativa, diversas formas de geração com foco na narrativa foram inventadas nos últimos anos, dentre elas as mais famosas são:

  • Geração baseada em Gramática, que consiste em codificar a estrutura da narrativa em termos de um conjunto de regras, usando uma gramática formal.
  • Geração de Personagens Procedurais, na qual é construída uma Inteligência Artificial que gera informações através de Gramática, posteriormente as substitui na biografia que será atribuída a um personagem que de alguma forma irá interagir com o enredo.

Geração de Artes Visuais[editar | editar código-fonte]

Baseados em conceitos de arte algorítmica, são capazes de formar estilos visuais únicos e memoráveis através de conjuntos de modelos tridimensionais constantemente alocados e em seguida misturados com texturas e com palhetas de cores. Jogos como Borderlands 2 ou No Man's Sky, por exemplo, utilizam da geração procedural e de arte algorítmica para modelar recompensas ao jogador, seja no formato ou aparência de armas ou com cenários fantásticos.

Aplicações[editar | editar código-fonte]

Jogos de Corrida Infinita[editar | editar código-fonte]

Um dos usos mais básicos de geração procedural, pois é aplicada na ordem em que os objetos aparecerão e como o percurso será durante o jogo. Usando o jogo Canabalt como exemplo para essa técnica, é visível um padrão das plataformas (prédios, guindastes, outdoors) na qual o protagonista percorre e o modo em que elas se repetem de forma aleatória com o nível da dificuldade ditada pela velocidade com que esses são criados até onde jogador consegue chegar.

Jogos Roguelike[editar | editar código-fonte]

Roguelike é um subgênero de RPG que possui duas características:

  • O  jogador quando morre, retorna ao início do jogo.
  • Aleatoriedade de cenários formado por tiles, gerados proceduralmente para torná-lo imprevisível[2] pelo fato do aspecto visual mudar a cada nível.

Dependendo do jogo a geração procedural não é implementada apenas no cenário, mas também nos itens, em inimigos e power ups. Um bom exemplo é o jogo Don’t Starve que a cada vez que um mundo é gerado, sua forma, terrenos, localização dos NPCs e do próprio jogador são gerados de forma aleatória influenciando o jogador mudar sua estratégia a cada nova campanha.

Aleatoriedades em Cenários[editar | editar código-fonte]

Possivelmente o uso mais simples da geração procedural é a aleatoriedade em cenários, isso é, o reposicionamento de objetos pela fase ou mundo em que o jogo está sendo explorado. O jogo Payday 2 é um dos melhores exemplos dessa técnica, nele é visto pessoas a serem encontradas em posicionamentos diferentes, se estão ou não com um item de interesse, onde esse item está, além da modificação de cenário com, também, o reposicionamento de cômodos na infraestrutura dos prédios.

Criação de Missões[editar | editar código-fonte]

As missões são, basicamente, um conjunto de tarefas que podem ser concluídas em troca de algum item ou para progredir no jogo. A geração procedural é aplicada para gerar novas missões no jogo de acordo com o progresso do jogador no mesmo. Skyrim, quinto jogo da série The Elder Scrolls, torna-se um exemplo perfeito para este tópico possuindo um recurso que disponibiliza novas missões após completar outras, sendo principais ou secundárias, de acordo com inúmeros fatores que incluem as relações e decisões tomadas com o NPC que o jogador iniciou a quest.

Referências

  1. F. Emiliandro, H. Marco, V. Pedro, P. Jameson, L. Silvio. Geração Procedural de Estórias: O Uso de NPCs Procedurais para Complementar o Jogo.
  2. a b S. Gillian. The Future of Procedural Content Generation in Games.
  3. S. Noor, Y. Georgios and T. Julian. Towards Automatic Personalized Content Generation for Plataform Games.
  4. T. Julian, P. Mike and Y. Georgios. Towards Multiobjective Procedural Map Generation.
  5. RYAN, M.,2001. Narrative as Virtual Reality, Baltimore, John Hopkins.

Bibliografia[editar | editar código-fonte]

  1. S. Gillian, O. Alexei, W. Jim and W. Noah. PCG-Based Game Design: Creating Endless Web.
  2. T. Julian, Y. Georgios, S. Kenneth and B. Cameron. Search-Based Procedural Content Generation.
  3. D. Steve and T. Julian. Procedural Content Generation Using Patterns as Objectives.
  4. C. Michael and C. Simon. Hybrid Procedural Content Generation: A Proposal.
  5. L. Larry. Procedural Character Generation for Narrative Games.
  6. S. Gillian. An Analog History of Procedural Content Generation.
  7. T. Mike, Z. Alexander, E. Mirjam, T. Julian, S. Gilian, C. Michael, T. Tommy, M. Brian, L. John, S. Adam. Ai-Based Game Design Patterns.
  8. S. Gilian, G. Elaine, O. Alexei, W. Jim. PCG-Based Game Design: Enabling New Play Experiences Through Procedural Content Generation.
  9. F. Clara and T. Alec. Procedural Generation of Narrative Puzzles in Adventure Games: The Puzzle-Dice System.
  10. K. Ryan . Why Borderlands 2 Has the Most Stylish Guns in Gaming. Wall Street Journal.
  11. M. Richard. 7 Uses of Procedural Generation that all Developers should Study. Gamasutra.
  12. Procedural Content Generation. Disponível em: <http://pcg.wikidot.com/> Acessado em: 13 de junho de 2016
  13. Geração procedural e a nova geração de consoles. Disponível em:<http://www.nerdspot.com.br/2014/games/geracao-procedural-e-nova-geracao-de-consoles/> Acessado em: 14 de junho de 2016