SFML community forums
General => General discussions => Topic started by: XtremePrime on November 05, 2014, 03:29:31 pm
-
Hey everyone!
The title of this topic might be a bit misleading, but I want to ask:
What are the strong points of SFML and what makes it so special?
This is not for personal use (I already use SFML 2.1 and love it :3), but instead, I choose my topic to be SFML for a 7 minute presentation in my English class for college, but I have no idea what to write about SFML and what to focus on ;~;
Can anyone give me some tips on my issue?
Thanks! :)
-
I already use SFML 2.1 and love it :3
You should ask yourself why you love it ;)
What would you say spontaneously?
For me, there are several reasons I can post later, but let's not distort your opinion :)
-
It is simple, fast and multimedia. =)
-
Coming from .NET world, SFML has absolutely superior performance compared to other C# graphics libraries I've used (not counting OpenTK ofc).
-
What are the strong points of SFML and what makes it so special?
In my opinion the main pro arguments are:
- It's open source.
- It supports multiple platforms.
- Modular and flexible: You can use SFML for networking ontop of a Gtk application - or use SFML for window creation and input handling but perform rendering directly via OpenGL. You are free to do what you want without unnecessary framework overhead
- It's fast! Compared with (older) SDL releases, where rotating an image was done via CPU, SFML is based on OpenGL. This allows fast 2D graphics operations. Well, SDL 2.x introduced a new API using OpenGL .. but SDL isn't the topic you've chosen :) On top of this fast graphics operations and other stuff like audio, networking etc., SFML is (in my opinion) a very thin layer which produces just very little overhead. All those "oh it's using object orientated stuff - so it produces overhead"-arguments are nearly invalid because of optimization done by modern compilers. So it IS fast - but speed is always relative to the point of view. For the major target application types, SFML is fast enough.
- Tons of utilities: Just to mention sf::Vector, sf::Time, sf::Color and so on. Just great!
- Well, C++ is very common. But SFML also offers a nice set of language bindings for other common languages.
But you should also mention con's:
- Limited to 2D graphics (at least 3D is possible but not covered by SFML)
- No built-in animation handling system (there's no need, it depends too much on the target application; but see below)
- No resource caching (again: up to the target app; but there's a solution)
- Limited math (but there's a way, see below)
- Texture sizes are limited to the hardware (also: see below)[/i]
Some of these "issues" (well, actual they aren't issues, just a set of what-sfml-does-not 's) there are several libraries based on SFML. Just to mention: http://www.bromeon.ch/libraries/thor/ (in case of C++)
All in all: SFML is an allrounder to base your multimedia app / game on. Of course it's no all-in-one solution - but a great one-size-fits-all referring to reduce abstraction causes by lower abstraction levels. So it's a great base to work with!
Kind regards