Técnicas e Métodos Para Programação de Jogos 2D e 3D

Com a popularização da Internet e dos dispositivos móveis o mercado de jogos digitais tem crescido de forma exponencial, tendo como principal procura jogos do estilo “casual”, que têm a característica da simplicidade de jogabilidade e facilidade de aprendizado (MALFATTI). Desenvolvedores buscam, cada vez mais, o aperfeiçoamento em novas técnicas e ferramentas de desenvolvimento para manterem-se neste mercado competitivo.

Uma das questões mais importantes a ser considerada antes de iniciar o desenvolvimento de um jogo é a escolha pela tecnologia ou linguagem que será utilizada para a implementação do mesmo. Atualmente há diversas engines disponíveis no mercado para desenvolvimento de jogos digitais. Essas oferecem uma vasta gama de linguagens de programação, recursos visuais e bibliotecas, a fim de que desenvolvedores busquem as que mais se adaptam às suas necessidades. Cabe destacar que a grande maioria destas engines trazem em seu core recursos que facilitam animações, colisões, sons dentre outros artefatos contidos em um jogo digital.

Um dos recursos mais utilizados em um jogo digital são as animações, essas utilizam imagens que dão vida a personagens e cenários. As primeiras técnicas para a animação de imagens surgiram no século 19 com a invenção de um equipamento denominado praxynoscópio, cuja função era projetar diversas imagens, desenhadas sobre uma fita transparente, em uma tela. A exibição dessas imagens com pequenas alterações em um curto intervalo de tempo dava a sensação de movimento (MALFATTI). Segundo Malfatti, no que diz respeito a animações computacionais o processo é praticamente o mesmo, imagens são representadas por uma matriz de pixels e renderizadas na tela do computador em quadros chaves separados por um intervalo de tempo definido.

A técnica mais utilizada para a implementação de animações em jogos digitais é a tiled, que separa em uma única imagem todos os quadros da animação, onde é desenhado na tela do computador apenas uma parte da imagem, originando uma sprite. Há também a utilização de tilemaps no formato isométrico, essa técnica cria a ilusão de um ambiente 3D em uma imagem 2D. Jogos como: Super Mario Bros, Pacman, Zelda, Starcraft, e Sim City 2000 fazem a utilização destas técnicas (SCHOLZ).

Outra técnica muito utilizada para dar profundidade a cenários é a de camadas (layers), que consiste em separar por níveis de visualização as sprites do jogo. Essa técnica permite que personagens sejam renderizados em meio a pilhas de camadas, permitindo efeitos como passar atrás de árvores e em frente a casas, ou nuvens sobre o sol (SCHOLZ).

No que diz respeito a colisão de objetos em um jogo digital, a técnica de hitbox, que engloba a sprite com formas geométricas simples como retângulos e círculos, tem como função detectar a sobreposição de um ou mais objetos. Uma das formas mais simples de detectar a colisão é utilizando retângulos. O algoritmo funciona assegurando que não há diferença entre qualquer um dos quatro lados dos retângulos. Outra forma simples para detecção de colisão é entre círculos, onde o algoritmo calcula se a distância entre os pontos centrais e verifica se são menores do que os dois raios adicionados juntos (SCHOLZ).

Não menos importante, o áudio, responsável por adicionar feedback e atmosfera ao jogo, faz com que engines utilizem a técnica de Buffer, como uma tentativa de reduzir o uso de dados de rede móvel. O Buffer é o processo do navegador baixar os arquivos multimídia com antecedência, garantindo uma reprodução suave (SCHOLZ).

Ao contrário de jogos 2D, os jogos 3D aproximam-se cada vez mais de verdadeiros ambientes de realidade virtual, pelo realismo em que as ações durante o jogo se processam. Assim, muitas das técnicas utilizadas na produção de jogos 2D podem ser aplicadas também em jogos 3D, cabe ao desenvolvedor buscar quais são as melhores e que se enquadram no perfil do jogo a ser desenvolvido.

REFERÊNCIAS BIBLIOGRÁFICAS

SM Malfatti. Técnicas para Animação de Imagens em Jogos 2D Utilizando Java. Disponível em: < http://www.catolicato.edu.br/nti/Material/Artigos/Jogos2DJava.pdf>. Acesso em: Setembro de 2016.

Florian Scholz. Tiles and tilemaps overview. Disponível em: . Acesso em Setembro de 2016.

__ 2D collision detection. Disponível em: . Acesso em Setembro de 2016.

__ Audio for Web games. Disponível em: . Acesso em Setembro de 2016.