   Need Your Adivice
  I want to learn DirectX so that I can one day make my own games using it.I have a book from 2002 covering making a 2d isometric combat game, but no D3D which is fine because right now the game I want to create 1st is the same thing almost. My concern is am I wasting my time learning old stuff when I could be learning .NET programming, DirectX 9 and C#/Managed Dx?Would you reccommend me learning my 1,000+ page book and then buying other books on the new stuff later, or is programming with directx in .NET applications much different?   
  Well, it totally depends on what type of games you want to make.  If you just want to stick with 2D stuff, then using what you have now should be fine.  Since pretty much all of the DX development in past years has gone into 3D, all of the 2D stuff has remained the same.However, if you want to make 3D apps, then yes, I recommend that you learn the latest stuff.  This will make it easier for you, not only because the API is better, but also because there are a lot more resources.   ;  It is mostly depend if you ever wrote a game.starting with 2d graphics I believe is the right choice. many foundations are in the 2d graphics.learning .NET , C++ or whatever is up to you. it really does not matter how do you learn game programming. basicly it is all the same (performance is the issue).so yes, learn 2d graphics. move to 3d afterwards. thats my 2 cents.Cheers,Nuno1   ;  Ok thanks.So basically once I learn DX8, learning DX9 and managed DX will be easier since they are all basically the same?   ;Quote:Original post by FixxerOk thanks.So basically once I learn DX8, learning DX9 and managed DX will be easier since they are all basically the same?If you eventually want to do 3D, going way back to D3D8 is a waste.  Basically, if you want to do 2D graphics for a while, use an API that is good at it (Allegro, DDraw, ect).  If you want to do 3D, just start at D3D9 right now.  There is nothing to gain from having to learn all the troublesome aspects of D3D8 just to learn that they have been fixed in D3D9.I never really got the whole 'you should do 2D' first argument.  I understand it from a game programming standpoint, since doing one implies knowledge of a game-based application.  However, you certainly don't need to know 2D to do 3D.  Just make sure your maths are up to par first.   ;  Well I want to do 2D stuff first anyway.Since things are not updated in DirectDraw, using the 2d functions in D3D9 should be similar once I learn D3D9 for 3d functionality right?   ;  The more you know the better off you will be. While learning directx8 might not directly help you learn directx9, it can be useful in some other obsecure way (maybe).I prefer c++ to managed c++, and regular windows over MFC.   ;  I found DirectDraw to be very quirky an incapable compared to Direct3D even as a beginner - and you're likely to find a lot of more peers if you go for the "2D with 3D" approach. Just this last week there's been like 4-5 people asking about stuff related to that here on gamedev.I recommend looking at / using a couple of such engines to get a feel for how you might want to implement it, what you do and don't like about their APIs, how you'd like to improve on them.For someone who really wants to understand DirectX, writing your own engine is a great way to learn. But if you'd rather concentrate on the games themselves, than spend a year on the basics, go with someone else's.At least to get going - when you've written a few largish games you'll have a good understanding of your ideal API and featureset.   