12 frameworks y librerías para desarrollar juegos¶
Para aquellos desarrolladores más "hardcore" que pasen de entornos, siempre quedarán los frameworks y bibliotecas. En esta entrada hago una recopilación por lenguajes de programación de algunas que conozco o me parecen interesantes.
Lenguaje C/C++¶
Allegro¶
Allegro es una biblioteca libre y de código abierto para la programación de videojuegos desarrollada en lenguaje C que cuenta con funciones para gráficos, manipulación de imágenes, texto, sonidos, dispositivos de entrada (teclado, ratón y mandos de juego) y temporizadores, así como rutinas para aritmética de punto fijo y acceso al sistema de archivos.
Aunque ofrece una API en lenguaje C, actualmente existen envolventes y bibliotecas adicionales que permiten utilizarlo en otros lenguajes como C++, Java, C#, Visual Basic.NET, Python, D, Lua, Pascal, Perl, Ruby, Go, Scheme, Common Lisp, Ocaml, Forth y Mercury.
Web y descarga: http://liballeg.org/
Gosu¶
Gosu es una biblioteca para el desarrollo de videojuegos en dos dimensiones en C++ y Ruby, disponible para los sistemas Mac OS X, Microsoft Windows y GNU/Linux.
La versión para C++ también está disponible para iPhone, iPod e iPad. Esta biblioteca se ha utilizado en toda clase de juegos 2D, especialmente en competiciones cronometradas, incluyendo juegos de disparos, de scroll horizontal, juegos en perspectiva isométrica, etc.
Gosu es software libre liberada bajo la licencia MIT. Para la reproducción de sonidos Gosu utiliza OpenAL en Mac OS X, SDL_mixer en GNU/Linux y Audiere en Windows, por lo que los juegos creados son software 100% libre.
Web y descarga: http://www.libgosu.org/
SDL¶
Simple DirectMedia Layer (SDL) es un conjunto de bibliotecas desarrolladas en el lenguaje de programación C que proporcionan funciones básicas para realizar operaciones de dibujo en dos dimensiones, gestión de efectos de sonido y música, además de carga y gestión de imágenes.
Pese a estar programado en C, tiene wrappers a otros lenguajes de programación como C++, Ada, C#, BASIC, Erlang, Lua, Java, Python, etc. También proporciona herramientas para el desarrollo de videojuegos y aplicaciones multimedia.
Se distribuye bajo la licencia LGPL, que es la que ha provocado el gran avance y evolución de SDL.
Web y descarga: http://www.libsdl.org/
SFML¶
Simple and Fast Multimedia Library (SFML) es una API portable, escrita en C++ pero también disponible en C, Python, Ruby, OCaml y D. Su propósito principal es ofrecer una biblioteca alternativa a SDL, usando un enfoque orientado a objetos.
Gracias a sus numerosos módulos, SFML puede ser usada como un sistema mínimo de ventanas para interactuar con OpenGL o como una biblioteca multimedia cuyas funcionalidades permiten al usuario crear videojuegos y programas interactivos.
Web y descarga: http://www.sfml-dev.org/
Lenguaje Java¶
LibGDX¶
LibGDX es un framework para el desarrollo de videojuegos multiplataforma, soportando actualmente Windows, Linux, Mac OS X, Android, iOS y HTML5.
Una de los objetivos principales de la biblioteca es mantener la simplicidad, sin renunciar al amplio abanico de plataformas finales. Para ello, te permite únicamente escribir tu código en un único proyecto y exportarlo a las tecnologías mencionadas anteriormente sin modificar nada. Pudiendo utilizar la versión de escritorio como entorno de pruebas para el resto, siguiendo así una iteración de desarrollo rápida e integrable con el resto de herramientas de Java.
Web y descarga: https://libgdx.badlogicgames.com
LWJGL¶
La Lightweight Java Game Library (LWJGL o Biblioteca Java Ligera para Juegos) es una solución dirigida a programadores tanto amateurs como profesionales y está destinada a la creación de juegos de calidad comercial escritos en el lenguaje Java.
Proporciona a los desarrolladores acceso a diversas bibliotecas multiplataforma, como OpenGL (Open Graphics Library) y OpenAL (Open Audio Library), permitiendo la creación de juegos de alta calidad con gráficos y sonido 3D. Por otro lado, LWJGL permite además acceder a controladores de juegos como GamePads, volantes y Joysticks.
Web y descarga: http://www.lwjgl.org/
Lenguaje JavaScript¶
Phaser¶
Phaser es un framework que nos permite construir juegos en HTML5 para equipos de escritorio y dispositivos móviles. Proporciona un conjunto de herramientas que aceleran el desarrollo y ayuda a manejar tareas genéricas necesarias para completar el juego. Altamente recomendable.
Web y descarga: http://phaser.io/
EaselJS¶
EaselJS es una biblioteca de gráficos vectoriales en DisplayList que permite controlar el proceso de dibujo en el canvas. Útil para la creación de juegos, arte generativo y otras experiencias gráficas.
Web y descarga: http://createjs.com/easeljs
Lenguaje LUA¶
Love2D¶
Es un framework para la creación de juegos 2D en el lenguaje Lua. LEs gratuito y de código abierto y funciona en Windows, Mac OS X y Linux. Se puede utilizar libremente para cualquier propósito incluidos los comerciales. Cuenta con una Wiki y un foro donde aprender a usarlo con la ayuda de otros usuarios.
Web y descarga: https://love2d.org/
Lenguaje Python¶
Cocos2d¶
Cocos2d es un framework, basado en (Pyglet), escrito en Python para crear juegos en 2D, y presentaciones gráficas. Actualmente existe Coco2d también para varias plataformas o lenguajes de desarrollo como C++, JavaScript, XNA en C# y Swift.
Cuenta con una versión adaptada para IPhone, lanzada el 16 de noviembre de 2010. Tras la creación del IDE de desarrollo de Intel XDK, se puede usar la versión de Cocos2d-Js para realizar aplicaciones y juegos para Android, IOS, Winphone, Windows Store, Tizen, Firefox, etc... Es utilizado en diversos juegos en la App Store.
Web y descarga: http://cocos2d.org/
Pygame¶
Pygame es un conjunto de módulos del lenguaje Python que permiten la creación de videojuegos en dos dimensiones de una manera sencilla. Está orientado al manejo de sprites. Gracias al lenguaje, se puede prototipar y desarrollar rápidamente.
Esto se puede comprobar en las competiciones que se disputan online, donde es cada vez más usado. Los resultados pueden llegar a ser profesionales. También puede utilizarse para crear otros programas multimedia o interfaces gráficas de usuario.
Pygame esta basado en la librería SDL 1.2, una alternativa más actual de SDL en Python podría ser Py-SDL2, que implementa varias mejoras respecto a Pygame. Funciona como interfaz de las bibliotecas SDL.
Web y descarga: http://www.pygame.org/
Pandas3D¶
Es un motor de videojuegos que incluye gráficos, audio, E/S, detección de colisiones, así como otras características relevantes para la creación de juegos en 3D. Es un proyecto de código abierto y software libre bajo la licencia BSD Revisada.
El lenguaje de programación de videojuegos para el que fue destinado Panda3D es Python. El motor en sí mismo está escrito en C++, y utiliza un generador-empaquetador automático para exponer la completa funcionalidad del motor en una interfaz de Python. Este enfoque da al programador las ventajas del desarrollo en Python, como el desarrollo rápido o la gestión avanzada de memoria, pero mantiene el rendimiento de un lenguaje compilado en el núcleo del motor. Por ejemplo, el motor es integrado con el recolector de basura de Python, y las estructuras del motor son manejadas automáticamente.
La comunidad es pequeña pero activa, las preguntas realizadas en su foro son generalmente respondidas casi al instante.
Web y descarga: http://www.panda3d.org/