As ferramentas usadas atualmente no desenvolvimento de videogames permitem aplicar ao ambiente virtual as leis físicas do mundo real, mas nem sempre o realismo extremo é garantia de diversão.

CRÉDITO: FOTOS ADOBE STOCK E DIVULGAÇÃO

Você certamente já fez um desenho em um papel usando lápis de diferentes cores. Para isso, você não precisou cortar uma árvore, extrair e branquear a celulose e produzir papel. Tampouco precisou misturar ceras, pigmentos e aditivos para produzir lápis colorido e usar em seu desenho. Tudo isso já estava pronto, certo?

Se você fosse um jovem programador na década de 1980 e decidisse criar um jogo para o videogame Atari 2600, por exemplo, seria como querer desenhar e ter que, antes, produzir seu próprio papel e lápis. Não havia plataformas a partir das quais um jogo poderia ser criado, você tinha que criar do zero. E escrever todo o código computacional de um jogo simples é bastante trabalhoso. 

Após alguns anos desbravando essa nova tecnologia, os programadores perceberam que poderiam desenvolver programas capazes de criar alguns atalhos. É como se tivessem percebido que podiam fabricar papéis e lápis e vender para quem quisesse desenhar. 

Assim nasceram as chamadas ‘game engines’ (ou motores de jogos, em português). Motor de jogo é um programa de computador que reúne um vasto pacote de ferramentas pré-programadas que facilitam e aceleram a produção de um jogo, é o papel e o lápis do desenvolvedor de jogos.

Esses motores permitem importar objetos em duas e em três dimensões, inserir diferentes luzes e áudios, fazer movimentos de câmera, animar personagens, definir comportamento de personagens com inteligência artificial, executar scripts (roteiros que serão seguidos pelo sistema computacional, ou seja, o passo-a-passo do que deve ser feito). Os motores mais modernos ainda trazem uma física muito parecida com a do mundo real e é sobre isso que vamos conversar! 

 

Aperte o play!

Imagine-se criando o seu primeiro jogo 3D. Você abre no seu computador uma game engine e começa criando um grande paralelepípedo (que servirá de chão) e uma esfera no ar (representando uma bola). Se você apertar o botão ‘play’ para inicializar o teste do seu jogo, nada irá acontecer. Ambas as formas geométricas ficarão lá, paradas no espaço. 

Em seguida, você adiciona à bola uma propriedade chamada ‘rigidbody’ (em português, corpo rígido). Quando um objeto de jogo se torna um corpo rígido, a física passa a agir sobre ele. Assim, se você iniciar a testagem do jogo no botão ‘play’, a bola irá cair de forma acelerada (devido à gravidade). O problema é que, ao chegar ao chão, a bola vai simplesmente atravessá-lo, como se fossem dois fantasmas. 

O que você precisa fazer é adicionar um componente chamado ‘collider’ (em português, colisor) a esses dois sólidos criados. Os colisores são formas geométricas invisíveis que definem a forma de um objeto de jogo para fins de colisões, ou seja, é o que verdadeiramente dá materialidade a um objeto. 

Para você ter ideia, em um jogo de luta, não é a imagem da mão de um personagem que vai colidir com o rosto de seu oponente. É o colisor que está vinculado à mão do personagem que irá colidir com o colisor que ocupa a região do rosto do personagem. 

Os colisores mais simples, chamados de primitivos, são formas como retângulos e círculos (em duas dimensões) ou paralelepípedos e esferas (caso o jogo seja tridimensional). Mas é possível construir colisores compostos mesclando formas primitivas, de modo a se aproximar o máximo possível da verdadeira forma do objeto desejado. 

Como você deve imaginar, quanto menos precisa é a forma do colisor, mais estranhezas podem acontecer, como o personagem dar um soco no ar e mesmo assim atingir o oponente. Você poderia se perguntar: por que não fazer colisores que tenham o exato formato dos personagens? Porque quanto mais curvas, arestas e lados um objeto geométrico tem, mais informações o computador tem que armazenar. Para armazenar uma esfera, por exemplo, você só precisa de duas informações: a posição do seu centro e o seu raio. Quanto mais complexo o colisor, mais poder computacional é exigido.

 

A física das colisões

Vamos voltar agora ao nosso jogo. Com os colisores devidamente atribuídos, aperte o play. A bola vai cair novamente, só que, dessa vez, ela vai bater no chão e parar. Se você inclinar um pouco esse chão, a bola irá rolar, e seu ganho de velocidade dependerá do ângulo de inclinação da superfície. Pronto, nossos objetos já obedecem a algumas leis da física. Repare que você não precisou inserir nenhuma fórmula de física, apenas apertar alguns botões.

Para deixar essa queda da bola um pouco mais crível, você pode também definir algumas propriedades do material que a compõe. Pode alterar seu coeficiente de atrito (que diz respeito ao quanto de atrito esse objeto terá ao deslizar sobre outro) e o coeficiente de restituição (que, de forma simplificada, mede a capacidade de um corpo quicar). Se a bola é de ferro, seu coeficiente de restituição será muito pequeno. Mas, se você quiser que seu material seja mais elástico, como uma borracha, pode colocar um coeficiente de restituição mais alto. Com isso, ao colidir com o chão, ela ganhará uma grande velocidade para cima, ou seja, vai quicar. 

