   Should I learn Directx?
  Hi, well, yes, I'm a beginner. I think I've finally got C++ down pretty well, and am ready to try using graphics.I'm trying to decide if I should learn DirectX SDK, the one that came out in March 09. I tried looking up some tutorials, and it looks so needlessly complicated, and its sooo confusing, It looks impossible to memorize... Should I bother learning Directx even with all this??? If you think I should please tell me why and give me some links to tutorials for specifically the one that came out in March and C++. I use Microsoft Visual C++ 2008. And also, I found this thing called Dark GDK. Is it any good?   
  If you're talking about DirectX 10, then yes, it's a good library to use/learn. It may appear "needlessly complicated" in the beginning, but it definitely is not, as you will learn if you ever go deeper into the API. Secondly, don't worry about memorizing it in one pass, but instead just keep working with the library and it will eventually become second nature.If you want some tutorials for DX10, then I recommend starting with the ones in the DX SDK: Tutorial 0: Win32 Basics. There aren't very many tutorials on DX10 around on the internet.I can't comment on Dark GDK, because I've never used it, looked at it, or heard of it.   ;  A lot of D3D code in the beginning seems like ridiculous voodoo without a purpose. I recommend reading The Direct3D Graphics Pipeline by Richard Thomson. That's the working draft for his book, so it's all there for free. He goes into a lot of detail, explaining why things are set up the way they are.Oh, and this journal post I wrote provides the source for a D3D program that has been stripped down to its bare essentials.   ;Quote:and it looks so needlessly complicated, and its sooo confusing, It looks impossible to memorize... It is a complicated API, but I would not consider most of it needlessly complicated. And you shouldn't try and memorize it, that is not reflective of any actual skill with the API on your part. You need to understand what's going on more fundamentally, and know what the API concepts are that you need to employ to realize your goals. For details, we have references and documentation. The only memorization that should occur here is by virtue of using some parts of the API over and over and over. Quote:Should I bother learning Directx even with all this???Have you done anything other than basic console programs with C++ so far? If you've never worked with the Windows API or simple 2D graphics, I would recommend getting a handle on that before you try learning Direct3D.   ;  What do you want to do with graphics?If you have never touched graphics programming before then I would recommend starting with some basic 2D, and definitely not unmanaged D3D10, which can be hard even for someone already experienced with graphics programming. The tutorials linked by an above poster are good, but as you see already in the second tutorial there are like 10 steps to take, before you even see anything on the screen.Try SDL: http://www.libsdl.org/.These tutorials seem very good, starting with how to get it working from the basics: http://lazyfoo.net/SDL_tutorials/index.php.   ;  I've done a tiny bit of windows (not really enough to understand much, I admit) and barely any allegro. Of course at first I wouldnt want to start with 3D projects, I'd just want something 2D and simple. Directx does do 2D correct?   ;  It can do 2D, but again it's not the fastest way to get there for a beginner. D3D9 has sprites and such so it's an alternative that isn't all too hard, but still much more complicated than SDL.   ;Quote:Original post by ChocolateI've done a tiny bit of windows (not really enough to understand much, I admit) and barely any allegro. Of course at first I wouldnt want to start with 3D projects, I'd just want something 2D and simple. Directx does do 2D correct?Yes, it does "do" 2D. But if you just want to do something simple and 2D, then I recommend the path that Erik spoke of (SDL). Of course, you can use DX10 to do 2D graphics, but it will be much easier with SDL. Although it may be slower with SDL.;  It depends on what you want to achieve if you should learn DirectX. There is no need for it if all you are trying is to create a simple game, as you can use a rendering engine for that and start writing your game code almost straight away, no need to work with DirectX directly that way.If you want to learn how to write a rendering engine yourself however, then learning DirectX is an option. But keep in mind that when you are a beginner it might be hard to get started on it. So perhaps starting by using a rendering engine and later moving to an API like DirectX or OpenGL is a better idea, but it depends on how well your knowledge of 3D is and how long you are willing to wait before you have some visible results (when using a rendering engine that can be 1 day, when trying to work with DirectX you might spend some time rendering simple triangles on the screen).   ;  That sounds like a good idea, I think I'll try out this SDL, and maybe once I get comfortable with that try to transition to Directx. Thanks! :D   