Ángel Sánchez, un joven desarrollador valenciano ha publicado Steampac 3D, un videojuego basado en el legendario Pacman pero al que se le ha querido dar una vuelta de 360 grados con toda la magia de las vistas 3D. Completamente realizado con Blender, utiliza su motor de juegos así como GIMP para el tratamiento de las imágenes.

Características generales

Es un juego de laberinto inspirado por el popular Pacman, aunque con una estética diferente y con personajes y escenas en 3D.
Este juego está totalmente desarrollado con Blender 2.63 y utiliza su propio motor de juego.
Salvo un par de líneas de código en Python, toda la programación se ha llevado a cabo mediante “logic bricks”.

Características técnicas

El reproductor autónomo tiene una resolución de 640×480 y utiliza un sombreado GLSL.
El Lenguaje OpenGL Shading (GLSL) necesita una tarjeta gráfica y controladores que lo soporten.

Comentarios del autor

Tras algún tiempo sin tocar el módulo de juegos de Blender (desde su versión 2.49) y con ganas de probar algunas de sus novedades, me adentré en lo que “a priori” parecía un proyecto sencillo: la realización de un videojuego de laberinto que siguiera el esquema de juego del Pac-man, aunque modificando los elementos visuales y dotándolo de un escenario en 3D.

Esto que parece algo relativamente fácil ha ido complicándose por momentos hasta adquirir rasgos de proyecto inalcanzable (No me quiero imaginar a la gente que se embarca en la realización de juegos tipo FPS en solitario).

La preparación del material que lo compone (personajes, texturas, animación, etc.) quizás ha sido la parte menos pesada puesto que estoy más acostumbrado a manejarme con ello. Aunque, claro, siempre surgen ciertas cuestiones: retoques de modelos para bajar la densidad de la malla, ajustar las texturas en las nuevas mallas, etc.

El apartado de programación en Blender ha sido la parte más “entretenida”. A partir de unos esquemas en los que se abordaban cuestiones como el propio diseño y los comportamientos de jugador y enemigos, fui construyendo toda la lógica. Pero el reto más importante era que sólo debería emplear “logic bricks”. Quería ver si un juego aparentemente sencillo podría construirse sólo mediante los bloques lógicos de Blender, sin utilizar python (o al menos, haciéndolo en su mínima expresión).

La buena noticia es que, efectivamente, es factible hacer un juego de este tipo empleando sólo “logic bricks” (de hecho, al final sólo he incluido dos líneas de código en python para mostrar y ocultar el cursor en determinados momentos). La mala noticia es que, o tienes las ideas muy claras en la organización y desarrollo de tu proyecto o éste “morirá entre terribles sufrimientos”. Es vital utilizar distintos “estados” en los personajes para mantener cierta coherencia en la construcción y, sobretodo, tener un mínimo de organización. Además, como suele pasar con este tipo de trabajos, cuando arreglas una cosa aparecen otros problemas que irremediablemente te conducen a otros en una espiral casi infinita de problemas o fallos (en este punto es donde te darás cuenta si has organizado adecuadamente tus elementos, ya que intentar localizar un problema dentro de un caos de objetos y “logic bricks” puede acabar con tu salud mental).

Otra cuestión que me ha dado bastantes quebraderos de cabeza ha sido la optimización del juego. Efectivamente, en mi equipo (no muy potente, pero con una gráfica reciente) no hay mayores problemas a la hora de ejecutarlo: fácilmente alcanza los 60 FPS y se nota fluido. Ahora bien, al realizar las pruebas con otros equipos de menores prestaciones, los FPS pueden llegar a caer a la mitad. El mayor problema está en la utilización de “GLSL” como “shader” en lugar de “Singletexture” o “Multitexture” para poder visualizar materiales complejos realizados con nodos (el efecto “Toon” de los personajes). Además, tuve que crear librerias de materiales y cambiar el formato de las texturas de .jpg y .png a .dds (direct draw surface) puesto que parece que se mejora la carga de imágenes.

Ya ha sido probado en la nueva Ubuntu 12.10 Beta 2 y funciona sin problemas, aunque antes de poder ejecutarlo se ha tenido que instalar un paquete (‘sudo apt-get install libsdl1.2debian‘, sin las comillas), tras lo cual todo perfecto.

Descargas (Solamente para la UCI)

Finalmente logré publicar cada una de las variantes de este juego. Pruébenlo y díganme que tal. Les recuerdo que para poder visualizarlo, se necesita de una tarjeta gráfica y controladores para GLSL.

[Descarga no disponible]

Para los que están fuera de la UCI y no pueden acceder al ftp, les mantengo los links oficiales de descarga. Pronto estará disponible para Uds. también nuestro ftp.