martes, 16 de septiembre de 2014

Juegos 3D con gráficos 2D

Hace años la revolución llegaba con los juegos 2D cuyos gráficos estaban hechos en 3D, es decir pre-renderizados, consiguiendo que las animaciones fueran más fluidas y el acabado gráfico tuviera un poco más de realismo. Sin emargo, con el tiempo los polígonos se impusieron y pasamos al 3D, moviéndonos no solo arriba y abajo en la pantalla si no también “en profundidad”. Bien, pues han pasado años desde entonces y muchos desarrolladores han cambiado esta filosofía del 3D en juegos 2D para usar Sprites 2D en entornos 3D y conseguir así juegos con el aspecto más tradicional o retro moviéndose en distintos planos y por escenarios más vistosos.

Actualmente los motores para crear videojuegos como Unity trabajan “siempre” (Se que tiene nuevas funciones 2D, pero no trabaja realmente en 2D) en 3D, por lo que, aunque creemos juegos con un movimiento 2D y gráficos retro, los estaremos desarrollando en un completo entorno tridimensional, con las ventajas que esto nos proporciona. Por ejemplo, podemos elegir entre una cámara ortogonal (es decir que proyecta sus rayos hacia el infinito de forma paralela y muestra los objetos en pantalla al 100% de su tamaño sin importar la distancia hacia donde se encuentren) o una cámara en perspectiva, consiguiendo que sprites planos se desplacen sobre fondos 3D, pudiendo así crear proyectos tan interesantes como lo fue en su día Paper Mario.


Gracias a esta nueva forma de desarrollar juegos 2D, aunque tengamos que tener otra mentalidad, distinta a la del movimiento bidimensional de antes, podremos aprovechar para generar menús de juego más dinámicos de forma sencilla, dividir nuestros personajes en piezas para animarlos por rotación, o dar cierta sensación de profundidad en capas de objetos planos, muy útil para los decorados. (En la imagen podéis ver el juego Teslagrad como un bonito ejemplo de todo esto)



Unity antes de incorporar sus funciones 2D permitía el desarrollo de este tipo de juegos con algunos trucos de programación y diseño que han quedado simplificados. Y es que con unos cuantos Quads (un polígono formado por 2 triángulos), la ya mencionada cámara ortogonal y el desplazamiento de la textura aplicada al Quad para convertirlo en sprite y, gracias a este, animarlo,ya teníamos todo lo necesario para recuperar los viejos tiempos de los juegos retro. Aunque eso sí, todos agradecemos la simplificación que ha supuesto este tipo de desarrollo en las últimas versiones del popular motor.


2 comentarios:

  1. Hola hacía tiempo ahora que no me pasaba por tu fantástico blog. Genial aclaración sobre Unity. Pues yo pensaba que si que era 2d real. Si quisiera programar con Unity que me recomendarias C o Javascript??? Saludos

    ResponderEliminar
    Respuestas
    1. Gracias por volver por aquí :). Creo que en principio programar en C# o Javascript da lo mismo en Unity. Javascript es más sencillo pero para un experto en programación un autentico coñazo. C# es más potente y más "tradicional". A cierto nivel, para juegos más complicados si que se pueden sacar ventajas de C# porque es mas potente. (A mí me gusta más) :P Saludos

      Eliminar