A Ciência das Explosões em Jogos de Videogame (original da IGN)

14-02-2013 10:55

 

Quão difícil é fazer coisas virtuais explodirem?

Por Rick Lane, 13 de fevereiro de 2013 (traduzido por mim, um dia desses...)

Ah... mas que bela explosão!

Como jogadores, nós com frequência não levamos muitas coisas a sério. Todo anos recebemos vastos novos mundos para explorar, cheios de potencial para vivermos muitas aventuras. Mesmo assim, eles nunca são perfeitos. Sempre há algumas missão que parece não funcionar direito, ou uma textura que parece embaçada ou fora de lugar, e quando tropeçamos em bugs ou glitches, é inevitavelmente irritante. Pois, no fim das contas, um livro nunca para de funcionar, fechando-se abruptamente em seus dedos, ou atores em um filme não caem, de repente, através do chão e começam a girar pra lá e pra cá como uma bandeira em um furacão. Porque nós temos que aguentar essas besteiras?

Verdade seja dita, nós agora estamos tão acostumados a esses grandes espetáculos que é bem fácil nos perdermos em coisas pequenas, e esquecer como é difícil fazer um jogo. Eles são uma arte criada com cálculos, os mais complexos livros de “pinte de acordo com os números” em existência. Para melhor entender os desafios envolvidos, nós vamos explorar o funcionamento de uma das mais frequentes ocorrências – as explosões – e ver que tipo de tecnologia é necessária para fazer algo fazer “boooom!”

Para fazer isso, eu recrutei a ajuda de uma dupla de desenvolvedores que entendem um pouquinho como virtualmente explodir coisas. Cliff Harris é o fundador da Positech Games, o exército de um homem só por trás de Gratuitous Space Battles e do futuro lançamento Gratuitous Tank Batlles, jogos que, juntos, apresentam mais explosões que todo o currículo do Michael Bay. Cliff também criou um programa gerador de explosões disponível para download gratuito online, o que nos permite um pouco de compreensão a respeito da aurora da renderização de combustão.

Imagine Mass Effect sem explosões!!!

No início dos tempos, havia o Sprite. Além de ser um tipo de bebida e uma criatura tipo uma fada, um sprite também é uma imagem em 2D que tem sido usada em jogos desde os primeiros passos dos gráficos gerados em computador. Sprites podem ser facilmente integrados em cenas mais amplas e originalmente eram um método de reunir personagens e objetos com um fundo pré-renderizado. Eles também são a fundação das mais antigas explosões nos jogos, que assumia a forma de uma sequência de imagens compostas de sprites para formar uma animação. “É isso que o gerador de explosões fornece, para jogos mais antiquados, ou jogos com uma taxa de movimentação de quadros constante,” diz Cliff. “Você não pode fazer isso se você quer muita variedade, grandes explosões, e a habilidade para controlar o tempo.”

Hoje em dia, renderizar explosões mesmo em duas dimensões é um assunto muito mais complicado. A fundação de qualquer explosão moderna é o sistema de partículas da plataforma. Isso é geralmente controlado por um emissor, que age tanto quanto a fonte das partículas como aquilo que dita em que direção elas se movem. “Meus dois últimos jogos usam explosões baseadas em partículas, onde você tem talvez cinco ou seis diferentes camadas de partículas todas sendo combinadas juntas, algumas usando efeitos de integração diferentes das outras,” explica Cliff. “A coisa que faz com que as explosões em Gratuitous Tank Battles tenham uma aparência legal é que elas na verdade são baseadas em calor, então as partículas mudam de um branco quente para tons de amarelo e vermelho e depois para fumaça, em um espaço de tempo.”

Eu vivo dizendo que essas pokébolas são perigosas....

Quando o sistema de partículas está pronto, o próximo passo é encontrar uma “explosão modelo” para usar como base para aquela que será gerada no jogo. O que faz com que explosões sejam um desafio de renderização particularmente duro é que elas ocorrem extremamente rápido e ainda assim tem variações enormes em termos de tamanho, forma, brilho das cores, etc. tudo dentro de um minúsculo espaço de tempo. “É impressionante a quantidade de coisas que você precisa para fazê-la parecer autêntica,” disse Cliff. Você precisa aqueles pedaços brancos derretidos, as faíscas amarelas, tanto brilhantes como foscas, você precisa de destroços, e você precisa de vários tipos de fumaça e talvez algumas carreiras de fumaça permanentes subindo das chamas em direção ao céu e sendo levadas pelo vento.”

E isso para explosões em duas dimensões. Quando fazemos a transição para um renderização em 3D, um número de novos problemas precisa ser resolvido. E o principal é ter certeza de que o efeito vai parecer verdadeiro não importa de onde o jogador o testemunhe. Estranhamente, parte da solução é usar sprites em 2D. Caleb Essex, um artista de efeitos visuais da Crytek, chama nossa atenção pro fato de que sprites sempre vêm na direção da câmera, o que ajuda a anular o problema referente ao ângulo do qual o jogador testemunha a explosão. “O artista responsável pelos efeitos pode controlar o tamanho, a velocidade, a escala, a duração, a rotação, o brilho, e outros parâmetros desses sprites para criar o efeito desejado.”

