Simple and Fast Multimedia Library ( SFML ) es una biblioteca de desarrollo de software multiplataforma diseñada para proporcionar una interfaz de programación de aplicaciones (API) sencilla a varios componentes multimedia en computadoras. Está escrita en C++ con enlaces disponibles para Ada , C , Crystal , D , Euphoria , Go , Java , Julia , .NET , Nim , OCaml , Python , Ruby , Rust , Node.js , Beef y Zuko . [ 3 ] Se pusieron a disposición versiones móviles experimentales para Android e iOS con el lanzamiento de SFML 2.2. [ 4 ]
SFML gestiona la creación y entrada a ventanas , así como la creación y gestión de contextos OpenGL . También proporciona un módulo gráfico para la aceleración por hardware simple de gráficos 2D por computadora, que incluye la representación de texto mediante FreeType , un módulo de audio que utiliza OpenAL , reemplazado por miniaudio a partir de la versión 3.0.0, [ 5 ] y un módulo de red para la comunicación básica mediante el Protocolo de Control de Transmisión (TCP) y el Protocolo de Datagramas de Usuario (UDP).
SFML es software libre y de código abierto distribuido bajo los términos de la licencia zlib/png . Está disponible en Linux , macOS , Windows y FreeBSD . [ 6 ] [ 7 ] La primera versión, v1.0, se publicó el 9 de agosto de 2007, y la última versión, v3.0.0, se publicó el 21 de diciembre de 2024. [ 8 ]
Arquitectura de software
Módulos
SFML consta de varios módulos:
- Sistema: clases de cadenas vectoriales y Unicode , funciones portátiles de subprocesos y temporizadores.
- Ventana: gestión de ventanas y dispositivos de entrada, incluyendo compatibilidad con joysticks y gestión del contexto OpenGL.
- Gráficos: aceleración por hardware de gráficos 2D, incluyendo sprites , polígonos y renderizado de texto.
- Audio: reproducción y grabación de audio espacializado acelerada por hardware.
- Red: sockets de red TCP y UDP , funcionalidades de encapsulación de datos, clases HTTP y FTP.
Si bien el módulo gráfico es una de las características principales de SFML, los desarrolladores interesados únicamente en crear un entorno para programar directamente en OpenGL pueden hacerlo utilizando el módulo Ventana de forma independiente, sin el módulo gráfico. Del mismo modo, los demás módulos también pueden utilizarse de forma independiente, a excepción del módulo Sistema, que es utilizado por todos ellos.
Enlaces de lenguaje
SFML está escrito en C++ y proporciona una interfaz C++ (también proporciona una interfaz C a través del enlace oficial CSFML). Existen varios enlaces de lenguaje que permiten usar SFML en otros lenguajes de programación. [ 3 ]
Esta tabla enumera los enlaces compatibles con SFML a partir de 2024..
1. Fijaciones oficiales
Complementos no oficiales
SFML proporciona las funciones básicas sobre las que se puede construir software de nivel superior . Existen bibliotecas complementarias que brindan soporte adicional para interfaces gráficas de usuario (GUI), [ 9 ] [ 10 ] iluminación 2D , [ 11 ] sistemas de partículas y animación , [ 12 ] reproducción de video [ 13 ] y mapas de mosaicos . [ 14 ]
Ejemplo
Este es un ejemplo básico de SFML que se muestra en la página del tutorial, el cual dibuja un círculo verde. [ 15 ]
#include <SFML/Graphics.hpp>importar std ;using sf :: Color ; using sf :: CircleShape ; using sf :: Event ; using sf :: RenderWindow ; using sf :: VideoMode ;int main () { RenderWindow window ( VideoMode ({ 200 , 200 }), "¡SFML funciona!" ); CircleShape shape ( 100.0f ); shape . setFillColor ( Color :: Green );while ( window . isOpen ()) { while ( const std :: optional event = window . pollEvent ()) { if ( event -> is < Event :: Closed > ()) { window . close (); } }ventana.clear ( ) ; ventana.draw ( forma ) ; ventana.display ( ) ; } }Recepción y adopción
SFML es utilizado principalmente por desarrolladores de juegos aficionados, pequeños desarrolladores de videojuegos independientes y empresas emergentes compuestas como máximo por unos pocos desarrolladores. Debido a que SFML no requiere escribir grandes cantidades de código, también ha sido adoptado por muchos participantes de Ludum Dare . [ 16 ] En comparación con bibliotecas más antiguas como Simple DirectMedia Layer (SDL) y Allegro , la base de usuarios de SFML es relativamente pequeña, pero está creciendo. A fecha de 25 de diciembre de 2024 , su repositorio de software de GitHub ha sido marcado como favorito por más de 10.000 usuarios. [ 17 ]
SFML se ha utilizado en la enseñanza en universidades y en proyectos científicos. [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ]
Ejemplos de uso en videojuegos
- Atom Zombie Smasher , [ 24 ] juego de estrategia en tiempo real .
- Equipo visitante , [ 25 ] Juego de ficción interactiva de simulación .
- Chester , [ 26 ] juego de rompecabezas .
- Cosmoscroll , [ 27 ] juego gratuito de código abierto ambientado en el espacio y de disparos .
- Crea , [ 28 ] juego sandbox 2D modificable.
- Bosque Encantado [ 29 ]
- Extreme Tux Racer , [ 30 ] juego de carreras árticas gratuito de código abierto protagonizado por Tux (que utiliza SFML desde la versión 0.7).
- GravytX The Gravytoid , [ 31 ] juego de acción, plataformas y aventuras en 2D para web, móvil y PC.
- HolySpirit , [ 32 ] juego de acción y aventura isométrico en 3D.
- Hope , [ 33 ] juego de aventuras de apuntar y hacer clic (como Myst ).
- I Can Transform , [ 31 ] juego de acción y plataformas en 2D, multijugador (también jugable en solitario) para web, móvil y PC.
- Jin Conception , [ 34 ] JRPG de pixel art en 2D para Nintendo Switch.
- KeeperRL , [ 35 ] simulador de mazmorras con elementos roguelike y RPG.
- Kroniax , [ 36 ] un juego minimalista de desplazamiento lateral y el primer juego SFML para Android.
- Teoría límite , [ 37 ] juego de espacio procedimental infinito.
- MARS , [ 38 ] juego multijugador de disparos.
- Moonman , [ 39 ] juego sandbox de exploración con pixel art.
- Open Hexagon , [ 40 ] clongratuito de código abierto de Super Hexagon .
- Ovid The Owl , [ 41 ] juego de plataformas y rompecabezas.
- Pioneers , [ 42 ] juego de exploración por turnos con algunos elementos de RPG. [ 29 ]
- Postmortem: uno debe morir , [ 43 ] juego de aventuras narrativas.
- Proyecto Sol Negro , [ 44 ] videojuego retro de desplazamiento lateral en 2D.
- TacWars , [ 45 ] un juego de rol de puzles que enfrenta a enanos contra goblins.
- El Duque , [ 46 ] juego de plataformas de acción.
- El tiroteo de Isaac , [ 47 ] juego de disparos vertical.
- Vagante , [ 48 ] juego de plataformas RPG de acción.
- Zloxx , [ 49 ] juego de plataformas de acción en 2D.
En IndieDB se pueden encontrar más ejemplos de juegos que utilizan SFML . [ 50 ]
Uso de otros programas
- Aquila , [ 51 ] biblioteca de procesamiento de señales digitales (DSP) de código abierto para C++.
- Otter Archivado el 10/12/2014 en Wayback Machine , [ 52 ] un marco de trabajo C# 2D construido sobre SFML 2.
- GDevelop , [ 53 ] software de creación de juegos de código abierto.
- Motor de inmersión archivado el 12/02/2015 en Wayback Machine , [ 54 ] herramienta para visualizar paisajes y arquitectura detallados.
- is::Engine , [ 55 ] Motor de juego 2D C++ para Nintendo Switch, Web (HTML 5), Móvil y PC.
Véase también
Referencias
- ↑ "Licencia" .
- ↑ "GitHub - SFML/SFML: Biblioteca multimedia simple y rápida" . GitHub . 14 de diciembre de 2021.
- 1 2 "Enlaces (SFML / Descargar)" . SFML . Consultado el 13 de noviembre de 2014 .
- ↑ "Registro de cambios (SFML / Desarrollo)" . Consultado el 18 de diciembre de 2014 .
- ↑ "Reemplazando OpenAL con miniaudio" . GitHub . Consultado el 25 de diciembre de 2024 .
- ↑ Gomila, Laurent. "SFML 2.1 (SFML / Descargar)" . SFML . Consultado el 9 de agosto de 2014 .
- ↑ "SFML/Config.cmake en f24ca9a84012531cf886f72354c1f88341dd7ac7 · SFML/SFML" . GitHub . Consultado el 13 de noviembre de 2014 .
- ↑ "Versión SFML 3.0.0 · SFML/SFML" . GitHub . Consultado el 25/12/2024 .
- ↑ "SFGUI" . SFGUI. Archivado del original el 17 de febrero de 2020. Recuperado el 13 de noviembre de 2014 .
- ↑ "TGUI" . TGUI . Consultado el 13 de noviembre de 2014 .
- ↑ "hovatterz/light" . GitHub . Consultado el 13 de noviembre de 2014 .
- ↑ "Bromeón :: Thor" . Jan Haller . Consultado el 13 de noviembre de 2014 .
- ↑ "sfeMovie" . sfeMovie . Consultado el 13 de noviembre de 2014 .
- ↑ "Cargador de mapas SFML en mosaico | SourceForge.net" . SourceForge . Consultado el 13 de noviembre de 2014 .
- ↑ "SFML y Visual Studio" . www.sfml-dev.org.
- ↑ «sfml | Ludum Reto» . Ludum se atreve . Consultado el 13 de noviembre de 2014 .
- ↑ "SFML/SFML" . GitHub . Consultado el 25 de diciembre de 2024 .
- ↑ "Configuración de SFML" . Universidad de Mary Washington . Archivado del original el 25 de marzo de 2018. Consultado el 13 de noviembre de 2014 .
- ↑ "Centro Rensselaer para Software de Código Abierto" . Instituto Politécnico Rensselaer . Consultado el 13 de noviembre de 2014 .
- ↑ "CSCI 261 - Conceptos de Programación" . Escuela de Minas de Colorado . Consultado el 13 de noviembre de 2014 .
- ↑ "COMPSCI 464: Gráficos por computadora" . Universidad Estatal de Boise . Archivado del original el 13 de noviembre de 2014. Recuperado el 13 de noviembre de 2014 .
- ↑ "Grupo de Computación Interactiva | Comp4spr14 / PS5b" . Universidad de Massachusetts Lowell . Archivado del original el 17 de febrero de 2023. Recuperado el 13 de noviembre de 2014 .
- ↑ "Página web de Tianyu Cheng" . Universidad de Texas en Austin . Consultado el 13 de noviembre de 2014 .
- ↑ Chung, Brendon (20 de agosto de 2011). "Atom Zombie Tech « Noticias de Blendo" . Blendo Games . Recuperado el 9 de agosto de 2014 .
- ↑ "The Away Team - Ficción interactiva de ciencia ficción" . 7 de julio de 2016. Consultado el 1 de abril de 2020 .
- ↑ "Chesster [ Juego de rompecabezas SFML ] " . 18 de octubre de 2011 . Consultado el 13 de noviembre de 2014 .
- ↑ "cosmoscroll - Juego de disparos basado en SFML. - Github" . GitHub . Consultado el 19 de julio de 2015 .
- ↑ "Actualización de desarrollo: iluminación y guardado | Siege Games" . Siege Games. 3 de abril de 2012. Consultado el 13 de noviembre de 2014 .
- 1 2 "El tesoro del pirata y el bosque encantado" . Consultado el 13 de noviembre de 2014 .
- ↑ "NOTICIAS para Extreme Tux Racer" . Revisión 698. 27 de agosto de 2017. Consultado el 12 de septiembre de 2017 .
- 1 2 "Puedo transformarme" . Consultado el 9 de noviembre de 2018 .
- ↑ "Juego HolySpirit para Windows | Desura" . Desura . 13 de noviembre de 2014. Consultado el 19 de julio de 2015 .
- ↑ "Preguntas frecuentes - Blog de Hope Dev" . 11 de agosto de 2015. Consultado el 11 de agosto de 2015 .
- ↑ "Concepción Jin" . Daily Mirror . 5 de junio de 2021. Consultado el 11 de mayo de 2022 .
- ↑ "miki151/keeperrl" . GitHub . Consultado el 11 de enero de 2015 .
- ↑ "¡Kroniax ya está disponible en Play Store!" . Consultado el 15 de noviembre de 2014 .
- ↑ "Foros de teoría de límites • Ver tema - SFML::Texturización" . Consultado el 13 de noviembre de 2014 .
- ↑ "MARS - un juego de disparos ridículo - MARS 0.7.2 Versión con corrección de errores" . MARS, 26 de abril de 2011. Consultado el 13 de noviembre de 2014 .
- ↑ "SFML 2.0 | BP | Hago videojuegos" . Ben Porter . Consultado el 13 de noviembre de 2014 .
- ↑ "Open Hexagon - juego desafiante de ritmo rápido" . Consultado el 13 de noviembre de 2014 .
- ↑ "LZR Ovid el búho" . Leeran Z. Raphaely . Consultado el 13 de noviembre de 2014 .
- ↑ «Notas de desarrollo de Eigen» . Eigen Lenk . Consultado el 13 de noviembre de 2014 .
- ↑ "Herramientas y recursos para crear un juego indie | El dominio de Koobazaur" . Jakub Kasztalski. 20 de abril de 2013. Consultado el 13 de noviembre de 2014 .
- ↑ "Versión 1.0.2 disponible de noticias para PC y Linux - Proyecto Black Sun Game - Indie DB" . Indie DB . 20 de diciembre de 2011. Consultado el 13 de noviembre de 2014 .
- ↑ "Página principal del juego de rol de puzles TacWars" . Facebook .
- ↑ "El Duque" . 8 de junio de 2009. Consultado el 13 de noviembre de 2014 .
- ↑ "Philippe Offermann » El tiroteo de Isaac" . Philippe Offermann . Consultado el 13 de noviembre de 2014 .
- ↑ "Vagante | Herramientas del oficio" . Juego Vagante. 3 de diciembre de 2013. Archivado del original el 13 de noviembre de 2014. Consultado el 13 de noviembre de 2014 .
- ↑ "Zloxx II - Un juego de acción Jump'n'Run" . Consultado el 15 de noviembre de 2014 .
- ↑ sfml/juegos
- ↑ "Descargar | Aquila - una biblioteca C++ para el procesamiento de señales digitales" . Zbigniew Siciarz . Consultado el 13 de noviembre de 2014 .
- ↑ "Otter - Un framework 2D C# basado en SFML 2" . Kyle Pulver. Archivado del original el 10 de diciembre de 2014. Consultado el 13 de noviembre de 2014 .
- ↑ "Sitio web personal de Florian Rival" . Florian Rival . Consultado el 14 de noviembre de 2014 .
- ↑ "Buenas noticias para ImmersionEngine" . Facebook . Consultado el 12 de febrero de 2015 .
- ↑ "is::Engine - Motor de juegos 2D C++ para Android y PC" . Is Daouda . Consultado el 19 de febrero de 2020 .
Lecturas adicionales
- Jan Haller, Henrik Vogelius Hansson, Artur Moreira: Desarrollo de juegos SFML , Packt Publishing, ISBN 1-849696-84-5
- http://www.lifehacker.com.au/2013/02/xna-is-dead-3-alternatives-that-let-you-use-your-c-and-net-skills/
- https://www.binpress.com/tutorial/creating-a-city-building-game-with-sfml/137
- http://www.gamefromscratch.com/page/Game-From-Scratch-CPP-Edition-The-Introduction.aspx
Enlaces externos
- Sitio web oficial
- Biblioteca multimedia sencilla y rápida en GitHub
- Tutoriales de SFML
- Interfaces de programación de aplicaciones
- Bibliotecas de audio
- Bibliotecas de C++
- Software multiplataforma
- Bibliotecas gráficas
- API de Linux
- API de macOS
- Software que utiliza la licencia zlib.
- Software de desarrollo de videojuegos para Linux
- API de Windows