Interfacing
Windows Realities
OpenGL is a community effort across multiple platforms, and from all accounts is an incredible set of routines. DirectX on the other hand has been designed to function on the Windows platform only, but Microsoft has made good strides in seeking community input for the more recent versions of the API. Each API has a pre-defined set of functions. From my limited knowledge of the protocols, I believe that whatever OpenGL features are not directly supported via system hardware must be provided for in software. Conversely, with the DirectX API, features not supported in hardware do not have to be duplicated in software. If you were developing a set of drivers for your hardware product, especially given the demanding consumer market, you might choose to write drivers for DirectX first because they may be easier and less time consuming to produce, meaning you can get your product out the door a little faster. However, given the gaming market, hardware manufacturers must still work on putting out a good OpenGL driver. For some, it seems to have become a very difficult task indeed, but given that we really only have two high end players now, ATI and Nvidia, gamers should expect products from either to be in fairly good shape in terms of OpenGL support. They are also doing pretty well in terms of support for audio devices and game controllers. DirectX, in fact, deals with just about everything under the sun in a collective group of APIs, and programmers are taking notice.
The Linux Community
So far I’ve only been talking about the Windows side of things. I have done so because Windows is where the bulk of all gaming development is being done. The Linux gaming scene is much newer, and in order to expand, it needs to attract not only Windows gamers, but Windows programmers as well.
Because Linux does not have a de facto API to assist programmers in interfacing with their gaming hardware, third parties have had to step in to pick up the slack. There is of course the OpenGL protocol, which works very well, but since more and more games are being written to take advantage of DirectX, there is a bit of a void. Linux does have some additional APIs, such as Open AL for audio, that can benefit game programmers, however, the appeal of a unified, all-encompassing API such as DirectX is strong, not only from a programming standpoint but from a compatibility standpoint.
For better or for worse, the bulk of all PC game development is done on the Windows platform. In addition, with the exception of a few very high profile gaming engines, many of the games being produced take advantage of the DirectX APIs provided by Microsoft for Windows. As the capabilities and stability of DirectX have increased, it has become a much more popular API than when it first started. It clearly has momentum that it did not have before, and because of that, it is making a serious impact. Again, the downside of DirectX is that it was never designed as a multi-platform solution, so if game developers program for DirectX, it is more likely that they will opt not to incur the cost and time needed to rewrite their application code so it can work with OpenGL, for example.
Regardless of how much work the Linux community puts into creating and / or supporting open APIs like OpenGL and Open AL, they are still going to have to deal with the popularity of DirectX on the Windows platform. If they want to attract game developers, they are going to have to offer some type of incentive for them. Like it or not, gaming is a business, and there are few companies that will offer to invest the time and energy for purely philanthropic reasons.
Luckily, there have been some risk-takers that boldly stepped up to the plate, although they have had mixed results. The Linux community frankly is not used to paying money to support their operating system options. Many take full advantage of the free ISO image downloads provided by most distribution, and even more invest a lot of modem time to get the latest free copy of Gimp, Star Office or Mozilla. Because of the nature of the open source movement and the language and spirit of the GPL (General Public License), many Linux users are just not in the frame of mind to pay for software, and that includes games. But in order to give game developers an incentive, there must be some level of profit involved. This dilemma has continued to put a damper on the Linux gaming scene.