Apenas sprites não são suficientes para criar uma explosão convincente, especialmente em um ambiente em 3D. A iluminação também tem um papel importante em fazê-las parecer realistas, tanto dentro da explosão em si e em como ela ilumina o ambiente ao seu redor. A Crytek usa três técnicas diferentes de iluminação para acomodar isso. “A primeira técnica é fazer as texturas emissivas, o que torna a textura muito brilhosa, em condições de iluminação escura,” explica Caleb. “A segunda técnica é permitir que o efeito produza luz e ilumine os objetos ao redor da explosão. Isso pode ser usado para iluminar outros sub-efeitos de partículas, como uma bola de fogo iluminando a fumaça que ela cria. A última técnica é programar o efeito para ele receber luzes e sombras de si mesmo e do ambiente.” O efeito combinado desses três truques de iluminação é que a explosão tanto afeta quanto responde ao nível de iluminação do ambiente onde ela se encontra.

A iluminação não é a única maneira como uma explosão afeta a área ao seu redor. Sem as forças de concussão apropriadas aplicadas à explosão, o efeito fica no meio do caminho. Nesse ponto, nós nos distanciamos da renderização de gráficos e nos direcionamos para um tipo de programação mais pesadamente física. Para tornar a detonação convincente, os objetos próximos devem responder a ela de acordo com seu peso, densidade, etc. o objeto será derrubado ou arremessado pra longe? Ele será inteiramente destruído? “Quando criamos o efeito nós temos a habilidade de adicionar forças de impulso tais como vento ou gravidade,” Caleb disse. “Essas forças estão ligadas diretamente ao sistema físico da engine e interagem com o ambiente de acordo. Se um objeto que tem presença física entra em contato com essa força, ele irá se comportar de maneira realística.”

Ainda hoje, algumas explosões são bem toscas!

Uma adição razoavelmente recente, mas enormemente útil à física nos jogos de videogame é a dinâmica de corpos maleáveis (NT: em inglês “soft-body dynamics). Ela confere aos desenvolvedores a habilidade de simular com precisão estruturas que não são rígidas, ou que podem tornar-se não-rígidas. Ela pode ser usada para qualquer coisa, desde certificar-se que a capa do Batman se mova realisticamente até fazer uma caixa ser amassada quando o jogador pisa em cima dela. Ela pode ser usada também para simular como objetos mais rígidos são deformados por explosões próximas ou muito fortes, como o contêiner na imagem de Crysis 2 abaixo. Essa habilidade permite resultados interessantes quando um objeto é afetado por uma explosão, deformando-o apenas, ao invés de simplesmente destruí-lo completamente ou arremessando-o para longe.

Você deve ter percebido que outra área que nós ainda não cobrimos, e ela é o barulho da explosão. O áudio é uma grande parte do efeito total, e francamente os métodos por trás da criação dos sons apropriados são dignos de seu próprio artigo. Mas a fórmula básica é: amostra mais mixagem é igual a uma explosão super legal! A coisa mais maravilhosa em se tratando de engenharia de sons é que a amostra pode ser tirada de uma grande variedade de fontes, seja ela uma explosão real, uma garrafa cheia de gelo seco, ou mesmo um barulho qualquer misturado com Audácia. Não importa a fonte, muito baixo é crucial na mixagem final, para que você possa sentir o efeito nas suas entranhas, também ouvindo o som com seus ouvidos.

Mas tem algumas bem bonitas!!!!

Há uma última consideração para qualquer anarquista virtual com inclinações infernais à destruição simulada. Como nós exploramos, explosões são intensas tanto graficamente quanto fisicamente. Com muita frequência elas são detonadas pelo jogador, o que quer dizer que é possível ter algumas acontecendo de uma vez só. Assim sendo, é vital ter certeza de que o hardware rodando o jogo pode de fato dar conta do bombardeio, e não se torne o alvo de uma explosão muito mais real, e muito menos divertida. Interessantemente, diferentes desenvolvedores têm diferentes maneiras de contornar essas questões de desempenho.

Para o jogo Gratuitous Space Battles, a solução é um pouco de planejamento e um monte de trabalho duro. “Ele na verdade utiliza os espaços entre os quadros de movimentação, quando não há muita coisa acontecendo, para prever qual efeito de partículas poderia ser necessário em seguida e os carrega para a memória para que elas estejam prontas para ser usadas quando necessário,” Cliff explica. “Além disso, cada linha de código no sistema de explosões tem sido infinitamente medida e aprimorada para fazê-lo funcionar o mais rápido possível.”

Enquanto isso, Caleb descreve como a Crytek usa a organização para contornar problemas de desempenho do hardware. Primeiro, eles especificam e catalogam todas as combinações possíveis de explosões que podem acontecer no jogo, seja a de jogar uma granada em asfalto ou de disparar um foguete na areia. Então, quando o jogador detona a explosão, o jogo olha essas informações referentes às relações de armas/superfícies. “Desse modo apenas o efeito requerido é carregado e utilizado, ao invés de todos eles serem carregados, sobrecarregando a CPU.”

Misture todos os ingredientes acima, deixe-os cozinhar na renderização por, o menor espaço de tempo possível, sirva-os com um lança mísseis e pitadas de drama e voila, você terá uma explosão perfeitamente construída. Todo esse trabalho, toda essa preparação, para um efeito que dura apenas alguns segundos no jogo – um pouco como enfiar um pedaço de bolo de natal goela abaixo.

Mas essa é a explosão mais linda do mundo! Os desenvolvedores deviam prestar mais atenção nela...

Rick Lane é o principal correspondente de explosões para uma variedade de revistas e sites de videogame. Você pode seguir seu rastro de destruição no Twitter.

PS: vejam abaixo alguns vídeos com explosões interessantes dos jogos, ok?

Tópico: A Ciência das Explosões em Jogos de Videogame (original da IGN)

Não foram encontrados comentários.

Novo comentário