Well.. My hobby is making games.. I prefer 2D games, rather than 3D, as far as 3D requires much more things.. (3D designs, 3D collisions, techniques for deverse space, e.t.c. e.t.c.).. All this stuff gets you far away from you goal - programming a game. So for start I suggest 2D programming.

Personally I don't use either SDL, neither Allegro because lately I learn their existance. I had create my own library in C, based on the experience I'd gather some years now, specially for games - but I use it too to create fast applications that I might need in my work.

Anyone who is interested can visit the:
http://groups.yahoo.com/group/bplcc_2d_ansi_c/

The library is Full Open Source, so can anyone see what I've set it up, and modify the codes to his benefit. I've written tutorials e.t.c. too.

The library is under license - Only members of the group can use it and modify it. Anyone can communicate with me to develop it more - as a hobby! Until now in the group we are only five members. Anyone is welcome.