Conceptually, the existence of an API like DirectX is a good thing for the industry. Having a single, coherent, standard, continually evolving API that allows programmers to take advantage of the latest hardware relatively transparently is a good thing. In its own way, DirectX has fulfilled its promise of bringing decent games to Windows 95 and family.
However, DirectX is (in my opinion) the most horribly designed API I’ve ever seen, and I would hate for any newbie game programmers, whose first API might be DirectX, to walk away thinking that it is in any way an example of how a games API should look. DirectX is bulky, poorly documented, unnecessarily overcomplicated, proprietary, and there was never any technical for the existence of large portions of it, such as Direct3D (Microsoft ignored the existing industry standard OpenGL simply because it wasn’t theirs and it wasn’t tied to the Windows platform, not because they thought they could offer a better solution.)
To be fair to Microsoft though, they have realised that the design isn’t perfect, and have made steps along the way to improve the API (the GIGO* principle notwithstanding). Getting rid of execute buffers was a good first step, and DirectX 7 shows a number of other cleanups, such as phasing out retained mode, and a cleaner rework of the concepts of viewports and texture objects. They are continually evolving the API, and in the process doing a good job of keeping up with the latest hardware features. OpenGL, on the other hand, appears to be somewhat stagnant. It is a good API, and it will supply you with everything you need to write a 3D game today – but if SGI doesn’t start actively working on a “version 2” then OpenGL will fall behind Direct3D.
None of the above is meant to change your mind on whether or not you want to learn DirectX. You can’t really go wrong learning DirectX. Its not about to go away, and if you want to write games for PC’s DirectX is pretty much what you’re going to need to learn. There aren’t really any alternatives at the moment anyway, and there isn’t likely to be for as long as Microsoft rules the roost.
Please come back in a few days to see tutorials on DirectX Programming on MYCPLUS Community Website.