   Matter of Opinion
  Alright i made a tile engine for an RPG based game in SDL and it went rediculous slow, i asked a buddy and he said its because sdl cant blit fast enough because it doesnt use the GPU's Pixel Pipelines, he told me to use SDL with OpenGL or use Direct X. i decided that i was going to go with direct x but ive never did windows programming so its a bit harder. anyways i wanted to know if i should look up direct x tutorials all in general or should i look into direct x 2D based tutorials, i know ill probably never do the 3d stuff so i didnt plan on even trying. but if you have some great tutorials that would help out a beginner or know a book please lay it out right here! thanks   
  How slow is ridiculously slow? My RPG that I made in VB6 using Win32 function calls didn't go terribly slow and that used 0% of a GPU.   ;  it just couldnt blit the screen fast enough it moves like laggy and stuff.. regardless of what i do.   ;  I think he was asking for a numerical figure, as we do not know anything about your definition of "lagging", "not fast enough", and "slow". For instance, FPS and test machine.   ;  it just wouldnt blit fast enough it acted as if there wasnt enough memory..i dunno hasnt anyone ever made an sdl engine?   ;  Well, my tile-based RPG could run fine on a P200. Granted it only had 20x16 tiles, with 4 layers (1280 individual draws for each redraw). It was highly unoptimized because it redrew no matter whether anything happened or not and redraw the entire screen. This would be fine if the player was constantly moving or something was happening on every part of the screen but even with this scheme, it got 30 fps on a Pentuim 200 Mhz.-edit- Are you saving all the surfacing you are creating or are you loading them from disk everytime you use them? Unless it is something really sophisticated it shouldn't have memory issues. Are you leaking memory as well maybe?   ;  well at a 800 x 600 Resolution it just cant blit fast enough i dont think.... i dunno what the problem is i mean i suppose i could redo but if there is someone thats made one in sdl then please speak up   ;  I had the same problem: at higher resolutions (i.e. 1024*768, but even 800*600) it was not able to blit the whole screen fast (you get sometimes 30fps, that are not always enaught for games like breakout clones). I had issues with the ball: it had not a fluid movement. But if you decrease the resolution you will se that the things change. I think that it could be a problem of memory bandwidth: 1024*768*4*60 would be 180MB, considering only the background. If you add multiple layers, music and what I know, then it may become a very high amount of data.A solution, as they have suggested to you, is using OGL or DirectX: moving from the sprites to the polygons can make you gain a lot, since modern graphic cards handle millions of polys, the few hundred needed by most 2d games should not be a concern. The bad is that you need to use a much more complicated pipeline (but if you ever made a OGL application, that would be easy). As an option, you could try to find some api for Allegro or SDL that provide 2d functionalities over OGL hiding the 3d part.   ;  Have you tried using SDL_DisplayFormat on all the surface you're blitting to the screen?  If they're not the same format as the screen then it'll do a conversion every time you blit it which slows things down.Also what exactly are you blitting (i.e. how big are the things you're blitting, how much stuff are you blitting)?   