GameDev

Aprendendo a programar jogos em Unity: introdução ao desenvolvimento de jogos em 3D

Vamos conhecer alguns aspectos que diferenciam o desenvolvimento de jogos 2D dos elaborados em ambientes virtuais tridimensionais.

Seja bem-vindo(a) ao GameDev: Aprendendo a programar jogos em Unity de hoje! Após o desenvolvimento de nosso segundo game, antes de iniciarmos mais um desafiador projeto, iremos conhecer as principais diferenças entre jogos bidimensionais, como os que desenvolvemos até o momento, e os que se passam em ambientes tridimensionais.


Caso seja a primeira vez que acessa esta série, não se acanhe: mesmo se não tiver experiências prévias na área, sinta-se à vontade para, juntos, aprendermos a criar games utilizando a ferramenta Unity. A partir do primeiro tópico, iremos aprender desde a instalação e configuração da ferramenta até o desenvolvimento de fato de um game, envolvendo aspectos como posicionamento de personagens e itens, criação de cenas e fases, e codificação dos scripts controladores do comportamento geral de um jogo.

No tópico anterior da série finalizamos a criação de nosso segundo projeto, um platformer 2D bem divertido e cheio de desafios chamado Motorista da Pesada. Como nossos dois primeiros projetos envolveram a criação de jogos bidimensionais, a partir de agora iremos implementar, também, novas aventuras em ambientes 3D. Vamos juntos nesta caminhada rumo a novos conhecimentos!

A tridimensionalidade na história dos videogames

Desde as primeiras gerações dos videogames, muitos dos desenvolvedores tentam, por meio de seus jogos, retratar virtualmente ambientes da realidade. Mesmo com as limitações apresentadas pelos primeiros consoles, por exemplo, os criadores dos jogos “davam um jeito” de elaborar artimanhas engenhosas para passar um senso de pertencimento a uma aventura ou a um desafio.

Um exemplo clássico da primeira geração de videogames foi a disponibilização, junto aos jogos do console Magnavox Odyssey (1972), de “capas plásticas” a serem encaixadas sobre a tela da TV, a fim de transformar simples retângulos brancos sobre um fundo preto em emocionantes partidas de tênis, hóquei, futebol, corrida, dentre outros.

Conforme a tecnologia foi avançando, as restrições à liberdade dos desenvolvedores foram sendo relaxadas. O uso de sprites, backgrounds e outros recursos de imagem permitiram a criação de mundos mágicos e desafios mais elaborados, tais como os apresentados em Pitfall, para Atari 2600, e em Super Mario Bros., para NES. 

Mesmo assim, para retratar com mais fidelidade o mundo, uma barreira ainda aparentava estar presente nesses títulos: a representação com fidelidade de um ambiente tridimensional na tela.

Até a terceira geração dos videogames, isso ainda era bem difícil de ser alcançado, pois, mesmo com os avanços técnicos que surgiram, os cálculos internos que necessitam ser realizados para o devido posicionamento de um objeto 3D em um ambiente eram demasiadamente complexos para serem realizados em tempo real pelos processadores de videogames como o NES e o Master System, por exemplo.

Uma alternativa encontrada para tentar trazer um efeito tridimensional aos games foi realizada pela Sega em 1987, com o desenvolvimento dos óculos 3D para o Master System.

O “truque” envolvia alternar rapidamente a exibição em tela das imagens bidimensionais de um jogo com uma leve alteração no posicionamento dos elementos entre cada exibição, sincronizando a alternância com abertura e fechamento de cada lente dos óculos. 

Dessa forma, embora o videogame continuasse a renderizar objetos bidimensionais, para quem estivesse utilizando os óculos os sprites aparentavam estar em um ambiente com profundidade.

Mesmo com essas bem-vindas novidades, a representação de objetos tridimensionais (e não de sprites)  na tela em si ainda era muito difícil, o que dificultava representar com fidelidade gêneros de jogos que visavam simular atividades da vida real, como os que representam esportes ou corrida de carros, por exemplo.

Na quarta geração de videogames, começou-se a se vislumbrar com mais clareza caminhos para se retratar jogos em ambientes que, ao menos, simulassem de alguma forma a tridimensionalidade, mesmo respeitando as limitações técnicas ainda presentes.

Inicialmente uma das abordagens utilizadas foi por meio do desenvolvimento de jogos com visão isométrica. Esse tipo de abordagem visual, utilizado em títulos como FIFA International Soccer, para Mega Drive, e Super Mario RPG: Legend of the Seven Stars, para Super Nintendo, ainda é baseado na exibição de elementos bidimensionais na tela, mas consegue passar certo grau de imersão ao retratar os objetos na tela em um ângulo de, aproximadamente, 120 graus.

Dessa forma, consegue-se mostrar alguns aspectos adicionais dos elementos em comparação às abordagens 2D tradicionais, que geralmente apresentam os personagens e ambientes vistos de cima ou de lado.

Outra abordagem da mesma época, que ainda não era propriamente tridimensional, mas que passava essa sensação em relação ao cenário das fases, foi conhecida pelo termo Mode 7. Utilizada em alguns jogos de Super Nintendo, como Pilotwings, trata-se de um conjunto de técnicas de rotação e escalonamento de backgrounds processado diretamente pelo hardware do videogame.

Foi só no final da quarta geração que, com o auxílio de chips de processamento especial dentro dos cartuchos, jogos propriamente tridimensionais puderam começar a se popularizar, chegando às mãos dos gamers em títulos como Star Fox, para Super Nintendo, e Virtua Racing, para Mega Drive.

