An Open Source Direct3D 8.0 Wrapper for Open GL
Jason writes: "RealTech-VR, creators of the V3X 3D engine, also developed a Direct3D-to-OpenGL wrapper and they have now open sourced their work. They are seeking for more hackers to help porting the wrapper to Linux and MacOS. A lot of the functionality of Direct3D is already ported but it still needs quite some work. Get the scoop at OSNews."
Actually, OSNews has an interview with the guy behind the wrapper, and they even have some screenshots! I hope this wrapper comes to Linux soon!
While this may validate the DirectX API as a standard (like it wasn't already) it may be a useful tool for gaming companies to do an easier port to Linux and OSX...This is good, really good.
Not sure if other parts of DirectX work under Linux/MacOS, but this is certainly a big step for them. If they can get some DirectSound wrapper up and running, Linux/MacOS users would almost be home free to play Windows games. Only a few more things would have to be done.
Job? I don't have time to get a job! Who will sit around and bitch about being broke and unemployed then?
I'm not very much into Wine Development, but it should be possible to integrate parts of this into Wine. If it's possible, then Linux DirectX Gaming Heaven isn't too far away, even without WineX...
Boycot? Blackout? Subscriptions?
I don't care!
I'm a game developer working on the Nel platform. I've only dealt with app level code so far, but from my few perusals of the lower levels of the library and my browsings of simple directx code, it seems as if the complexity would make for pretty slow and buggy engines.
Extra layers obviously have that property in general, but I see it as the wrong place to create that cross compatability. The nevrax team has said in the past that they have designed the system to be able to replace the OpenGL bindings with DirectX or gamecube api (what is gc api like?)
I hope that more developers will build games based on Opensource engines as our company is (in-orbit.net)- it has saved us a lot of money and allowed us to focus on gameplay and uniqueness.
It would be useful to (re)build this on SDL so that they don't have to re-invent the wheel for audio, 2D, etc. (all the non D3D parts). Already SDL allows (hell, requires) you to call OGL directly when you need 3d accel. So by implementing their calls as an SDL layer they would lose nothing and gain a very nice cross-platform layer.
This seems like good news for those of still stuck with 3dfx brand chipsets..
I have always viewed Direct3D as a Really Bad Idea for the Macintosh platform. I mean, that's all we need is to hitch our 3D waggon to Microsoft. We'd always be a version behind, some features would never be implimented, etc. And then when all game manufacturers were using D3D, whoops! Microsoft isn't supporting D3D on the Mac anymore.
Even some game developers I have spoken to seemed pretty positive about the idea. "if only we could do D3D," they said. I think otherwise for the reasons stated above.
And what does this new "wrapper" mean to us? I hope it doesn't mean that Game developers or porting companies don't bother with the OpenGL conversion (when necessary). For if this turns out to be the case I fear the sceneario above may come to pass in the long run. Bottom line is, this scheme seems to still leave 3D on the Macintosh platform vulnerable to the whims of MS.
You like your Macintosh better than me, don't you Dave? Dave? Can you hear me Dave?
is a subset of WINE.
After all, The Sims uses DirectX and works over WINE. (I'm sorry, I can't find a link.)
Is this really such a hot idea? Compatability is cool, but wouldn't developers' time be better spent improving or coding for OpenGL?
The Free desktop that Just Works
I'm not sure if this is a good thing. Of course it might be great to have something like this integrated to Wine to play DirectX Games under Linux, but if the other wrappers (DirectSound/Input/Play etc.) are implemented and run something stable, me as a game developer would think twice about porting this to truly open standards like OpenGL and SDL ("Why don't use the DirectX wrapper?").
So if you see things on the long run, this might be more a damage than a boost to native Linux/OpenSource game-development.
Boycot? Blackout? Subscriptions?
I don't care!
It's allways nice to see a v0.0.2 version of a project that tries to port COM to Unix.
Because _THERE_ is the real challenge. Not the polypusher-code to transfer d3d calls to opengl calls. Besides the lefthand-righthand difference between OGL and D3D ofcourse.
D3D is COM based, OpenGL is plain C. Of course, COM is just a pile of C interfaces, but still, coding D3D is using binary objects with methods and properties. OpenGL is just a global canvas with global functions. I sincerely doubt this will ever succeed for 100%.
Never underestimate the relief of true separation of Religion and State.
DirectX support in Wine is pretty bad, and could definitely use something like this. Of course, OpenGL support in Wine has it's own problems, but this can only be a good thing for porting to non-Windows platforms.
I don't know if it's a good thing for Wine or not, though, because I couldn't find any details of the license. Wine is released under an artistic style license, so if this thing is GPL (or similar) it couldn't get merged directly into Wine.
However, they seem like nice enough people, so hopefully the Wine folks will check into it... Otherwise, we'll end up with a forked, GPL-compatible version of Wine for gaming, which wouldn't be so bad, but would be less than ideal.
pb Reply or e-mail; don't vaguely moderate.
If I could get DirectX games to play on a linux machine I guarantee there are at least 15 people I could have running Debian by the end of the week. It's a good thing.
Let's just be crazy and say this happens and everyone starts throwing their Windows CDs in the trash. One of two things might happen:
1. Developers say "Let's just keep writing for DirectX, the wrappers work." So what? A Microsoft technology sticks around, but if so many people are leaving Windows, MS won't really have the power to enforce changes to DirectX 9 that would make it incompatible, because the devs will ignore them.
2. Developers decide that since everyone has a linux box anyway, why not write in OpenGL since it would probably be more efficient?
Either way, who cares? A working DirectX wrapper would win users over, and that's a good thing.
My other
...to just walk around Redmond with a big "Sue Me" sign on their backs?
. . . this came too late for Loki.
Picking a file at random (dsetup.h) shows
*
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved.
*
* File: dsetup.h
* Content: DirectXSetup, error codes and flags
so, whatever license the DirectX SDK comes under I guess.
STOP buying D3D games
KEEP buying OpenGL games
http://www.kubuntu.org/
good point. It overall reminds of the .NET/Mono situation: It is good to have supported as much as possible under Linux, because that will make the people use it or develop for it (hopefully).
Boycot? Blackout? Subscriptions?
I don't care!
will it help people port to other platforms? doubtful, as they're probably using other ms stuff if they're using DirectX.
will it help people use more advanced features on other platforms? no, since they're just using underlying opengl (and extensions) anyway, which they could do in the first place.
is it more performant? no way - it's another layer of indirection, so it's at least an additional pointer dereference, and extra stuff on the stack.
so i'm left thinking this is a solution in search of a problem. if you want portability, you write to opengl. if you want extensions, you use the _portable_ extension mechanism that opengl already provides. check out nvidia's directx vs opengl extension comparison some time - guess which one has better & more support? hint, it doesn't start with direct..
so, again, why would any sane developer write to this?
(and yes, i read the faq.)
I doubt this project is going to succeed, and, if it does, I doubt even more that it will be able to keep up.
If you REALLY want games for your system of choice, try voting w/ your money
This is the only game left in town. Loki is tits up. Virtually no one is willing to entertain linux ports of games. Recall that idSoftware tried it and it failed. Few bought the linux versions - they couldn't wait and bought the windoze version instead.
Fortunately, idSoftware still releases linux ports of their game binaries for free but they require you to buy the windoze version to work. With the paucity of linux users willing to actually buy software or their unwillingness to wait a month or 3 for a linux port (ala idSoftware), there is ZERO reason or incentive for anyone to support linux games.
We are left with such things as WineX who are focusing wine development specifically on games (checkout their site, there are quite a few games that run well using WineX. Many do not require windoze at all, even for the install).
If you want linux-native games, it's too late but you COULD try to NICELY encourage companies to do what idSoftware now does and release (unsupported) linux binaries for download. That is more likely to work than trying to get anyone to actually release boxed linux games. WineX and perhaps this DX8 translater are the only game in town (pun intended).
In Bushworld, they struggle to keep church and state separate in Iraq as they increasingly merge the two in America.
Now we can use a $5,000 OpenGL card to play any DirectX games
OpenGL is what we call source-portable...anything that's legal openGL will work any openGL environment. So what's platform-specific in this code?
OpenGL does not handle windowing, that is, actually creating a surface on which to draw. OpenGL also does not handle input (DirectInput), audio (DirectSound/DirectMusic), or video (DirectShow). GLUT handles windowing and video to an extent, but AFAIK, standard GLUT can't go full-screen, read joysticks, or read more than one keyboard key at a time.
Will I retire or break 10K?
Sheesh. Has NO ONE heard of WineX? Mandrake Gaming Edition (incorporating WineX from Transgaming?). Take a look at the list of games that work with WineX. It is impressively long - and it already incorporates a lot of DX8 support in it. There is more wine than that bottled at winehq.
Winehq DOES benefit from Transgaming's work, by the way.
In Bushworld, they struggle to keep church and state separate in Iraq as they increasingly merge the two in America.
If it is GPLed or any similarly viral license, the game industry won't touch it with a ten-foot pole.
This could be super useful for the mainline version of WINE ... Direct3D support can be in the main tree now.
If nothing else, this could pressure TransGaming into putting their Direct3D code into the main WINE tree.
Either way, WINE gets Direct3D support. Check off one more box on the list of things needed for full Windows compatibility. (And then buy native Linux apps anyway because it's a good idea.)
Tired of FB/Google censorship? Visit UNCENSORED!
After 7 YEARS (or is it 8, or only 6?) D3D is finally at the performance level of OpenGL(arguably not, seeing as how Q3A STILL outperforms games with similar graphics today).
When D3D was first created by MS, it was an extremely unstable, lousy performing, moving target! And don't even think about upgrading D3D, your current set of games probably won't work! And on top of everything else already wrong with it, it is completely non-portable! Why the fuck did anyone adopt it in the first place?
Sticking feathers up your butt does not make you a chicken - Tyler Durden
This is not some kind of holy grail that everyone is looking for so stop it right now. OpenGL, which is a far better API IMO (and John Carmack thinks so too!) is and has always been the defacto standard portable API to code against. I will admit that recently with DX8, things got more in line with OpenGL and the D3D API is better than it was, but it's still COM based and completely not portable (among other problems). This product is just a wrapper to make COM look like C++ objects and underneath, make OpenGL calls.
So what does this give us? It does NOT give us a WINE implementation of being able to run DirectX apps. Yes, you could integrate the code into WINE but it's meant to wrap functions at the source level, not the executable level. It does give us a wrapper that DirectX code can, for the most part, compile against and product a working Linux/BeOS/Mac exectuable. So for the game developers it might mean their DirectX code will compile on other platforms, but any good game company would have abstracted out their graphics code so it would be API independant. That's what most of them do already and some do offer OpenGL/DirectX selection for rendering. Why they don't produce Linux versions of their apps if they can simply call OpenGL instead isn't clear, but that's their decision.
So are developers going to take DirectX code and compile against this to produce Linux OpenGL executables? I doubt it. Anyone who has coded their graphics sub-system directly against DirectX has probably coded other parts directly against the Windows API and if they haven't ported it to Linux already, they probably won't. Those that already have a clear decoupling of the graphics and the API don't need to and again, if they haven't ported they still won't for whatever reason (most likely support/business cases/etc)
On the flipside, I do applaud what these guys did as it is a big undertaking to wrap a system as big and complex as Direct3D so congrats and perhaps for the garage developer, it might be useful but to those people I say just code in OpenGL in the first place.
liB
What sort of crack are you smoking? Extra compatability is always a good thing. Get the notion that Microsoft has nothing to offer out of your fucking head. At some point, Linux has to grow up beyond the "fight-the-power" angst-filled culture that is quickly alienating it from the corporate market (wonder why you don't see quite so many people pushing Linux anymore? It has a bad rep in corporate America.) If you're in favor of a less functional operating system just because "Microsoft is evil! Fight the man!" you need to grab a bottle of Clue (tm) and take twice daily. Sure, I don't approve of everything Microsoft does, but you don't see me running around like a spoiled 6 year old who is mad because a girl wants to play with his friends.
Karma to burn, baby.
Listen kids this is an early alpha of a D3D wrapper for WinGL, with minor ports of MacGL and others. This isn't DirectX, which handles the input, sound, and even ( directplay is horrible ) networking.
Things to note:
1. D3D is a huge moving target itself
2. This project doesn't support full D3D ( ATI/NV )
3. D3D isn't a 'standard', it's rewritten every release
Keeping these things in mind you won't get your windows games on linux, you won't get a wrapper for D3D for all GL cards, and you won't even get a finished release of this. I don't mean to sound negative, but by the time they have all the NV/ATI extentions supported DX 9.0 and maybe even OpenGL 2.0 will be out with an all new shader systems.
Too bad vertex and pixel shaders won't be used much until another few generations. You have to wait for the target (mainstream) consumers to get at least something like a GF3 or similar first generation consumer card shader support. However, I will say that doesn't mean you won't have some games and applications just requiring you to get a card with support or offer it as a runtime enabled option.
Sticking feathers up your butt does not make you a chicken - Tyler Durden
While it sounds all nice and all, there is very very little that is actually supported in this library. Most of the Direct3D functions are simply stubs, and this library would be absolutely incapable of running anything more complex than the rotating-cube demo they have a screenshot for. They are about where we were 18-20 months ago, and this is certainly not keeping me up at nights.
-Gav
--
Gavriel State
CEO & CTO
TransGaming Technologies Inc.
gav@transgaming.com
Learn to read what the post is about and what the product is. This is not from Microsoft not will it screw up Linux in any way. It's a bunch of C++ objects that look like Direct3D, but really OpenGL underneath. It's not MS APIs in the least since there is not COM component there and MS doesn't control anything. Get a life.
liB
Locutus has a point. If Linux ever gets to the point of depending on MS for anything, MS has a means of control. If graphics card makers decide not to provide X drivers or provide the information needed for someone else to do so, with the rationalization "Why bother--they can just use the OpenGL/DirectX compatibility layer," MS can start munging the API to put Linux in a game of perpetual catchup--much the way they did with win32s.dll to screw over OS/2. Linux doesn't need that kind of grief.
"Destroy science and religion. Science would re-emerge exactly the same; but not religion." - Penn Jillette, paraphrased
Sticking feathers up your butt does not make you a chicken - Tyler Durden
In that hypothetical situation (let me stress hypothetical, because the other people who replied to me seemed to miss that part), you'd probably see one of two things:
1) Microsoft gives up and decides to go cross platform, at which point they continue maintaining DirectX. This still causes problems for free/open software types, because they'd still have to play catch up, but at least it gives people a choice of OS.
2) Devs realize that there are plenty of people who aren't on Windows so they start using an already established cross platform kid (like SDL), or they just do what Id does and roll their own.
Again, it's not that I actually think this is going to happen tomorrow, or at all. All I'm really saying is that a DirectX wrapper is a good thing.
My other
Give me a break! This is NOT a troll. I am dead-ass serious. It is also a FACT, inescapable, that NO linux game company (an now porting company) has suceeded. It is disheartening but it is VERY true nontheless.
You can beg, call, petition all you want for companies to write native linux games but it wont work and cannot work (for the near future certainly). There is NO money in it. Ask Loki and John Carmack, fer Cthulhu's sake! You MIGHT get lucky with a couple vendors if you ask nicely for free, unsupported linux binaries for some games ala idSoftware, but anything else? Yeah right, been there, tried that, failed IN EVERY CASE.
Troll my ass, just the ugly facts (AND I WANT/BOUGHT LINUX GAMES IDIOT MODERATOR!).
In Bushworld, they struggle to keep church and state separate in Iraq as they increasingly merge the two in America.
wow, I thought that Direct3D(tm) was a bunch of API's for programming on the Microsoft Windows platform. If it "looks" like Direct3D then it's just following Microsofts published API's.
I agree that in the short term this might look like a good thing but look at history. They push/change/break their own API's to keep the competition one step behind.
If you start "talking" the Microsoft Windows language (API's) on Linux then your just stepping in line and following the piper. And he's leading you over the cliff.
By the way, I NEVER said this was FROM MICROSOFT. They do control the API's this is being built to.
Do some research and see what Microsoft does.
LoB
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
Great, ONE person sees what I'm getting at. Yeah, JeJones.
;)
Those other YAHOO's must be young punks who have no recollection of the phrase, "DOS ain't done til Lotus don't run". Isn't that flying on a flag in Redmond somewhere(joke).
LoB
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
Yes, extra compatability is nice.. Microsoft has some pretty cool things to offer. However they don't want others using those cool things. As for Linux being "alienated" from the corporate market that has nothing to do with compability. It has everything to do with service and support, if a Linux Company (ie: RedHat) offered the quality and support of say another Unix (ie: Sun Microsystems) you'd see alot more Linux deployed. RedHat should be looking into offering kickass support, maybe they should of even bailed or helped VA keep it's hardware business afloat. However the head honchos don't see it this way and thats why even though RedHat is staying afloat now it needs to make a decisive move into a market, while still concentrating on things like embedded support. Without a decisive move Redhat won't exist in it's current form for long. If VA could of cut a deal with Redhat and offered the support for hardware while Redhat offered support for software, VA Linux would still be around and Redhat + VA would be cutting into Sun Microsystems. Instead VA chose to create their own Linux distribution instead of buddying up with a "brand" (In advertising BRAND is everything) This is easier said than done however and unfortunately for VA it's too late, and soon to will Redhat go the way of the dinosaur without a decisive and substansial move to support one of the many things they currently DO support. In other words, i'm an admin and I have alot of machines to look over, I want to use Linux in the corporate enviroment but can't because there is no vendor to truly support my hardware and then Redhat might not support my machine based on what I buy if I piece it together.. So Linux stays out except for some tiny machines. Sun Microsystems supports my hardware and if I have a problem with Solaris they will support that as well.. We pay a lumpsum of cash for the support even if we don't need any. When we do need it, it's prompt and efficient; Infact it's damn near immediate. The above is what keeps Linux out of the corporate enviroment.
Which version(s) of WineX have you tried? There has recently been the 1.0-2 (which shipped with Gaming Mandrake, and now there is 1.0-3 beta-ish/tester.
In Bushworld, they struggle to keep church and state separate in Iraq as they increasingly merge the two in America.
It doesn't even have to be better. It just has to be close enough that the benefits of using Linux will outweigh the benefits of using Windows.
There hasn't been a Linux game company. There have only been Linux game porters. If you already have a Windows machine to run your games, why on earth would you buy Linux ports after you already bought the windows versions?
If there was a true Linux gaming company, I think we'd see different results. We'll see what happens when TuxRacer comes out.
Engineering and the Ultimate
Heh...TuxRacer?! Yes, lets have tuxracer vs Unreal II, Call of Cthulhu, Doom III (ok, Doom III being an idSoftware child will end up with an unsupprted linux binary for download), WarCraft III, and the like.
TuxRacer may be cute but it is simply not comparable to the likes of games coming or available for doze. I understand that a subpop actually likes senseless arcade games ala centipede, etc, but come on. I can only hope that TuxRacer acts as merely a springboard for real cool, technically complex games like those mentioned above.
I would argue that id was not just a porting operation when they dipped into the linux game market. They were developing both versions, but the linux version, by necessity, having a lower priority due to the market size, took a few months longer. This was precisely the reason it (linux games) came stillborn! Linux users were NOT willing to wait a measly 2 months for a native version. They just HAD to have it NOW and, of course, once you have the game for doze, why the hell would you pay again to get the native linux version? Linux gamers are too impatient and/or unwilling to pay for games. I love linux and the whole opensource thing but it is NOT the answer to everything and you MUST be willing to pay for good games if you want them to continue coming. Too often the overall linux crowd seems to get indignant that they can't just download a cool game for free (as if the Constitution or Bill of Rights - or equivalent - assures this should be so).
IF linux can gain on the desktop to an appreciable extent (and it must be able to AT LEAST match the Apple market share) THEN commercial games will start to trickle in. Look at Apple! They do only have a small piece of the desktop pie and naturally, games are fewer. You expect equal to windoze treatment for linux even though it's desktop share is a fraction of Apple's? Pure wishful thinking...and not logical or reasonable.
Gain more of a hold on the desktop and ask companies to provide linux binaries ala idSoftware. If they try to release linux boxed games, they will fail financially (see idSoftware and ask Carmack). It, of course, would be GREAT to get boxed games with Mac, Doze, and Linux binaries in the same package, on the same CD but even that is asking a lot given the desktop linux penetration to date and the examples of Loki, id, and a couple other noble attempts. I cannot hold out hope for a simplistic arcade game (TuxRacer) to somehow be the savior of linux gaming.
In Bushworld, they struggle to keep church and state separate in Iraq as they increasingly merge the two in America.