La programación 3D

 En el entorno de desarrollo 3D, la programación es la misma que encontramos para la mayoría de los proyectos que hoy día construyen los desarrolladores: programación orientada a objetos.

Nos basamos en clases para definir los diferentes objetos, en este caso a tener en cuenta tres variables: x, y, z. Hay que tener en cuenta en todo momento el espacio tridimensional, los movimientos, colisiones, etc. El lenguaje utilizado dependerá de las herramientas que hayamos escogido para desarrollar. Muchos desarrolladores optan por OpenGL, C++ (combinado con librerías graficas obviamente), C#, Java 3D e incluso JavaScript para pequeños fragmentos de código. En este artículo nos centraremos en la programación de videojuegos.

 

Podría hacerse una división de videojuegos según su escenario o fondo sobre el que se desarrollan: los juegos basados en tiles (baldosas) o bien de fondo “simple”. Esto es determinante ahora de programarlo. Los juegos basados en tiles tienen un fondo que consiste en una serie de cuadrados de tamaño fijo que contienen normalmente una imagen y que sirven para determinar la posición de los objetos, aquí tenéis un ejemplo.

Los de fondo “simple” consiste en un escenario único sobre el cual se depositan los objetos y puede tener más o menos complejidad (de hecho, a veces es más fácil programar un juego de tiles).

 

Desde mi experiencia personal, comencé a programar videojuegos en un entorno basado en c++, utilizado el IDE Dev-C++ y la librería Allegro. De esta combinación surgieron mis primeros juegos 2D con gráficos en color (ya que primero los hacía en modo consola). Más adelante, he pasado al 3D y comencé con un entorno básico cuyos requisitos son:

 

Este entorno es útil para un primer contacto con el espacio 3D ya que la librería nos aporta soluciones como las variables tipo Vector3 o Quaternion junto con una serie de métodos que nos ayudan a un mejor tratamiento de las posiciones. Para este tipo de programación es importante utilizar correctamente la resolución en pantalla, una disposición de objetos en una cantidad coherente para no sobrecargar, controlar las colisiones de los objetos, etc. No viene integrado el diseño 3D, por lo que hay que buscar un editor externo, por ejemplo Blender (Un diseñador 3D basado en malla). Este entorno tiene sus inconvenientes, ya que los efectos o shaders debemos de crearlos manualmente. Los shaders permiten crear sombras, iluminación, degradados, etc.
 
Aquí os muestro algunas capturas de pantalla de un juego sencillas:
 
 






En conclusión, la programación 3D no es una tarea sencilla y requiere su tiempo. Nos permite crear nuevos espacios tanto para aplicaciones como para componentes en la Web. Existen motores gráficos que nos ayudan a realizar tareas en menor tiempo como Ogre 3D o Unity 3D
 

Daniel Pallarés García
Área de Desarrollo
eXtremaNET Consultores