A partir da quinta geração dos games, com um aumento significativo no poder de processamento dos videogames, era possível que a máquina “por si só” realizasse os cálculos necessários para renderizar objetos tridimensionais na tela. Consoles como o primeiro PlayStation e o Nintendo 64 trouxeram às massas a possibilidade de encarar desafios com um nível de imersão bem maior do que o visto até então, permitindo o surgimento de clássicos como Super Mario 64 e Gran Turismo.

Dimensões e polígonos

Embora visualmente seja relativamente fácil distinguir um jogo 2D de um jogo tridimensional, é importante saber sobre o conceito de dimensões dentro de um ambiente de desenvolvimento de games para entender alguns dos desafios presentes até hoje na criação desse tipo de título.

A nível básico, um jogo 2D apresenta em tela todos os seus elementos, cenários, desafios, regras e objetivos por meio de interações em um mundo de duas dimensões, cujas coordenadas para posicionamento dos itens que o compõem são limitados aos eixos X e Y da tela, conforme exemplificado na imagem seguir.

Ao se desenvolver um jogo tridimensional, o eixo Z é acrescentado a essa dinâmica, representando o senso de profundidade de um objeto, cenário ou outro elemento de uma fase no mundo virtual ao qual pertence.

Pela presença de um fator a mais na composição de um jogo (a profundidade), a utilização de sprites nem sempre é viável, pois, por definição, eles representam imagens bidimensionais. Existem notáveis exceções que brincam com essas limitações misturando 2D com 3D, como PaRappa the Rapper, para PlayStation, mas, em geral, é necessário outro tipo de elemento gráfico para representar, por exemplo, um lutador em uma arena 3D, como a apresentada em Virtua Fighter.

Essa representação de um elemento em um ambiente tridimensional normalmente é realizada por meio do uso de modelos 3D. O “coração” de um modelo 3D são os seus polígonos: uma série de representações matemáticas de coordenadas X, Y e Z que servem para descrever ao processador do videogame em qual posição cada parte do modelo devidamente se encontra.

É possível visualizar com mais clareza esses polígonos ao se observar modelos 3D de jogos mais antigos, como o do protagonista de Crash Bandicoot (PlayStation), composto por diversos “triângulos”. Nesse exemplo, essas representações geométricas são o que chamamos de polígonos.


Não basta aos modelos tridimensionais apenas armazenarem coordenadas matemáticas dos vértices de seus polígonos. É necessário também que eles recebam uma representação visual em tela, seja por meio da coloração de cada polígono ou pela aplicação de imagens (texturas) sobrepostas às faces de modelo. Veja como o modelo da personagem Lara Croft, de Tomb Raider (PlayStation), é apresentado em tela, após a renderização de suas cores e texturas:


O cálculo de como um objeto tridimensional (e os inúmeros polígonos que o compõem) será exibido na tela é o principal impeditivo que retardou a popularização dos jogos 3D antes da quinta geração dos videogames. Se anteriormente bastava calcular o posicionamento dos sprites, backgrounds e colocar tudo na tela, agora seria necessário aferir as proporções e o posicionamento dos elementos tridimensionais e dos polígonos que os compõem, verificar sobreposição entre elementos, iluminação, sombras, posicionamento de câmera, etc. Uma quantidade enorme de cálculos a qual os processadores dos videogames anteriores à geração do primeiro PlayStation não estavam preparados à altura para encarar adequadamente.

Composição de um ambiente 3D

Em cenas de jogos tridimensionais, além dos modelos que compõem o cenário, seus personagens e itens, normalmente também são levados em conta os seguintes elementos e aspectos ao se compor um ambiente de uma fase:
  • Câmera: responsável por captar a imagem que se deseja transmitir ao jogador, respeitando um determinado ângulo e estilo de gameplay (primeira pessoa, terceira pessoa, controle livre, etc.).
  • Efeitos de iluminação e sombras: influenciam na ambientação do jogo, impactando na renderização de cores, texturas e sombras dos modelos tridimensionais de um game.
  • Elementos de imersão: utilização de recursos que se aproveitam de informações sobre a terceira dimensão para aumentar a imersão do jogador, como por exemplo a utilização de efeitos de som espacial. As animações dos modelos tridimensionais, sobretudo do personagem e dos elementos com os quais ele interage, também podem ser consideradas elementos que propiciam um aumento na imersão.
Esses e outros aspectos serão abordados de forma prática em nossos próximos projetos, para que possamos, assim, aprender um pouco mais sobre os passos para a criação de jogos em ambientes tridimensionais.

Próximos passos

Em nossos próximos encontros, analisaremos alguns fatores importantes no processo de desenvolvimento de jogos 3D, tais como os estilos de controle e de câmera. Veremos, também, fatores que podem impactar negativamente a performance de um jogo tridimensional, as principais transformações que são aplicadas ao se realizar ações em jogos com modelos 3D e discutiremos onde podemos encontrar elementos adicionais para enriquecer nossos projetos.

Nosso próximo texto já encontra-se disponível, continue conosco nessa jornada de conhecimento e fique ligado sempre aqui no GameBlast!

Revisão: Ives Boitano

Entendo videogames como sendo uma expressão de arte e lazer e, também, como uma impactante ferramenta de educação. No momento, doutorando em Sistemas da Informação pela EACH-USP, desenvolvendo jogos e sistemas desde 2020. Se quiser bater um papo comigo, nas redes sociais procure por @RodrigoGPontes.
Este texto não representa a opinião do GameBlast. Somos uma comunidade de gamers aberta às visões e experiências de cada autor. Escrevemos sob a licença Creative Commons BY-SA 3.0 - você pode usar e compartilhar este conteúdo desde que credite o autor e veículo original.


Disqus
Facebook
Google