SFML es una biblioteca multiplataforma (Windows, Mac OS X y Linux) escrita en C++ y totalmente orientada a objetos para el desarrollo de aplicaciones multimedia enfocada en el desarrollo de videojuegos 2D.
La actual versión estable es la 1.6, pero en este artículo vamos a hablar de SFML 2 que se encuentra en Release Candidate desde el 15 de abril y desde entonces no se ha parado de pulir y mejorar. Nos encontramos en una versión bastante madura con muchas novedades.
Antes que nada vamos a hablar de la estructura de SFML y que es capaz de hacer. SFML se compone de cinco módulos: System, Window, Graphics, Audio y Network. Como vemos cada uno cubre una de las áreas que nos podemos encontrar en la programación de videojuegos.
Los cinco módulos de SFML 2
-
System. Este es el módulo básico de SFML, nos proporciona clases útiles para el desarrollo como manejo sencillo de hilos, control del tiempo, plantillas para manejar vectores, streams, cadenas, utf, etc.
-
Window. El módulo window nos sirve para el manejo de la ventana de nuestra aplicación usando este módulo se puede crear un contexto OpenGL en el que dibujar directamente desde OpenGL. Además se encarga de gestionar todos los eventos que recibe la ventana (cierre, maximizar, cambio de tamaño, etc.) así como el manejo de dispositivos de entrada (teclado, ratón, joystick).
-
Graphics. Nos proporciona un contexto especial sobre Window donde se puede ?dibujar?. Además nos proporciona varias clases útiles para el manejo de imágenes, texturas (imágenes vivas en la tarjeta gráfica), colores, sprites, textos y figuras 2D como círculos, rectángulos y formas convexas.
-
Audio. Nos proporciona varias clases para trabajar con el audio, dos tipos de audio hay en SFML por defecto Sound que es un archivo de sonido corto que se carga en memoria y Music que son archivos largos de audio que se van reproduciendo en Stream. Soporte para sonido 3D.
-
Network. Colección de clases que nos facilita la creación de aplicaciones en red. Cuenta con clases para el manejo de http, ftp, packet, socket, etc.
Formatos soportados
SFML como buena biblioteca multimedia soporta muchísimos de los formatos más usados a continuación una lista de todo los soportados:
-
Formatos de imagen: bmp, dds, jpg, png, tga, psd.
-
Formatos de fuentes: ttf, cff, pcf, fnt, bdf, pfr, sfnt, type 1, type 42.
-
Formatos de audio: ogg, wav, flac, aiff, au, raw, paf, svx, nist, voc, ircam, w64, mat4, mat5 pvf, htk, sds, avr, sd2, caf, wve, mpc2k, rf64.
Como pega tiene el no soporte del formato de audio mp3 que es tan común, pero una conversión a ogg nos resuelve el problema.
Conclusiones
SFML 2 es una gran biblioteca totalmente orientada a objetos que nos facilita el manejo multimedia de la aplicación. Ojo SFML es una biblioteca multimedia no un motor para hacer videojuegos por lo que es solo la base sobre la que construir un videojuego o un motor.
Aunque aún no se ha anunciado versión oficial estable de SFML 2 esta ya supera en mucho a la actual versión 1.6 por lo que es recomendable su uso en detrimento de esta.
Más información | Sitio Oficial
Github | sfml-dev