Is SDL (when used CORRECTLY) conducive to detailed in-Game animation and displaying interesting high quality particle effects?

If my question seems too vague, at the other end of this link I have an animation reel:


(30 seconds in a troop of the kinds of characters I will be using run into screen)

I would like to get my games to run at about the level of pixel-detail (if not slightly better as the video is a little bit overcompressed) with 10-15 characters on screen, and 1-4 pre-rendered 2D explosions flying around at the same time.

I just can't help but wonder, is this even possible in SDL?

I can't stress enough though: I absolutely love C++ so far, and SDL has been really cool, but I would really love to feel more certain that I am learning the specifics of the best tool for what I am trying to do.


1 Answer 1


10-15 characters on screen and a few pre-rendered explosions seems easily doable in SDL - it's just a few sprites to push to screen after all.

However, do note that SDL (1.2, the current non-beta version) is rendered on a software surface if I remember correctly. This means that it isn't accelerated by your graphics hardware (which will happen in SDL 1.3 (Just checked the website, it has been renamed to SDL 2.0 now) which will feature hardware acceleration. Just keep that in mind.

  • \$\begingroup\$ Mindblown, I didn't know it and that explains why a lot of SDL games/roguelikes crawl in my netbook. I thought that you could declare a hardware surface that used acceleration, or at least I saw the option when I tried to code some Gp2X stuff. \$\endgroup\$ Mar 14, 2012 at 10:35
  • 1
    \$\begingroup\$ Yeah, seconded, what the heck is SDL_HWSURFACE for then? \$\endgroup\$
    – user9485
    Mar 14, 2012 at 13:02
  • 1
    \$\begingroup\$ @EfEs @Keith It's been a while since I've dabbled with SDL, but I believe that while using SDL_HWSURFACE will load the texture into memory, SDL still uses the CPU to blit the textures onto the screen which is represented in software, so it may be even slower as it has to transfer from GPU to CPU. SDL_HWSURFACE is predominantly used for integration with OpenGL which will give you great performance because the screen is represented in the GPU as well. \$\endgroup\$
    – DMan
    Mar 14, 2012 at 22:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .