Técnicas y trucos en el desarrollo de videojuegos

Los video juegos son programas extremadamente complejos, y unos de los mas demandantes para cualquier máquina. Por lo que en el desarrollo de video juegos se ocupan diversas técnicas y trucos, para mejorar la apariencia y funcionamiento del juego, sin perjudicar su rendimiento.

Algunas de estas técnicas son:

Desenvolvimiento (Unwrapping)

Unwrapping es una técnica utilizada para poner una textura o imagen 2D sobre un modelo 3D. Esta funciona especificando todas las caras/lados del modelo 3D sobre una imagen normal 2D (utilizando coordenadas UV), para luego especificar que imagen ira en esa cara. En concepto, es similar a envolver a un objeto con un papel de regalo, puesto que usando una imagen plana 2D se envuelve el modelo 3D.

Al momento de hacer un modelo, uno puede especificar que parte del modelo ira con la respectiva parte la imagen desenvuelta. Esto se puede hacer antes o después que se decida el diseño con el que se envolverá el modelo.

Es importante considerar que múltiples modelos pueden ocupar una sola textura, y que un solo personaje puede estar compuesto de múltiples texturas y modelos.

Modelos de colisión (Collision Mesh)

Calcular colisiones en los juegos, especialmente cuando se manejan cientos de objetos, es una de las tareas mas intensivas para las computadoras. Por eso muchas veces los objetos tienen un modelo de colisión, o hitbox, mucho más sencillo del modelo detallado que es visto por los jugadores. Estos modelos suelen estar hechos usando figuras geométricas básicas, o por lo un diseño mucho más sencillo que las que ve el jugador, lo que permite procesar las colisiones de estos mucho más rápido.

En las imágenes anteriores se puede observar un ejemplo de como se pudiera simplificar un modelo complejo de personaje. Es importante notar que las partes mas interactivas o importantes de un personaje suelen ser las que tienen modelos de colisión mas complejos, como es en este ejemplo la espada y el escudo. Puesto que son las que necesitan una detección de colisión más precisa.

Los modelos de colisiones no son solo útiles para objetos y personas, también se pueden utilizar para simplificar considerablemente los mapas o niveles de un juego.

Uno de los modelos mas comunes para personajes bípedos es la capsula. Esto es porque tiene una forma que logra cubrir a todo el personaje, no es tan complicado hacer los cálculos para revisar si colisiono con algo, y como la base de la figura es circular, esta no se queda atorada en grietas, pequeños agujeros o gradas.

Cajas de cielo (Skybox)

Sería bastante extraño estar afuera y no ver el cielo, por lo que en los juegos se usan las cajas de cielo, o skyboxes. Básicamente, en el juego todo esta adentro de un cubo hueco gigante que tiene las imágenes del cielo. Para cada lado del cubo hay una imagen del cielo diferente, y luego estas son combinadas para ver el cielo como que si fuera una sola imagen sin interrupciones.

Juegos más recientes ahora usan la variación de una esfera de cielo, o skydome, que funciona con el mismo concepto que el skybox, pero teniendo la forma mas natural de una esfera. Este tiene la notable diferencia que, al ser una esfera sin lados, la imagen del cielo tiene que ser especialmente adaptada para que se pueda poner en una esfera, similar a una foto panorámica o a una foto 360.

Es de mencionar también, que, aunque el nombre indica que es para cielos, es común usar skyboxes para paisajes (edificios, montanas, etc.) que están fuera del alcance del jugador. Esto evita que los artistas tengan que crear los modelos o arte mas detallada para esos elementos a distancia.

Mapeado Normal (Normal mapping)

Para las computadoras, entre mas compleja sea la forma de un objeto más difícil es para el GPU dibujarla. Sin embargo, comúnmente, entre mas detallado sea un objeto este tiene una mejor apariencia, por lo que se suele usar la idea de mapeado normal.

Un normal es básicamente, un vector que te indica la dirección en la que está la cara/lado de un objeto. Entonces un mapa de normales es solo una imagen 2D de un modelo 3D desenvuelto (unwrapped), que almacena los valores de los normales del objeto con los colores. Este representa los colores RGB con los valores del normal en los ejes XYZ.

Estos mapas por si solo no ayudan, la magia de estos se ven cuando los objetos con estos mapas son iluminados. Estos mapas indican como la luz debería afectar al objeto, creando la ilusión de grietas, relieves, y otros detalles pequeños, sin que se tenga que agregar mas detalles al modelo 3D del objeto.

Es de resaltar que con esta técnica no se crea geometría extra o se le da más detalle al modelo, estos mapas solo sirven para relieves pequeños (piel, superficies ásperas, etc.), puesto que si estos se ven de lado la figura siempre se mostrara como plana.