New Cross Platform Alternative To DirectX
BlackVomit writes: "
There's a bunch of companies such as 3dfx, 3Dlabs, ATI, Compaq, Discreet, Evans & Sutherland, IBM, Intel, S3, and SGI that have formed a special interest group called Khronos to design a cross platform API for graphics, video, and audio. This is very cool, as it could be a huge leap for gaming on Linux as well as all platforms that choose to implement the API. Imagine games that work seamlessly on Winders as well as Linux/Unix, BeOs, Mac, etc. I am somewhat surprised that nVidia isn't in on this.
" Let's just hope they work with the other open-standards projects for these things. The promise of a "an industry wide, non-proprietary approach" just screams out for it ...
SDL, Simple Direct Media Layer, by Sam Lantinga (not Lokigames, but he his their head programmer) is supported in news groups and mailing lists, and is a very well documented API that is already in many shipping products from Loki games.
:)
I cannot remember all of the operating systems and platforms it compiles and runs under, but let's just say that it allows you to interface with TWO renderers under both Windows AND Linux, plus OpenGL and OpenAL support. Also, it is endian-portable, as it works on the Mac as well.
It also supports all of the other major facets of DirectX: DirectInput, DirectSound, oh wait, that's about all the other major facets.
About the only benefit that I can see from this new API is a unified driver programming interface. Right now, SDL interfaces with renderers elsewhere. This means many different types of drivers must be programmed in order to have your hardware work cross platform a'la SDL.
PS. SDL is lgpl'd.
It's deeper then that. nVidia has been on MS's dick^H^H^H^Hpayroll since the early days of 3D acceleration. Back then (way way back) when the best of the best was the Voodoo Graphics. nVidia was entering the market with their Riva128.
.plan file.
Back then, the choice in API's were similar to today's. 3dfx had Glide, it was the most popular. Next up was OpenGL, but it was pretty much just a fringe thing. The only company using it was id with GLQuake. Why? Well John Carmack didn't want to get locked into Glide because it only did Voodoo. The alternative was the then AWFUL Direct3D. DirectX was around versions 2 or 3 and it was bad. John Carmack slammed it in many a
So nVidia is trying to break into this market, but they can't without a good API. Glide isn't an option. Microsoft didn't like this, they didn't control the market leading API. Thus was born a marriage made in hell. There were many nVidia hosted graphics/gaming development confrences, all sponsored by MS.
The X-Box is just MS's way of giving nVidia the nod after all this time. This is why the TNT drivers have been so poorly maintained, and one of the reasons real lowlevel specs for the TNT aren't available to the Open Source world.
I could go on about why I don't like nVidia, mostly due to their marketing practices, but I won't. I will say that you won't find an nVidia card in my machine. Vote with your dollars.
games work all over
not just on bill's piece 'o crap
let's hope this happens.
Although I hope it doesn't go the way of the pet rock and so many of the other many-company initiatives we hear about all of the time. Here are a few items of advice, if they want to supplant the horrible beast tyrant that is DirectX:
1) Don't just go after video/audio! Many game developers use DirectX not for the wonderful (ahem, *sarcasm*) APIs in Direct3D, but for the DirectInput and DirectPlay APIs. That way they know that people will be able to use their new "Force Feedback Webcam Modem Ultra Joystick With Added Internet Buttons" with their three week old game that wasn't coded for it.
2) Update the release often to support new technology, but try to keep the APIs from getting beat to death. This is a fine line to tread of course, but it is one that Micros~1 has partially succeeded at. Most game players don't mind upgrading DirectX, since it can result in better performance in games they already have, and it's on their game CDs anyway. The chief problem with DirectX is that the Direct3D API is *very* ugly. Memo to Micros~1: it's bad enough to version your function calls with "Ex", but please don't append numbers to them! Memo to the media: you all seem to believe that games make kids kill other kids. Is it possible that these kids happened to come across the Direct3D API, read it, and flipped out? Investigate! Maybe we can use some filtering software to keep the kiddies from seeing the Direct3D API on the web.
3) In spite of #1, the only performance anyone cares about is the 3D. Go look for reviews on how many giga blams (gb) per second you can get out of a sound card in EAX vs. A3D. I bet you won't find much. While good APIs are invaluable to developers, they won't use your APIs unless you can at least provide comparable performance to the competitor. I know, the APIs don't theoretically dictate performance, but in reality, the design choices of the API can have a serious effect on the ability to incorporate future performance gains due to the latest hardware techniques.
Anyway, that's all I can think of for right now. Hope it becomes a reality! It'd be great for Linux, but what it will really be best for is the future OS that none of us have even dreamed up yet, that will be able to have support for games sooner due to some standard APIs.