I've used SDL for many desktop games, always as the cross-platform glue for:

  • Creating a window
  • Processing input
  • Rendering images
  • Rendering fonts
  • Playing sounds/music

It has never disappointed me at those tasks.

But when it comes to graphics, I prefer to work with the OpenGL API directly, even though all of our games are 2D.

In the project I'm currently working on, I've made sure to only use the API subset supported by both OpenGL 1.3 and OpenGL 1.0, so making the thing run on Android should be easy, I thought.

Turns out there is no official Android or iOS port of SDL yet. However, there's one in SDL 1.3, which is still in development.

SDL 1.3 doesn't seem very appealing to me for three reasons:

  1. It's been in development for at least 4 years, and I have no idea when it will be done, not to mention stable.
  2. It's not ported to as many platforms as SDL 1.2.
  3. From what I've seen, it uses OpenGL for drawing, so I suppose the community will move away from directly using OpenGL.

So I'm wondering if I should use a different library for our current project - it doesn't matter much if I need to port my existing code from SDL 1.2 to SDL 1.3 or to some other library. We're planning to release on Windows, Mac OS X, Linux, iOS and Android, so good support for these platforms is essential.

Is there anything stable that does what I want?

  • \$\begingroup\$ SDL 1.3 is quite stable in my experience. Also, SDL 1.3 is hardly pushing people away from using OpenGL directly. Quite the opposite. They're just making it so that folks who choose to use the simpler 2D drawing facilities in SDL aren't stuck with antiquated software rendering, which won't impact you in the slightest if you don't want to use those features. Remember that SDL is used for porting large AAA games to non-Windows platforms, so it's certainly not going to remove native graphics API support. \$\endgroup\$ Dec 2 '12 at 20:15
  • \$\begingroup\$ @SeanMiddleditch That does sound good, are you using SDL 1.3 already? It just feels a wee bit like I'm walking into a trap here... \$\endgroup\$
    – futlib
    Dec 3 '12 at 3:19
  • \$\begingroup\$ I have in a couple projects, yeah. There's been a very few bugs here and there, but nothing that wasn't easily fixed. It is Open Source after all, so it's not like you're stuck if you find something wrong with it. Note that I haven't at all looked at mobile support with SDL. :) \$\endgroup\$ Dec 3 '12 at 4:56
  • 1
    \$\begingroup\$ It's called SDL 2 now, not SDL 1.3. \$\endgroup\$ Apr 16 '13 at 11:32

SDL 1.3 is now called SDL 2 now. Also, I've been using it, and it's quite stable (I'm using OS X, so that should say something). It is in development, however even if it does get to a point where it is unstable, I'm sure the developers will fix it quite fast (it is under active development; commits are made to the repo often). I've personally never pulled from the repo and had a compile error, or runtime error.

Anyway, I think a good alternative to SDL would be Allegro 5, which does support iOS (not 100% sure about Android), and is in a stable release. Allegro 5.1+ is under development, not allegro 5.


You can try the Marmalade SDK which is not open-source or free but has an affordable price: http://www.madewithmarmalade.com/


Not the answer you're looking for? Browse other questions tagged or ask your own question.