To learn SDL 1.2 or 2.0?

Started by
1 comment, last by Krankles 10 years, 11 months ago

Hi, I'm deciding whether or not to learn SDL 1.2 or SDL 2.0 because I want to learn the API and create some games before moving onto OpenGL. I know SDL 2.0 is newer and is hardware accelerated, but there's not a lot of tutorials (at least updated ones) to learn from. Lazyfoo's tutorials are for version 1.2 and are generally the only recommended good tutorials to learn SDL.

I'm deciding to learn SDL, create a few games, come back, and render things in opengl instead of using SDL. I was deciding between SFML 2.0 and SDL 1.2 or 2.0 but the platforms supported in SDL is much bigger, and I felt it outweighed the difference between the two. Also, since a lot of indie and commercial game companies are using SDL, it seemed to be a better API to learn.

I'm learning SDL to start out with because I need more games created under my belt before I dive into OpenGL. Once I get better game concepts and stuff, I'll be then able to switch over to OpenGL for my rendering which will ease the process if I were to just start out with OpenGL and SDL and start to create games from there.

Thanks.

Advertisement

I was deciding between SFML 2.0 and SDL 1.2 or 2.0 but the platforms supported in SDL is much bigger, and I felt it outweighed the difference between the two.

Unless someone is actually planning on targeting AmigaOS, then what does it matter? A feature you aren't actually going to use isn't a feature you should care about. wink.png

Here's the breakdown:
SDL 1.2 claims: Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX
SDL 2.0 claims: Windows XP, Windows Vista, Windows 7, Mac OS X 10.4+, Linux 2.6+, iOS 3.1.3+, Android 2.3.3+
SFML claims: Windows, Linux, Mac OS X and soon Android & iOS.

Basically, SFML claims the exact same platform support that SDL 2.0 claims (Windows, Linux, Mac). SDL 1.2 claims more than either (Only IRIX, QNX, and BeOS). Whether they actually function smoothly on those platforms are another matter... but that's what their websites claim, anyways.

Also, since a lot of indie and commercial game companies are using SDL, it seemed to be a better API to learn.

Most of those groups probably chose SDL over SFML because SFML didn't exist at the time, not because they weighed the pros and cons between the two.

SFML is very recent (2007), SDL is very old (1998), and alot of the well-known open source games that use SDL were created before SFML existed (or before SFML sufficiently matured).
I'm not saying that newer is better, I'm just saying that older doesn't (in itself) mean better. If you prefer older libraries, Allegro (<1995) predates SDL by at least three years, and maybe more. smile.png

I'm not suggesting SFML over SDL. I'm suggesting you figure out what it is your current project needs, and then deciding which solution (SDL 1.2, SDL 2.0, SFML 1.x, SFML 2.0, Allegro, HGE, etc...) best fits those needs.

Your needs, as far as I understand, are:

  • C++
  • Stepping stone towards OpenGL
  • Cross platform for the following platforms: ???
  • Good documentation
  • Decent tutorials
  • Active community
  • Stable code

Which APIs do and don't meet those requirements?

I was deciding between SFML 2.0 and SDL 1.2 or 2.0 but the platforms supported in SDL is much bigger, and I felt it outweighed the difference between the two.

Unless someone is actually planning on targeting AmigaOS, then what does it matter? A feature you aren't actually going to use isn't a feature you should care about. wink.png

Here's the breakdown:
SDL 1.2 claims: Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX
SDL 2.0 claims: Windows XP, Windows Vista, Windows 7, Mac OS X 10.4+, Linux 2.6+, iOS 3.1.3+, Android 2.3.3+
SFML claims: Windows, Linux, Mac OS X and soon Android & iOS.

Basically, SFML claims the exact same platform support that SDL 2.0 claims (Windows, Linux, Mac). SDL 1.2 claims more than either (Only IRIX, QNX, and BeOS). Whether they actually function smoothly on those platforms are another matter... but that's what their websites claim, anyways.

>Also, since a lot of indie and commercial game companies are using SDL, it seemed to be a better API to learn.

Most of those groups probably chose SDL over SFML because SFML didn't exist at the time, not because they weighed the pros and cons between the two.

SFML is very recent (2007), SDL is very old (1998), and alot of the well-known open source games that use SDL were created before SFML existed (or before SFML sufficiently matured).
I'm not saying that newer is better, I'm just saying that older doesn't (in itself) mean better. If you prefer older libraries, Allegro (<1995) predates SDL by at least three years, and maybe more. smile.png

I'm not suggesting SFML over SDL. I'm suggesting you figure out what it is your current project needs, and then deciding which solution (SDL 1.2, SDL 2.0, SFML 1.x, SFML 2.0, Allegro, HGE, etc...) best fits those needs.

Your needs, as far as I understand, are:

  • C++
  • Stepping stone towards OpenGL
  • Cross platform for the following platforms: ???
  • Good documentation
  • Decent tutorials
  • Active community
  • Stable code

Which APIs do and don't meet those requirements?

I see now, I forgot to mention that I wanted to target Windows, Mac, Linux and sometime later, Android and iOS. I didn't know that SFML will soon be able to target those last 2 platforms, and I see your point about projects not using SFML instead of SDL.

I think I'll stick with SFML, thanks.

This topic is closed to new replies.

Advertisement