Essas e outras interações de colisão levam em conta várias propriedades físicas que você pode ajustar, como a massa dos objetos, o arrasto (resistência do ar), as dimensões dos corpos, a parte do corpo que colidiu, o centro de gravidade dos objetos, o material do qual é feito cada objeto. Unindo todas essas informações, a game engine vai fazer todos os cálculos, usando leis físicas da mecânica clássica para entregar movimentos iguais ou muito parecidos com os do mundo real. E tudo isso sem que você precise saber nada de física, já que tudo vem pré-programado.

As game engines atuais são extremamente poderosas e complexas. Em um jogo como GTA San Andreas (2004), muitas animações são padronizadas e pré-programadas. Nessa versão, quando um personagem leva um tiro, ele sempre cai igual a todos os outros; qualquer carro batido fica amassado da mesma forma; todas as explosões também funcionam sempre do mesmo jeito. Já a partir de jogos como GTA 4, começaram a ser usadas inteligências artificiais que levam muitos outros fatores em conta. Se um carro bate, o estrago feito vai depender da velocidade a que ele estava, do ângulo da batida, da massa do carro, do objeto em que ele bateu. E todo o cálculo do tamanho do amasso, da velocidade de recuo do carro, do ângulo em que ele vai girar é feito em tempo real, não é pré-fabricado. 

 

Quanto mais realista melhor?

Além da física de colisões, podemos citar outros exemplos de aplicação da física para tornar um jogo mais realista. 

Algo bastante frustrante para muitos jogadores é disparar contra uma parede com um lança-mísseis e ela ficar intacta, como se nada tivesse acontecido. Mesmo sem nunca termos usado um desses na vida real, a intuição e os filmes de ação nos dizem que a parede certamente seria destruída. Jogos com ambientes que podem ser destruídos, como os da franquia Battlefield, permitem que boa parte das estruturas de cenário sejam danificadas ou completamente destruídas. Isso dá ao jogo um realismo muito maior.

Por que não são todos assim? Porque para explodir cada objeto, cada parede, cada parte do cenário, há uma série de cálculos físicos para prever a direção para onde os destroços voarão, a intensidade da explosão, o estrago feito. E é muito mais fácil e otimizado fazer com que as estruturas do cenário se comportem como objetos indestrutíveis.

Outro recurso dos jogos digitais que em geral não obedece às leis da física são os pulos dos personagens. O primeiro videogame comercial a apresentar um personagem que podia pular foi Donkey Kong, lançado pela Nintendo em 1981 para fliperamas. Obviamente, não era um pulo que obedecia à gravidade. 

Quando damos um impulso e saltamos, a velocidade que o chão nos dá para cima vai diminuindo devido à ação da gravidade. Quando atingimos a altura máxima, começamos a cair de forma acelerada, ou seja, inicialmente com uma pequena velocidade, que vai aumentando à medida que caímos. Em Donkey Kong, a velocidade do macaco era constante todo o tempo, o que é muito estranho ao nosso olhar hoje.

Depois de Donkey Kong, vários jogos foram lançados tendo como foco principal o pulo – seja o pulo para desviar de ameaças, colher moedas e ganhar pontos, esmagar inimigos ou alcançar andares superiores do jogo. Podemos destacar jogos como Pitfall! (1982), Moon Patrol (1982), Manic Miner (1983) e o fenômeno Super Mario Bros. (1985).

Quando o assunto é pulo, existem dois recursos usados em jogos há muito tempo que violam completamente a física do mundo real: o pulo duplo e a mudança de direção no ar.

Em meados do século 17, o físico inglês Isaac Newton (1643-1727) enunciava as suas famosas leis. De acordo com suas descobertas, a única coisa capaz de alterar a velocidade de um corpo é uma força. Como consequência disso, se você empurra o chão para baixo, o chão te dá um impulso para cima, e você ganhará velocidade exclusivamente nesse sentido. Pular e mover-se para frente ainda no ar só seria possível se houvesse algo o empurrando para frente. Também é fisicamente impossível um pulo duplo, já que seria necessário algo para te empurrar para cima uma segunda vez. 

Mas o fato de a física do jogo não ser idêntica à do mundo real é sempre um problema? Claro que não. O que seria de jogos como Sonic, Super Mario Bros. e tantos outros se a física fosse rigorosamente perfeita? Certamente, não seria nada legal. Uma boa física pode ajudar na imersão, no realismo do jogo. Mas ela não é indispensável. E subversões à física que busquem deixar o jogo mais divertido são sempre bem-vindas!

Lucas Mascarenhas de Miranda
Físico e divulgador de ciência
Universidade Federal de Juiz de Fora

Seu Comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Outros conteúdos desta edição

614_256 att-27650
614_256 att-72134
614_256 att-72401
614_256 att-72474
614_256 att-72091
614_256 att-72076
614_256 att-72116
614_256 att-72252
614_256 att-72108
614_256 att-72198
614_256 att-72270
614_256 att-72261
614_256 att-72188
614_256 att-72338
614_256 att-72540

Outros conteúdos nesta categoria

725_480 att-90672
725_480 att-90300
725_480 att-89258
725_480 att-88676
725_480 att-88118
725_480 att-87724
725_480 att-87257
725_480 att-86857
725_480 att-86096
614_256 att-85560
614_256 att-85204
725_480 att-84850
725_480 att-84268
725_480 att-84001
725_480 att-83661