This post is directed toward my direction in my 3D education. My first step started with Managed DirectX 1.1. I read Tom Millers first book, and I read a bunch of articles online for it. I absolutely loved MDX. I started playing with MDX 2.0 when that started coming out, but unfortunately it's been discontinued. However, in it's doom came XNA to bring back the light.
XNA is a wonderful step toward bringing game development to the masses. However, it's a step. It has a long ways to go to allow somebody starting out with game development to make a 3D game. For 2D game development it's amazing. The coolest part about it though is the fact that you can put your games on the XBox 360 for other people to play. Then the little downfall of that comes in. In order to share your game, the other person has to be in the game creators club. The main reason you'd be in the game creators club? So you can create games that can go on the the 360. Why would you share your game? So your friends could play them, and enjoy it. I have a few friends that are also programmers, not all of them are game programmers either though. But I also have a lot of friends that have no desire to create games because they don't want to do the coding and therefore won't be willing to spend $100 to get a game creaters club license. So what does that mean? You're developing for the PC if you want all of your friends to be able to play your games. Which for XNA, that's great! It's an excellent and amazing platform for development, especially for 2D games.
Now, what about DX10. XNA is dedicated to working on the XBox 360. Which means that it will always be restricted by the video card in the xbox 360. That means no shader 4.0, and for that matter no DX10 support. XNA is stuck where it is technology wise. Whereas DirectX is still moving forward. It's a much more complex system to work with though. C++ isn't nearly as fun to work with as C#. It's a challenge.
This last weekend I start learning DirectX9 and C++. The last time I dealt with C++ I was 13 years old. To say the least I didn't understand much of it at the point. Now, here I am concerning myself with pointers and memory management and obscurely unfriendly CAPS. Do Micorosft employees have sticky Caps Lock keys? To say the least, it's a challenge, but I'm loving it! There are lots more PC's out there than Xbox 360's. You can use an Xbox 360 controller on a pc. There's not much of an advantage to XNA or DirectX aside from the wonderful XNA system. Yet, XNA is technologically stuck. DirectX still has a long future in gaming and it'd be well worth the effort to learn it.
Not only that but Managed versions of DirectX possibly won't come, and if they do it won't be for a while. Plus, given the rep sheet, if it does come, it probably won't support everything the C++ side does. So, for now, I'm going to start learning C++, and DirectX9, and then move to DX 10 as soon as I get a compatible card and Vista.
So, that's my direction. C++ and DirectX. What do you guys think?