Pues aquí estoy con un nuevo proyecto.
Un framework para desarrollar juegos en Ruby.
Los antecedentes
Después de terminar mi clon de Tetris llamado rubytris, decidí darme a la tarea de implementar otro clon de los juegos de antaño —¡y uno de mis favoritos!: Missile Command.
Debo comentar que a medio camino se me ocurrió utilizar comportamientos de direccíón (steering behaviors) para modelar el movimiento de los misiles —y algunos otras entidades— para una experiencia más envolvente.
Así, le puse pausa al Missile Command y comencé a desarrollar otro proyecto llamado ruby_steering_behaviors que cuenta ya con los comportamientos necesarios para utilizarlo en mi juego nuevo).
Durante la implementación de esos dos proyectos comencé a desarrollar abstracciones y clases útiles que no tenía en rubytris (mi primer juego):
- Estados de juego
Auxiliado por una máquina de estados es mucho más sencillo implementar las diversas pantallas de juego, entradas (splash screens) y menús. - Manejador de recursos
Para un fácil acceso a las imágenes, fuentes y sonidos. - Manejador de eventos
Un sistema de disparo y captación de eventos. - Funciones auxiliares
Para facilitar el despliegue de texto, imágenes, sonidos. - Clases útiles
Un contador de cuadros por segundo (FPS counter).
Un visor (viewport) para poder tener espacios virtuales de tamaños arbitrarios, con acercamientos, alejamientos y control de entrada.
Desgraciadamente el trabajo y otras actividades de mi vida cotidiana me absorbieron demasiado y dejé ambos proyectos abandonados por un rato.
Pero, ahora que logré hacerme de un tiempecito decidí retomarlos y me pregunté:
¿por qué no desarrollar un framework que incluya todo eso (más lo que salga)? ¿podría ser provechoso para alguien más? Creo que sí.
Y así nació lotu.
lotu
lotu es un framework naciente que está basado en gosu, una biblioteca para creación de juegos en 2D.
Siendo gosu una biblioteca, te provee únicamente con las funciones básicas para crear un juego y nada más.
lotu, por otro lado se encargará de hacer el proceso de creación de juegos simple e intuitivo. gosu provee las herramientas y lotu los medios. gosu da el con qué y lotu provee el cómo.
Sin un marco de trabajo (framework), eres totalmente libre de organizar tu código de la forma que más te plazca, pero corres el riesgo de caer en el caos completo.
Un framework impone ciertas convenciones, te enseña un estilo de trabajo. Si las convenciones ayudan a desarrollar de una manera más rápida y menos compleja tu proyecto, entonces podemos decir que el framework es exitoso.
Como experimento he decidido desarrollar a la par mi juego nuevo y lotu. Espero que de esta manera ambos se retroalimenten y así obtener un mejor resultado.
lotu gem
Nunca antes había hecho una gema en Ruby. Se me hacía un proceso esotérico y extraño (lotu es mi primera gema ¡que emoción!).
Pero jeweler realmente te la pone fácil, demasiado diría yo jeje. Si no me crees, checa este video:
Gemcutter & Jeweler
La gema la puedes instalar con:
1 | sudo gem install lotu |
Sin embargo si quieres ir al día con el desarrollo te aconsejo que lo cheques en github.
Otros frameworks
¿Por qué no usar un framework existente como chingu?
La razón principal es aprendizaje.
¡Es hora de programar!

Comentarios recientes