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!
This would make a worthwhile hedge against TransGaming going tits up. Maybe this'll result in some real games for Linux for a change ....
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?
What license is this under, dare I ask.
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.
to help porting the wrapper to Linux and MacOS.
It's interesting why the wrapper might need porting since 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?
Let's see now. OSNews posts news items, original news content, and interviews, and has a commenting system.
Slashdot posts news articles from other sources, often late, often without any sort of fact checking, and often multiple times, and has a commenting system.
Instead of commenting on this article at OSNews, where readers are more likely to be knowledgable, slashdot readers will comment on it here, including the obligatory trolling, crapflooding, windows bashing, karma kissing, and displays of ignorance.
Interesting.
... one step closer to no dual boot for Counter-Strike and Starcraft.
This seems like good news for those of still stuck with 3dfx brand chipsets..
As a long time Linux user, I strenuously object to this direction for my preferred OS. My Linux box is not a toy, and it shouldn't be used as such!
Linux has succeeded so well because of (until recently) the complete lack of frivolous chrome that bogged down other once-noble systems like DOS. I grudgingly accepted a simple window manager as an occassionally useful tool, but knew full well that some people would get totally carried away with it and force these resource-hog abominations on us like KDE, Gnome and TWM. Serious computing is done with the command line, OK?
It's only gone downhill since that first X server started working with Linux. I've never liked the idea of Wine to begin with. I mean, who the hell wants to run some windoze app on something like Linux? What the hell is the point in that? You know why people do it? Because they're too stupid to learn Emacs or Vi and they need they're precious Word!
Look, people, Linux is a serious tool for people doing serious work. If you can't figure out how to use it then stay the hell away from it and stop trying to corrupt it with your damn eye candy!
I can't believe people have polluted Linux with some Microso~ game API. The Linux we have all come to know and love is dying, and I think it is an absolute shame.
~~~
I'm beginning to suspect that along with the .NET/Mono fuckup this is yet another Micro$oft's dirty embrace-and-extend covert campaign. Get them on board and then... screw them royally!
The owls are not what they seem
of course by this time, the whole thing will be a flamewar back and forth, and this post will be part of it.
"And we have seen and do testify that the Father sent the Son to be the Savior of the World"
1 John 4:14
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?
Doesn't Wine already have a DirectX native library that can be used without Wine?
is a subset of WINE.
After all, The Sims uses DirectX and works over WINE. (I'm sorry, I can't find a link.)
blah blah shut the fuck up
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!
There is still the rest of DirectX (DirectPlay, DirectInput, DirectDraw (I guess not really anymore), DirectSound, etc) to wrap. I'm not sure how this will benifit GNU/Linux, especially with DirectX 9 just around the corner.
I guess it could be a key part of WINE, but what is really needed is game to be recompiled for GNU/Linux.
...somewhere John Carmack is laughing.
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.
I see the anger management course is not working!!!
then I am all for it. So in that sense, it is a good idea. Too bad they're gonna get their pants sued off by M$, though.
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.
Or, this gets people playing games on Linux instead of dual booting... these gamers demand better performance and the game companies realize they need to lose the wrapper to improve performance.
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.
unfortunately, goatse.cx has died.
its not bad to be gay. post some insightful comments with a gay sig, and you'll meet interesting people with the same interests as you who will possibly be suitable romantically.
Ummm...GLDirect by SciTech actually emulates OpenGL using the DirectX drivers, while this seems to be the other way round. So his comment that "...a solution already exists" seems untrue to me.
Or am I missing something here?
STOP buying D3D games
KEEP buying OpenGL games
http://www.kubuntu.org/
... but isn't playing catch-up the wrong game to play?
I understand how difficult going up against Microsoft is, but it seems to me like we need to get to the point where it is changing minds of developers, rather than simply adapting to whatever Microsoft puts out. By making wrappers and such for Microsoft APIs, it'll only encourage developers to become more dependent on Microsoft's technology, because they won't see a need to develop for anything else.
As a programmer myself, it's always easier to use what you already know, than to pick up something new. I love learning new things, but most corporate environments are on a tight schedule as it is. There's no time for learning something new, so we rely on what we already know.
Wouldn't it be possible to write a code converter of some sort? To help translate Direct3D calls to OpenGL? It wouldn't really need to be a complete conversion, just enough to make it easier for developers to natively support OpenGL...
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.)
Maybe Transgaming could use this in a future release of WineX.... Thoughts?
that people can now play windows games on a non-windows system? or does it just make the porting simpler?
In the newer versions Microsoft implemented OpenGL as a wrapper around DirectX.
While these guys did the opposite - implemented DirectX as a wrapper on OpenGL.
This is possibly the most important thing that alternative OSes needed for a long, long time, in order to provide games developers tools to allow them to easilly port their work to non-MS platforms.
Frankly I don't care if the future is OpenGL or if it DirectX. All I care for is that some day, everyone will be able to develop applications using a set of unified standards (ANSI, DirectX here) and have code-source compatibility between platforms.
In that case, a simple recompilation to the target platforms means a wider audience, more sales and more happy gamers. Kudos to the team bringing us DirectX on Linux!!!
Are you kidding... why port the best and only stable 3D graphics (and sound) interface on the planet that home users can rely on to work and coders can draw on for standards to crappy and crashy OpenGL?
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
Scary, isn't it?
[NOTE: If you don't get the joke, don't reply to this thread]
Well, that's the thing I'm actually worried about. I've already made an ass out of myself many times so that's something I can cope with. :) Getting arrested and deported on some fucking ridiculous pot-smoking charge would be a bummer.
Anyway, the best place to smoke dope is with yer buddies
Yeah, I know. Don't worry. I don't like to smoke alone -- just isn't worth it. Besides, I have a feeling that the uni I'm going to has its share of happy pot smoking people I can mingle with. ;-)
The owls are not what they seem
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?
This is just how Microsoft can screw up Linux. Sure, it sounds like a good thing but MS controls the API's, the MS API's and following them will only mean eventual control. That goes for the .NET stuff that the Gnome people are doing. DUMB, VERY DUMB.
IMHO, the only way Microsoft could screw with Linux is to have developers develope WIN32 APIs and have them run on Linux and this is just helping them do this. Only if Microsoft loses control of the desktop and with it the dominant application API's can or should this kind of thing be looked at as an advantage.
YOU WILL BE ASSIMULATED. really.
LoB
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
Seems to me that this is not very important. It will have exactly zero effect on my life and work. None. Zilch. I suspect that this "news" is equally irrelevant to most Slashdot readers.
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!
For once, I'm glad that it is; that should be compatible with Wine. :)
pb Reply or e-mail; don't vaguely moderate.
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
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.
the only reason theyre doing it is to spite microsoft, and theyre stifling the advancement of technology in the process... so whos really the evil entity here
--anonymous troll
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
If I'm a gamer and I can get a Linux level of stability without sacrificing the latest graphics goodies, I'm going to switch to Linux real quick. No more crashes... :)
Every Linux fanactic claims that Linux is faster and more stable than Windows. Here's a chance to prove it. Get the Linux implementation to be better than the Windows "reference" implementation, and Microsoft will lose control of the standards. Why use buggy MS DirectX 17 when you can use stable Linux DirectX 10.2, get practically the same features, better performance, and not have to worry about MS changing the standard half-way through your code?
A witty [sig] proves nothing. --Voltaire
"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."
I disagree. First, the migration you think about is going to be small, if not neglible. Sure, they can run the games in Linux, but they won't run as fast as in windows. Second, they deserve to be screwed over by microsoft if they think writing code for a microsoft API will be portable, especially when portable and open alternatives are availible (SDL/OpenGL).
MS won't really have the power to enforce changes to DirectX 9 that would make it incompatible, because the devs will ignore them
So who WILL add new features to expose the functionality of the next generation of video cards? Or will our APIs be so calcified that no hardware manufacturer can reasonably add anything new?
New revisions of libraries like DirectX are neccessary, so long as there are fundamental changes in what various pieces of hardware are doing.
Trees can't go dancing
So do them a big favor
Pretend dancing stinks!
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
So when are they going to release a Windows version of this Direct3D to OpenGL Wrapper?
--
Moderation Totals: Redundant=5, Groan=13, Funny=1, Flamebait=5, Troll=2, Bad Joke=28, Underrated=3, Overrated=7, Total=64
This is nice but wouldn't the other way around be better? OpenGL is simpler to learn and use, so for me an OpenGL interface on top of DirectX is a much more valuable tool. Are there any of these around (open sourced of course)?
Lisa: Just burn that plant right now and end this madness.
Homer: I wish I could make a difference, Lisa, but I'm just one man.
Lisa: [growls]
Homer: I agree, but how?
-- "E-I-E-I-(Annoyed Grunt)"
DeadBugs: STOP buying D3D games
DeadBugs: KEEP buying OpenGL games
You: Impossible.
You have a funny definition of "impossible". How is it impossible to buy one thing and not buy another? Is it somehow "impossible" to eat at Wendy's and at the same time not eat at McDonald's?
There is no way you are going to tell Joe sixpack game buyer to not buy the game he's been waiting for just because it wasn't written for OpenGL. Hey here's a fucking idea: instead of trying to vote with "Joe sixpack"s money, why don't you try voting with your own money? It's generally referred to "being honest", also variantly called "not stealing" and "minding one's own fucking business".
Stop thinking that EVERYONE has to agree with you in order for you to take a stand. STOP BUYING D3D GAMES! It's that simple! You won't change the world, but you don't have to. Did you notice that the phrase "stop buying D3D games" in fact does not reference "Joe sixpack" at all? Amazing!
Anything that will bring games to Linux with 100% compiled and running native code is a good thing (tm). I'm not a WINE hater, but emulators (regardless of what they claim to be) just let us say, "Look, we can run your apps almost as well as you, but with 10 times the headaches!" Natively Compiled Code == Good Thing (tm)
The nice thing about DX8 is that it's used by the XBox (Not that I'm a fan of the console). This should make building wrapper libraries easier, because it will mean a stable M$ API (for once). Unlike say, WINE, who's slogan should be, "Chasing Windmills for Over 8 Years"
That's what killed it. Direct3D worked on several early generations of hardware that could not support OpenGL. Furthermore, Direct3D simply worked better and offered a lot of performance gains, including being able to write directly to the frame buffer, querying native pixelformats, application managed video-memory, task-switching, vertical-refresh synch... the list goes on.
This is possibly the most important thing that alternative OSes needed for a long, long time, in order to provide games developers tools to allow them to easilly port their work to non-MS platforms.
Frankly I don't care if the future is OpenGL or if it DirectX. All I care for is that some day, everyone will be able to develop applications using a set of unified standards (ANSI, DirectX here) and have code-source compatibility between platforms.
In that case, a simple recompilation to the target platforms means a wider audience, more sales and more happy gamers. Kudos to the team bringing us DirectX on Linux!!!
GLUT *can* handle fullscreen, in GAMEMODE.
All the libraries I could find last time I tried developing in GLUT gave me the error: Game mode not implemented.
Will I retire or break 10K?