Exploring SFML
I’ve started exploring SFML - Simple and Fast Multimedia Library, as a possible replacement to freeglut.
SFML is a free multimedia C++ API that provides you low and high level access to graphics, input, audio, etc.
Like GLUT/freeglut, SFML is a cross-platform library that handles the basic windowing and I/O operations that OpenGL doesn’t. But SFML also adds a number of other features – including support for a range of common image file formats, fonts, networking, audio and 2D sprite libraries. This is done in a modular fashion, so that you only need to add those features that your program is using. At time of writing SFML 1.6 is the current standard version, but SFML 2.0 has been been under development for some time and is available for download to play around with. SFML 2.0 also aims to support the modern OpenGL core libraries as standard and to drop any reliance on deprecated features. While it is possible to use GLUT/freeglut without using any of the functions that use deprecated features of OpenGL, I’m not aware of any plans to update freeglut to the modern core OpenGL, or to develop a modern replacement for the GLU library – all of which makes SFML 2.0 attractive.
Only just started playing with it, having downloaded and installed CMake, git, TortoiseGIT, Doxygen (which I probably should have been using for a while anyway) and SFML 2.0 itself. Got SFML built without too much trouble, and run a few of the example projects. Some problems running other examples – that will need time to explore. But I think it is too early to unleash this on students, as it appears that Laurent is still making significant updates and changes to SFML 2.0, judging by the discussion on this forum thread, and by the convoluted install process currently required.
So, I’ll play around with SFML a little more. But given its incomplete state, it will be a while before I consider using it as a replacement for the mix of freeglut + additional 3rd party libraries that I currently use.


I had actually been teaching SFML 2.0 via my blog for a little while now, though I have decided to pause until a stable version is out and the public interface stops changing.
However, I don’t agree that the “convoluted install process” is a reason to discourage people from SFML 2.0. Indeed, it was building SFML myself which forced me to learn how to use CMake, NMake, Make and eventually Doxygen. These are really important things to understand how to use, and I think every programmer should know them!
Thanks for the link to your tutorials – useful. As you say, the tools used are all useful ones to learn – but at the start of a class can result in overload. I prefer to ease folk into things
But the killer reason for holding off just now is the same one that is holding you back – waiting for the library to stabilise.
Hopefully by next year!