Simple and Fast Multimedia Library

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Simple and Fast Multimedia Library
SFML logo
SFML logo
Original author(s) Laurent Gomila, and others
Developer(s) SFML Team
Stable release
2.4.0 / August 7, 2016; 48 days ago (2016-08-07)
Written in C++
Operating system Linux, macOS, Windows, FreeBSD
Type API
License zlib License[1][2]
Website www.sfml-dev.org

Simple and Fast Multimedia Library (SFML) is a cross-platform software development library designed to provide a simple application programming interface (API) to various multimedia components in computers. It is written in C++ with bindings available for C, Crystal, D, Euphoria, Go, Java, Julia, .NET, Nim, OCaml, Python, Ruby, and Rust.[3] Experimental mobile ports were made available for Android and iOS with the release of SFML 2.2.[4]

SFML handles creating and input to windows, and creating and managing OpenGL contexts. It also provides a graphics module for simple hardware acceleration of 2D computer graphics which includes text rendering using FreeType, an audio module that uses OpenAL and a networking module for basic Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) communication.

SFML is free and open-source software provided under the terms of the zlib/png license. It is available on Windows, Linux, macOS and FreeBSD.[5][6]

Software architecture[edit]

Modules[edit]

SFML consists of various modules:

While the graphics module is one of the main features of SFML, developers who are interested in only creating an environment to program directly in OpenGL can do so by using the Window module on its own without the graphics module. Similarly, the other modules can also be used independently of each other, except for the System module which is used by all of the modules.

Language bindings[edit]

SFML is written in C++ and provides a C++ interface. Several language bindings exist that enable using SFML in other programming languages.[3]

This table lists supported bindings for SFML as of 2015.

Name Language Supported version
CSFML1 C 2.3
SFML.Net1 .NET 2.2
JSFML Java 2.2
DSFML D 2.1
pySFML Python 2.2
rbSFML Ruby 2.0
GoSFML2 Go 2.1
rust-sfml Rust 2.1
Ocsfml OCaml 2.2
ocaml-sfml OCaml 2.0
EuSFML2 Euphoria 2.0
nim-csfml Nim 2.3
SFML.jl Julia 2.2
SFML Haskell 2.0
PasSfml Pascal 2.3
crsfml Crystal 2.3

1 Official bindings

Unofficial add-ons[edit]

SFML provides the basic functions on which higher-level software can be built. Add-on libraries exist that provide added support for graphical user interfaces (GUIs),[7][8] 2D lighting,[9] particle systems and animation,[10] video playback[11] and tilemaps.[12]

Reception and adoption[edit]

SFML is primarily used by hobbyist game developers and startup companies consisting of several developers at most. Because SFML does not require writing large amounts of code, it has been adopted by many Ludum Dare participants also.[13] Compared to older libraries such as Simple DirectMedia Layer (SDL) and Allegro, the SFML user base is relatively small but growing. As of 26 August 2015, its GitHub software repository has been starred by 2274 users.[14]

SFML has been used in teaching at universities and in scientific projects.[15][16][17][18][19][20]

Video game use examples[edit]

Further examples of games using SFML are listed on IndieDB here.

Other software use[edit]

Version history[edit]

  • 1.0 – July 2007
    • 1.1 – 18 September 2007
    • 1.2 – 16 January 2008
    • 1.3 – 22 June 2008
    • 1.4 – 7 January 2009
    • 1.5 – 4 June 2009
    • 1.6 – 6 April 2010, mainly a bug-fix release
  • 2.0 – 29 April 2013
    • 2.1 – 27 July 2013
    • 2.2 – 17 December 2014
    • 2.3 – 9 May 2015
      • 2.3.1 – 11 July 2015
      • 2.3.2 – 12 September 2015
    • 2.4 – 7 August 2016

See also[edit]

