Simple and Fast Multimedia Library
Original author(s) | Laurent Gomila, and others |
---|---|
Developer(s) | SFML Team |
Initial release | August 9, 2007 |
Stable release | 2.6.1
/ November 4, 2023 |
Repository | |
Written in | API |
License | zlib License[1][2] |
Website | www |
Simple and Fast Multimedia Library (SFML) is a
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 Linux, macOS, Windows and FreeBSD.[5][6] The first version v1.0 was released on 9 August 2007, and the latest version v2.6.1 was released on 4 November 2023.[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 acceleration of 2D graphics including sprites, polygons and text rendering
- Audio – hardware-accelerated spatialised audio playback and recording
- Network – TCP and UDP FTPclasses
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
SFML is written in C++ and provides a C++ interface (it also provides a C interface through the official CSFML binding). Several language bindings exist that enable using SFML in other programming languages.[3]
This table lists supported bindings for SFML as of 2017[update].
Name | Language | Supported version |
---|---|---|
CSFML1 | C | 2.5 |
SFML.Net1 | .NET | 2.5 |
CrSFML | Crystal | 2.5 |
DerelictSFML2 | D | 2.4 |
DSFML | D | 2.1 |
EuSFML2 | Euphoria | 2.4 |
csfml-fpc | Free Pascal | 2.4.0 |
GoSFML2 | Go | 2.0 |
Hackage | Haskell
|
2.3.2 |
JSFML | Java | 2.2 |
CSFML.jl | Julia | 2.5.1 |
nim-csfml | Nim | 2.3 |
Ocsfml | OCaml | 2.3 |
OCaml-SFML | OCaml | 2.0 |
PasSFML | Pascal | 2.4 |
pySFML | Python | 2.3.2 |
rbSFML | Ruby | 2.3.2 |
rust-sfml | Rust | 2.4 |
zig-sfml | Zig | 2.3.2 |
1 Official bindings
Unofficial add-ons
SFML provides the basic functions on which
Reception and adoption
SFML is primarily used by hobbyist game developers, small
SFML has been used in teaching at universities and in scientific projects.[16][17][18][19][20][21]
Video game use examples
- Atom Zombie Smasher,[22] real-time strategy game.
- Away Team,Interactive Fictiongame.
- Chesster,[24] puzzle game.
- Cosmoscroll,[25] free open-source space-based shoot 'em up game.
- Crea,[26] moddable 2D sandbox game.
- Enchanted Forest[27]
- Extreme Tux Racer,[28] free open-source arctic racing game featuring Tux (using SFML since version 0.7).
- HolySpirit,isometric hack and slashgame.
- Hope,[30] point and click adventure game (like Myst).
- I Can Transform,[31] 2D platform game for Android.
- KeeperRL,[32] dungeon simulator with rogue-like and RPG elements.
- Kroniax,[33] minimalistic side-scroller, and the first SFML game for Android.
- Limit Theory,space game.
- M.A.R.S.,[35] multiplayer shoot 'em up game.
- Moonman,[36] pixel art exploration sandbox game.
- Open Hexagon,[37] free open-source Super Hexagon clone.
- Ovid The Owl,platform game.
- Pioneers,[39] turn based exploration game with some RPG elements.[27]
- Postmortem: one must die,[40] narrative adventure game.
- Project Black Sun,[41] retro 2D side-scrolling video game.
- TacWars,[42] a puzzle RPG that pits Dwarves against Goblins.
- The Duke,[43] action platform game.
- The Shooting of Isaac,[44] vertical shooter game.
- Vagante,[45] action RPG platform game.
- Zloxx,[46] 2D action platformer.
Further examples of games using SFML are listed on
Other software use
- Aquila,[48] open source digital signal processing (DSP) library for C++.
- Otter,[49] a 2D C# framework built on SFML 2.
- GDevelop,[50] open source game creation software.
- Immersion Engine,[51] tool to visualize detailed landscapes and architecture.
- is::Engine,[52] 2D C++ game engine for Android and PC.
See also
- Allegro
- ClanLib
- Cross-platform support middleware
- GLFW
- OpenGL
- OpenGL Utility Toolkit (GLUT)
- Raylib
- Simple DirectMedia Layer (SDL)
References
- ^ "License".
- ^ "GitHub - SFML/SFML: Simple and Fast Multimedia Library". GitHub. 14 December 2021.
- ^ a b "Bindings (SFML / Download)". SFML. Retrieved 13 November 2014.
- ^ "Changelog (SFML / Development)". Retrieved 18 December 2014.
- ^ Gomila, Laurent. "SFML 2.1 (SFML / Download)". SFML. Retrieved 9 August 2014.
- ^ "SFML/Config.cmake at f24ca9a84012531cf886f72354c1f88341dd7ac7 · SFML/SFML". GitHub. Retrieved 13 November 2014.
- ^ "Release SFML 2.6.1 · SFML/SFML". GitHub. Retrieved 2023-12-23.
- ^ "SFGUI". SFGUI. Retrieved 13 November 2014.
- ^ "TGUI". TGUI. Retrieved 13 November 2014.
- ^ "hovatterz/light". GitHub. Retrieved 13 November 2014.
- ^ "Bromeon :: Thor". Jan Haller. Retrieved 13 November 2014.
- ^ "sfeMovie". sfeMovie. Retrieved 13 November 2014.
- ^ "Tiled SFML Map Loader | SourceForge.net". SourceForge. Retrieved 13 November 2014.
- ^ "sfml | Ludum Dare". Ludum Dare. Retrieved 13 November 2014.
- ^ "SFML/SFML". GitHub. 10 May 2018. Retrieved 10 May 2018.
- ^ "SFML Setup". University of Mary Washington. Retrieved 13 November 2014.
- ^ "Rensselaer Center for Open Source Software". Rensselaer Polytechnic Institute. Retrieved 13 November 2014.
- ^ "CSCI 261 - Programming Concepts". Colorado School of Mines. Retrieved 13 November 2014.
- ^ "COMPSCI 464: Computer Graphics". Boise State University. Retrieved 13 November 2014.
- ^ "Engaging Computing Group | Comp4spr14 / PS5b". University of Massachusetts Lowell. Retrieved 13 November 2014.
- ^ "Tianyu Cheng's Homepage". University of Texas at Austin. Retrieved 13 November 2014.
- ^ Chung, Brendon (20 August 2011). "Atom Zombie Tech « Blendo news". Blendo Games. Retrieved 9 August 2014.
- ^ "The Away Team - Sci-fi Interactive Fiction". 7 July 2016. Retrieved 1 April 2020.
- ^ "Chesster [SFML Puzzle Game]". 18 October 2011. Retrieved 13 November 2014.
- ^ "cosmoscroll - SFML-based shoot'em up game. - Github". GitHub. Retrieved 19 July 2015.
- ^ "Development Update - Lighting and Saving | Siege Games". Siege Games. 3 April 2012. Retrieved 13 November 2014.
- ^ a b "Pirate's Treasure & Enchanted Forest". Retrieved 13 November 2014.
- ^ "NEWS for Extreme Tux Racer". Revision 698. 27 August 2017. Retrieved 12 September 2017.
- ^ "HolySpirit Windows game | Desura". Desura. 13 November 2014. Retrieved 19 July 2015.
- ^ "FAQ - Hope Dev Blog". 2015-08-11. Retrieved 11 August 2015.
- ^ "I Can Transform". Retrieved 9 November 2018.
- ^ "miki151/keeperrl". GitHub. Retrieved 11 January 2015.
- ^ "Kroniax available in the Play Store!". Retrieved 15 November 2014.
- ^ "Limit Theory Forums • View topic - SFML::Texturing". Retrieved 13 November 2014.
- ^ "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.
- ^ "SFML 2.0 | BP | I make video games". Ben Porter. Retrieved 13 November 2014.
- ^ "Open Hexagon - challenging fast paced game". Retrieved 13 November 2014.
- ^ "LZR Ovid the Owl". Leeran Z. Raphaely. Retrieved 13 November 2014.
- ^ "Eigen's development notes". Eigen Lenk. Retrieved 13 November 2014.
- ^ "Tools and resources for making an indie game | Koobazaur's Domain". Jakub Kasztalski. 2013-04-20. Retrieved 13 November 2014.
- Indie DB. 20 December 2011. Retrieved 13 November 2014.
- ^ "TacWars puzzle RPG home page". Facebook.
- ^ "The Duke". 8 June 2009. Retrieved 13 November 2014.
- ^ "Philippe Offermann » The Shooting Of Isaac". Philippe Offerman. Retrieved 13 November 2014.
- ^ "Vagante | Tools of the Trade". Vagante Game. 3 December 2013. Archived from the original on 13 November 2014. Retrieved 13 November 2014.
- ^ "Zloxx II - An action Jump'n'Run". Retrieved 15 November 2014.
- ^ sfml/games
- ^ "Download | Aquila - a C++ library for digital signal processing". Zbigniew Siciarz. Retrieved 13 November 2014.
- ^ "Otter - A 2D C# Framework built on SFML 2". Kyle Pulver. Retrieved 13 November 2014.
- ^ "Florian Rival's personal website". Florian Rival. Retrieved 14 November 2014.
- ^ "Good news for ImmersionEngine". Facebook. Retrieved 12 February 2015.
- ^ "is::Engine - 2D C++ game engine for Android and PC". Is Daouda. Retrieved 19 February 2020.
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