I “love” SDL, but I am also looking around for alternatives!
Of course, asking on the SDL list you’ll get lots of people who like SDL.
SDL is simpler and more low level. Allegro works with a sprite design,
and has more utility functions for games. SDL is designed to set things
up and get out of your way.
A lot of the choice is personal preference. If you like to work at a low
level, then SDL is the right place for you. If you want to work at a higher
level, Allegro is a good alternative, as well as Clanlib. If you just like
SDL, you can find lots of libraries that use SDL to provide more functionality
on the libraries page, and pygame is a great option if you like Python.
As far as speed goes, the sprite approach is easier to hardware accelerate,
and SDL 1.3 is getting some improvements to the API to make it easier to
take advantage of 3D hardware when writing a 2D game.
Both libraries have hundreds of games written for them, both libraries have
- is Allegro more efficient in 2D blitting without hardware acceleration?
No, as far as I know SDL still has the best software blitters. It’s not
a huge difference, but if you’re trying to make every cycle count, I think
SDL is slightly faster working entirely in software surfaces.
If you’re working with OpenGL, SDL sets up a context and gets completely
out of your way, so you’re talking directly to the OpenGL API on the 3D
hardware at that point.
- are Allegro bitmaps less expensive than SDL Surfaces about RAM usage?
My impression is that SDL surfaces have slightly less overhead.
In the end, these days it doesn’t matter that much which library you use.
SDL has sligntly better distribution support and is lower level, Allegro
and other libraries have their own advantages and disadvantages. Play
with the a little and see which one you prefer!
Also, if you want something even higher level, I’ve heard good things
about Pygame: http://www.pygame.org
-Sam Lantinga, Lead Software Engineer, Blizzard Entertainment