References[edit]

  1. ^ "License". 
  2. ^ https://github.com/SFML/SFML/blob/master/license.txt
  3. ^ a b "Bindings (SFML / Download)". SFML. Retrieved 13 November 2014. 
  4. ^ "Changelog (SFML / Development)". Retrieved 18 December 2014. 
  5. ^ Gomila, Laurent. "SFML 2.1 (SFML / Download)". SFML. Retrieved 9 August 2014. 
  6. ^ "SFML/Config.cmake at f24ca9a84012531cf886f72354c1f88341dd7ac7 · SFML/SFML". GitHub. Retrieved 13 November 2014. 
  7. ^ "SFGUI". SFGUI. Retrieved 13 November 2014. 
  8. ^ "TGUI". TGUI. Retrieved 13 November 2014. 
  9. ^ "hovatterz/light". GitHub. Retrieved 13 November 2014. 
  10. ^ "Bromeon :: Thor". Jan Haller. Retrieved 13 November 2014. 
  11. ^ "sfeMovie". sfeMovie. Retrieved 13 November 2014. 
  12. ^ "Tiled SFML Map Loader | SourceForge.net". SourceForge. Retrieved 13 November 2014. 
  13. ^ "sfml | Ludum Dare". Ludum Dare. Retrieved 13 November 2014. 
  14. ^ "SFML/SFML". GitHub. 26 August 2015. Retrieved 26 August 2015. 
  15. ^ "SFML Setup". University of Mary Washington. Retrieved 13 November 2014. 
  16. ^ "Rensselaer Center for Open Source Software". Rensselaer Polytechnic Institute. Retrieved 13 November 2014. 
  17. ^ "CSCI 261 - Programming Concepts". Colorado School of Mines. Retrieved 13 November 2014. 
  18. ^ "COMPSCI 464: Computer Graphics". Boise State University. Retrieved 13 November 2014. 
  19. ^ "Engaging Computing Group | Comp4spr14 / PS5b". University of Massachusetts Lowell. Retrieved 13 November 2014. 
  20. ^ "Tianyu Cheng's Homepage". University of Texas at Austin. Retrieved 13 November 2014. 
  21. ^ Chung, Brendon (20 August 2011). "Atom Zombie Tech « Blendo news". Blendo Games. Retrieved 9 August 2014. 
  22. ^ "Chesster [SFML Puzzle Game]". 18 October 2011. Retrieved 13 November 2014. 
  23. ^ "cosmoscroll - SFML-based shoot'em up game. - Google Project Hosting". Google Project Hosting. Retrieved 19 July 2015. 
  24. ^ "Development Update - Lighting and Saving | Siege Games". Siege Games. 3 April 2012. Retrieved 13 November 2014. 
  25. ^ "HolySpirit Windows game | Desura". Desura. 13 November 2014. Retrieved 19 July 2015. 
  26. ^ "Kroniax available in the Play Store!". Retrieved 15 November 2014. 
  27. ^ "M.A.R.S. - a ridiculous shooter - M.A.R.S. 0.7.2 Bugfix Release". M.A.R.S. 26 April 2011. Retrieved 13 November 2014. 
  28. ^ "SFML 2.0 | BP | I make video games.". Ben Porter. Retrieved 13 November 2014. 
  29. ^ "LZR Ovid the Owl". Leeran Z. Raphaely. Retrieved 13 November 2014. 
  30. ^ "Version 1.0.2 is available of PC and Linux news - Project Black Sun Game - Indie DB". Indie DB. 20 December 2011. Retrieved 13 November 2014. 
  31. ^ "The Duke". 8 June 2009. Retrieved 13 November 2014. 
  32. ^ "Vagante | Tools of the Trade". Vagante Game. 3 December 2013. Retrieved 13 November 2014. 
  33. ^ "Philippe Offermann » The Shooting Of Isaac". Philippe Offerman. Retrieved 13 November 2014. 
  34. ^ "Open Hexagon - challenging fast paced game". Retrieved 13 November 2014. 
  35. ^ a b "Pirate's Treasure & Enchanted Forest". Retrieved 13 November 2014. 
  36. ^ "Limit Theory Forums • View topic - SFML::Texturing". Retrieved 13 November 2014. 
  37. ^ "Tools and resources for making an indie game | Koobazaur's Domain". Jakub Kasztalski. Retrieved 13 November 2014. 
  38. ^ "Eigen's development notes". Eigen Lenk. Retrieved 13 November 2014. 
  39. ^ "Zloxx II - An action Jump'n'Run". Retrieved 15 November 2014. 
  40. ^ "miki151/keeperrl". Retrieved 11 January 2015. 
  41. ^ "FAQ - Hope Dev Blog". Retrieved 11 August 2015. 
  42. ^ "Download | Aquila - a C++ library for digital signal processing". Zbigniew Siciarz. Retrieved 13 November 2014. 
  43. ^ "Otter - A 2D C# Framework built on SFML 2". Kyle Pulver. Retrieved 13 November 2014. 
  44. ^ "Florian Rival's personal website". Florian Rival. Retrieved 14 November 2014. 
  45. ^ "Good news for ImmersionEngine". Facebook. Retrieved 12 February 2015. 

Further reading[edit]

External links[edit]