You know you got to start somewhere, nobody is born with an intimate knowledge of SFML or any c++ library for that matter. I thought I would use sfml in a project. The first thing I did was to use my precious ink in my inkjet printer to print out individually each html page of the html 'Tutorials' downloaded from the sfml website. I then read the tutorials - which are not written in the Queen's English, by the way.
Now you are probably wondering "Why am I telling YOU this?" I am telling you, just in case you have to choose an open source game development library to use in a project.
So, the tutorials are dodgy - to say the least. All I could do when I got stuck was to look at the implementation of a particular class - which sort of defeats the whole point of object oriented programming.
Then there is a queer class in the sfml library called 'Vector2'. You would think that a regular c++ programmer would associate this with The One and only 'std::vector'. Well sfml's Vector2 is not at all related to OUR real c++ vectors. I wonder why someone would give such an important name to an entity which is simply misleading?
So, after reading the shoddy tutorials - that provide (at best) partial and cryptic explanations for most of the functionality - I could not find a solution. Like a regular John Doe, I used google and other website forums to try and find a solution. I could not find an answer so decided to post a question at the SFML forums. All I got there was a bunch of arrogant & frankly rude replies to my question. Obviously, the 'Experts' felt that the answer to my question was obvious and therefore did not feel the need to provide any explanation - like any normal person would if they wanted to help somebody.
What my original problem was no longer matters. I have now dumped sfml because I am not going to be held to ransom by a bunch of fooheads each time I get stuck. I will choose another library - even if it is a c library - that provides:
A. Extensive, accurate, clear and properly written documentation.
B. A substantial online support network that includes web forums, usenet groups, IRC and email mailing lists.
C. A mature tried and tested code base. Unlike sfml, it must not be the efforts of a one man band. Don't get me wrong I'm sure the sfml author is a master coder, but he is only one man with limits on the amount he can do. A library that comes from a group effort will obviously be superior in this respect.
So, why do the sfml people have such a chip on their shoulder? I honestly do not know why. The negative vibes in their forum is contrary to the hacker ethos of sharing information and helping others to learn. I'm glad I won't be visiting that horrible place again.
You know you got to start somewhere, nobody is born with an intimate knowledge of SFML or any c++ library for that matter. I thought I would use sfml in a project. The first thing I did was to use my precious ink in my inkjet printer to print out individually each html page of the html 'Tutorials' downloaded from the sfml website. I then read the tutorials - which are not written in the Queen's English, by the way.
Now you are probably wondering "Why am I telling YOU this?" I am telling you, just in case you have to choose an open source game development library to use in a project.
So, the tutorials are dodgy - to say the least. All I could do when I got stuck was to look at the implementation of a particular class - which sort of defeats the whole point of object oriented programming.
Then there is a queer class in the sfml library called 'Vector2'. You would think that a regular c++ programmer would associate this with The One and only 'std::vector'. Well sfml's Vector2 is not at all related to OUR real c++ vectors. I wonder why someone would give such an important name to an entity which is simply misleading?
So, after reading the shoddy tutorials - that provide (at best) partial and cryptic explanations for most of the functionality - I could not find a solution. Like a regular John Doe, I used google and other website forums to try and find a solution. I could not find an answer so decided to post a question at the SFML forums. All I got there was a bunch of arrogant & frankly rude replies to my question. Obviously, the 'Experts' felt that the answer to my question was obvious and therefore did not feel the need to provide any explanation - like any normal person would if they wanted to help somebody.
What my original problem was no longer matters. I have now dumped sfml because I am not going to be held to ransom by a bunch of fooheads each time I get stuck. I will choose another library - even if it is a c library - that provides:
A. Extensive, accurate, clear and properly written documentation.
B. A substantial online support network that includes web forums, usenet groups, IRC and email mailing lists.
C. A mature tried and tested code base. Unlike sfml, it must not be the efforts of a one man band. Don't get me wrong I'm sure the sfml author is a master coder, but he is only one man with limits on the amount he can do. A library that comes from a group effort will obviously be superior in this respect.
So, why do the sfml people have such a chip on their shoulder? I honestly do not know why. The negative vibes in their forum is contrary to the hacker ethos of sharing information and helping others to learn. I'm glad I won't be visiting that horrible place again.
Then there is a queer class in the sfml library called 'Vector2'. You would think that a regular c++ programmer would associate this with The One and only 'std::vector'. Well sfml's Vector2 is not at all related to OUR real c++ vectors. I wonder why someone would give such an important name to an entity which is simply misleading?
This is a design mistake in C++, not SFML. In all other applications, a vector is a mathematical vector, having a direction and magnitude. In C++, for some reason, and vector is a contiguous resizeable list.
Also, could you link to your topic on the SFML foums?
You have to admit that for how SFML is maintained you would think it would be in a much poorer state. The guy who maintains it, however, balances a lot of different things, for free, and even has time to help on the forums. Obviously the rest is community support, and the documentation is outdated - but the community SHOULD help - you describe a scenario that doesn't sound like that community.
So, the tutorials are dodgy - to say the least. All I could do when I got stuck was to look at the implementation of a particular class
Or you could look at the class's documentation, which is incredibly thorough.
I can't speak for the tutorials because I've never used them, but I have found extremely few flaws in the actual documentation for SFML itself. It's very well done.
Then there is a queer class in the sfml library called 'Vector2'.
As L B mentioned... std::vector is the one that's poorly named. sf::Vector2 actually represents a 2 dimensional mathematical vector, complete with the operator overloads you'd expect. The name is fine. Anyone familiar with the basics of linear algebra would not be confused by it.
I have now dumped sfml because I am not going to be held to ransom by a bunch of fooheads each time I get stuck.
I'm not very active on the SFML forums so I can't say first hand... but I've heard this from several people, so you're not alone in this regard.
Yes, it sucks when a community is lame. There's no defense for that. I wouldn't fault the lib for that, though.
FWIW, several people on this forum are SFML savvy and much more beginner friendly. You could try posting questions here instead.
I could not find an answer so decided to post a question at the SFML forums. All I got there was a bunch of arrogant & frankly rude replies to my question
Most communities are pretty rude when you ask questions that have been answered before, or when you don't post any code with your problem. I'm not defending them, but being aware of those types of things can definitely help.
Just look here, the regulars expect everyone to use code tags(they should), and to post code.
I have now dumped sfml because I am not going to be held to ransom by a bunch of fooheads each time I get stuck
I'm sorry to hear that, SFML is one of the cleanest APIs I've ever used. I'm not sure if you've heard of SDL, I know a lot of people like to use it.
I DO NOT recommend SDL 1.2 (which is what LazyFoo's tutorials go over) because it is extremely archaic, gets crap performance on modern hardware, and teaches you techniques that have not been in widespread use for well over a decade.
If you must use SDL, use SDL 2.0 (aka SDL HG). I haven't used it personally but it appears to have addressed the major issues with SDL 1.2.
EDIT: anything that uses the term "blit" is a sign that you should probably stay away from it.
How can you (Disch) not recommend SDL 1.2 - which is the stable release, but you recommend an unstable library - that the sdl website says "warning - under construction..not stable". That is a very strange recommendation that i personally will not be following.
How can you (Disch) not recommend SDL 1.2 - which is the stable release, but you recommend an unstable library - that the sdl website says "warning - under construction..not stable". That is a very strange recommendation that i personally will not be following.
I am pretty sure he explained why he wouldn't recommend the "stable" version.
because it is extremely archaic, gets crap performance on modern hardware, and teaches you techniques that have not been in widespread use for well over a decade.
anything that uses the term "blit" is a sign that you should probably stay away from it.
How can you (Disch) not recommend SDL 1.2 - which is the stable release, but you recommend an unstable library - that the sdl website says "warning - under construction..not stable".
Because of what I said.
SDL 1.2 uses techniques similar to DirectDraw which has been officially deprecated since like 2001.
It uses "surface blitting" and "dirty rect" techniques which have not been commonly hardware accelerated in years (you can't even find 2D rendering hardware anymore... it's all 3D now and has been for quite some time). This means that more often than not, it will fall back to software rendering which is SLOW and completely unsuitable for fast paced graphical environments (like the kind of environment SDL is supposed to provide you).
Basically... SDL 1.2 is old. Old to the point of being worthless. The only way to get any kind of respectable performance out of the SDL graphic lib is to bypass it completely and do your rendering with OpenGL directly.
Last time I checked... the audio lib was no better... doing all its audio mixing in software as well. But SDL_Mixer does a decent job of abstracting that so hopefully they got wise and aren't doing that any more.
That is a very strange recommendation that i personally will not be following.