World Library  
Flag as Inappropriate
Email this Article
 

Simple and Fast Multimedia Library

Simple and Fast Multimedia Library
SFML logo
SFML logo
Original author(s) Laurent Gomila, and others
Developer(s) SFML Team
Stable release 2.1 / July 27, 2013 (2013-07-27)
Written in C++
Operating system Linux, OS X, Windows, FreeBSD
Type API
License zlib License[1][2]
Website .org.sfml-devwww

Simple and Fast Multimedia Library (SFML) is a cross-platform software development library designed to provide a simple interface to various multimedia components in computers. It is written in C++ with bindings available for C, D, Java, Python, Ruby, .Net, Go, Rust, OCaml, Euphoria and Nimrod.[3]

SFML handles window creation and input as well as the creation and management of OpenGL contexts. It also provides a graphics module for simple hardware-accelerated 2D graphics which includes text rendering utilizing FreeType, an audio module that utilizes OpenAL and a networking module for basic TCP and UDP communication.

SFML is free and open-source software provided under the terms of the zlib/png license. It is available on Windows, Linux, OS X and FreeBSD.[4][5] Mobile ports are available for iOS and Android systems, a first experimental version is planned for the SFML 2.2 release.[6]

Contents

  • Software architecture 1
    • Modules 1.1
    • Language bindings 1.2
    • Unofficial Add-ons 1.3
  • Reception and adoption 2
    • Video game examples using SFML 2.1
    • Other software using SFML 2.2
  • Version History 3
  • See also 4
  • References 5
  • Further reading 6
  • External links 7

Software architecture

Modules

SFML consists of various modules:

System
Vector and Unicode string classes, portable threading and timer facilities
Window
Window and input device management including support for joysticks, OpenGL context management
Graphics
Hardware-accelerated 2D graphics including sprites, polygons and text rendering
Audio
Hardware-accelerated spatialised audio playback and recording
Network
TCP and UDP sockets, data encapsulation facilities, HTTP and FTP classes

While the Graphics module is one of the main features of SFML, developers who are only interested in 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 be used independent of one another as well with the exception of the System module which is used by all other modules.

Language bindings

SFML is written in C++ and provides a C++ interface. Various bindings exist that enable the use of SFML in other programming languages as well.[3]

This table lists the currently supported bindings for SFML.
Name Language Supported Version
CSFML1 C 2.1
SFML.Net1 .NET 2.1
JSFML Java 2.1
DSFML D 2.1
pySFML Python 2.0
rbSFML Ruby 2.0
GoSFML2 Go 2.1
rust-sfml Rust 2.1
Ocsfml OCaml 2.1
ocaml-sfml OCaml 2.0
EuSFML2 Euphoria 2.0
sfml-nimrod Nimrod 2.1

1 Official bindings

Unofficial Add-ons

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

Reception and adoption

SFML is primarily used by hobbyist game developers and startup companies consisting of several developers at most. Because SFML does not necessitate writing large amounts of code, it has been adopted by many Ludum Dare participants as well.[13] Compared to older libraries such as SDL and Allegro, the SFML user base is relatively small but growing. At the time of this writing (13 November 2014), its GitHub repository has been starred by 1782 users.[14]

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

Video game examples using SFML

  • Atom Zombie Smasher,[21] real-time strategy game
  • Chesster,[22] puzzle game.
  • Cosmoscroll,[23] space-based shoot'em up game.
  • Crea,[24] moddable, 2D sandbox game.
  • HolySpirit,[25] 3D isometric hack and slash game.
  • Kroniax,[26] minimalistic side-scroller, and the first SFML game for Android.
  • M.A.R.S.,[27] multiplayer shoot 'em up game.
  • Moonman,[28] pixel art exploration sandbox game.
  • Ovid The Owl,[29] puzzle platform game.
  • Project Black Sun,[30] retro 2D side-scrolling game.
  • The Duke,[31] action platform game.
  • Vagante,[32] action RPG platform game.
  • The Shooting of Isaac,[33] vertical shooter game.
  • Open Hexagon,[34] free open-source Super Hexagon clone.
  • Pirates Treasure[35]
  • Enchanted Forest[35]
  • Limit Theory,[36] infinite, procedural space game.
  • Postmortem: one must die,[37] narrative-adventure game.
  • Pioneers,[38] turn based exploration game with some RPG elements.
  • Zloxx,[39] 2D action platformer.

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

Other software using SFML

  • Aquila,[40] open source DSP library for C++.
  • Otter,[41] a 2D C# framework built on SFML 2.
  • GDevelop,[42] open source game creation software.

Version History

  • 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)

See also

References

  1. ^ "License". 
  2. ^ https://github.com/LaurentGomila/SFML/blob/master/license.txt
  3. ^ a b "Bindings (SFML / Download)". SFML. Retrieved 13 November 2014. 
  4. ^ Gomila, Laurent. "SFML 2.1 (SFML / Download)". SFML. Retrieved 9 August 2014. 
  5. ^ "SFML/Config.cmake at f24ca9a84012531cf886f72354c1f88341dd7ac7 · LaurentGomila/SFML".  
  6. ^ "Android and iOS ports available for testing". Retrieved 15 November 2014. 
  7. ^ "SFGUI". SFGUI. Retrieved 13 November 2014. 
  8. ^ "TGUI". TGUI. Retrieved 13 November 2014. 
  9. ^ "hovatterz/light".  
  10. ^ "Bromeon :: Thor". Jan Haller. Retrieved 13 November 2014. 
  11. ^ "sfeMovie". sfeMovie. Retrieved 13 November 2014. 
  12. ^ "Tiled SFML Map Loader | SourceForge.net".  
  13. ^ "sfml | Ludum Dare".  
  14. ^ "LaurentGomila/SFML".  
  15. ^ "SFML Setup".  
  16. ^ "Rensselaer Center for Open Source Software".  
  17. ^ "CSCI 261 - Programming Concepts".  
  18. ^ "COMPSCI 464: Computer Graphics".  
  19. ^ "Engaging Computing Group | Comp4spr14 / PS5b".  
  20. ^ "Tianyu Cheng's Homepage".  
  21. ^ Chung, Brendon (20 August 2011). "Atom Zombie Tech « Blendo news".  
  22. ^ "Chesster [SFML Puzzle Game]". 18 October 2011. Retrieved 13 November 2014. 
  23. ^ "cosmoscroll - SFML-based shoot'em up game. - Google Project Hosting".  
  24. ^ "Development Update - Lighting and Saving | Siege Games". Siege Games. 3 April 2012. Retrieved 13 November 2014. 
  25. ^ "HolySpirit Windows game | Desura".  
  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".  
  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. ^ "Download | Aquila - a C++ library for digital signal processing". Zbigniew Siciarz. Retrieved 13 November 2014. 
  41. ^ "Otter - A 2D C# Framework built on SFML 2". Kyle Pulver. Retrieved 13 November 2014. 
  42. ^ "Florian Rival's personal website". Florian Rival. Retrieved 14 November 2014. 

Further reading

  • Jan Haller, Henrik Vogelius Hansson, Artur Moreira: SFML Game Development, 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

External links

  • Official website
  • Simple and Fast Multimedia Library
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 


Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.