'AMD says game developers should write games specifically for AMD hardware. News at 11.'
DirectX was developed because having to write games which talked direct to the hardware was such a pain in the butt. If we were to revert to that then you'd get games that run on AMD, games that run on Nvidia, and games that run on both (and none of which will run on your three year old GPU). Everyone else would be SOL, because game developers do not want to develop and test yet another version for the 3DWhatsit SuperGraphics 2000 that makes up 2% of the market.
Certainly DirectX is far from an ideal graphics API, but rewriting it to better support current hardware would be a lot more beneficial than scrapping it and telling everyone to write their own video drivers.
A graphics API is completely necessary for a variety of different reasons:
2) Making it easier for the coders
3) Ensuring compatability going forward.
I don't get the "so you don't need to much around with low-level code for advanced shaders" argument at all. In this event you'd have to write low-level code for everything.
I just think DirectX is a very poor solution in general because it comes in steps. Developers need to migrate to OpenGL. Now I will of course be saying this on a Linux forum, but basically:
1) Increased portability. Your application will run on hundreds of platform, not just Windows. It opens the computer platform in an unprecented level, much like the web platform has become open because of the Mozilla Foundation's struggle in bringing an open browser to the mass market.
2) I fail to see how OpenGL is harder to code in than DirectX.
3) I can run my OpenGL 1.4 games just fine on my OpenGL 3.3 compatible graphics card, tyvm.
4) Given proper drivers, OpenGL is as fast as DirectX - no question about it!
5) Even more portability! If your graphics card just happens to support a handful of OpenGL4 features but is otherwise only 3.3 compatible... well, OpenGL uses extensions, and can easily check if the extension will run or not. Trying to activate something? Test if the extension is supported. Yes? Good, run it. No? Too bad, don't.
No more fiddling around with which DirectX version you're on, no more MS Redistributables that don't get completely installed when you install the game, causing dll errors, no more forced upgrading to newer OS's - or OS's by a company whose software you don't like. None of that stuff.
What OpenGL needs is a better cross-platform window manager. GLUT is not good enough and it's too old, and SDL hardly fares any better. It's alright, but it's not good enough.
To this day, all I see from DirectX is a gigantic marketing campaign and vendor lockin, as well as a horrible FUD campaign against OpenGL. It's decently competent, but it really isn't better. Developing directly for the hardware puts us back into the Voodoo/TNT days, and that's not a place I want to be. But a world with OpenGL? I'd like that!
We don't need dx at all. I hope it will die soon. Very good article btw.
We need an API that's cross-platform so that it'll make it easier to write games for more than one platform...be it Windows, Linux, BSD, MacOSX for example. DirectX is just a Windows only API that time surely has passed.
We need a modern graphics API that's cross-platform so that it'll make it easier to write games for more than one platform...be it Windows, Linux, BSD, MacOSX for example. DirectX is just a Windows only API that time surely has passed. OpenGL is a sound API and can be easily extensible to support new functions whether in hardware or in software (ie drivers), however a totally new API built from the ground up should be an option if it is open and free of patent issues as well as easily getting support from the graphics hardware makers (think Nvidia, AMD, Intel)