Cómo instalar Ruby/Gosu en Ubuntu 9.04 Jaunty Jackalope

[singlepic=484,60,,,left]

Gosu es un framework escrito en C++ para desarrollar juegos 2D. Cuenta con bindings para Ruby, y eso, es lo que nos interesa — tee-hee!
Además lo necesitas, si quieres probar el clón de Tetris que escribí. :)

Instalación de dependencias para Ruby 1.8 y Ruby 1.9

Para instalar la gema Gosu, necesitarás los siguientes paquetes:

  • g++
  • libgl1-mesa-dev
  • libpango1.0-dev
  • libboost-dev
  • libopenal-dev
  • libsndfile-dev
  • libxdamage-dev
  • libsdl-ttf2.0-dev
  • libfreeimage3
  • libfreeimage-dev

Copia y pega el siguiente comando en tu terminal:

1
sudo apt-get install g++ libgl1-mesa-dev libpango1.0-dev libboost-dev libopenal-dev libsndfile-dev libxdamage-dev libsdl-ttf2.0-dev libfreeimage3 libfreeimage-dev ruby1.8-dev ruby1.9.1-dev

Instalación de la gema

Ahora instala Gosu como gema con el comando:

1
sudo gem install gosu

Con los paquetes mencionados arriba ya instalados, la gema se compilará sin problemas.

Instalación de dependencias adicionales para el soporte de OpenGL en algunos ejemplos

En algunos ejemplos del framework Chingu requieren que la gema ruby-opengl esté disponible. Instálala tecleando esto en tu terminal:

1
2
sudo apt-get install libgl1-mesa-dri libglu1-mesa freeglut3 libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev
sudo gem install ruby-opengl

Recursos

The Gosu Wiki

Para usar la versión C++ de Gosu y/o instalarlo en otras plataformas, checa:
GettingStartedOnLinux
GettingStartedOnOsx
GettingStartedOnWindows

Metris — Mi clón de Tetris en Ruby y Gosu

[singlepic=642,200,,,left]

El proyecto ahora se llama rubytris y lo puedes encontrar en github:
http://github.com/lobo-tuerto/rubytris

¡Por fin terminé una versión presentable de mi clón de Tetris desarrollado en Ruby con ayuda del framework Gosu!

Le puse Me-tris, nombrado así, para no tener problemas con la ley (sí, se que el nombre apesta… jeje). :D

Es altamente configurable, puedes modificar cosas como el ancho y alto del tablero (en bloques), el tamaño de los bloques (en pixeles), el espaciado entre ellos, la velocidad de caída de las piezas (en milisegundos), la velocidad de repetición cuando un jugador deja presionada una tecla (para moverse a los lados, rotar, caer).

También puedes definir nuevas figuras fácilmente e indicar si tienen un pivote (un punto alrededor del cual giran las piezas). Ya no tienes que definir las piezas y cada una de sus rotaciones por separado, las figuras pueden tener un tamaño arbitrario.

El juego está (muy) básicamente completo. Lleva la puntuación del jugador y termina (tee-hee!).
Fue escrito en 3 días, 2 de ellos seguidos y uno más un par de días después.

El código está muy comentado, pero si te surge alguna duda, puedes preguntar con confianza. Tiene también, mucho campo para mejorarse (por ejemplo una pantalla de entrada).

Aquí les dejo unos screenshots que muestran como luce el juego al modificar los parámetros de configuración:
[singlepic=643,100,,,left] [singlepic=644,100,,,left] [singlepic=645,100,,,left] [singlepic=646,100,,,left]

Descargar

Aquí tienen la descarga, es un archivo .rb y varios .ogg y .png.
Metris – Mi clon de tetris escrito en Ruby con Gosu (68.7KiB)

A continuación pongo el código en su totalidad.

Les recomiendo primero checar el RubyTutorial, ahí explican las cuestiones básicas de Gosu.

Continuar leyendo

Programación de videojuegos con Gosu en Ruby

[singlepic=610,120,,,left]

Aún recuerdo cuando me saltaba la barda de la primara para ir a las maquinitas a la hora del recreo. Buenos tiempos aquellos del Atari 2600.

Desde siempre me han llamado la atención los videojuegos — y fui un jugador asiduo y vago, cabe mencionar jeje.

Y también desde siempre quise aprender a programar videojuegos. Aprendí a programar, pero conforme pasaron los años cada vez tenía menos tiempo para mis proyectos personales.

Estos días, sin embargo, he andado un poco libre y me puse a investigar como andaba el rollo de la programación de juegos en Ruby, dado que es el lenguaje que he adoptado a últimas fechas — y que además adoro como no tienen idea. :)

Entonces, andando por la red me enteré de un framework llamado Gosu (sitio en Google Code | Wiki del proyecto).

Gosu, es una biblioteca multiplataforma para desarrollo de juegos en 2D. Tiene soporte para C++ y Ruby. Sumamente sencillo de agarrar y usar.

¿No me creen? échenle un ojo al tutorial de Ruby (o al de C++). En este otro sitio pueden descargar el tutorial de Gosu y Ruby en PDF en español: Un videojuego sencillo con Gosu y Ruby

Bueno, la noticia es que me puse a programar un Tetris, comencé ayer a las 4pm aprox, y ya casi lo termino. Me falta comentar el código y refactorizar algunas cosas. En cuanto lo tenga listo (más al rato o mañana) lo pondré por si están interesados en incursionar en el game development. :)

Aquí les dejo un screenshot jejeje:
[singlepic=633,400,,,center]

De hecho, estaba pensando en hacer un remake de varios juegos antiguos — sólo por diversión y conocimiento. Y después me gustaría hacer algo más elaborado, como Gauntlet — ¡le traigo un chingo de ganas desde hace un buen!

¿Qué tal, cómo ven?
¿Algún otro interesado en programar juegos en Ruby?