• Why Do Game Devs Choose DirectX over OpenGL?
    84 replies, posted
Why is it that game developers choose a proprietary and platform exclusive API like DirectX over an open source and multiplatform API like OpenGL? Both OpenGL and modern versions of DirectX share a lot of the same features, so why is it such a rarity that you see OpenGL PC Games? Does DX perform better? Is it really better than OpenGL? What sort of incentive is there to use DX over OpenGL?
It's easier and more well-documented.
years ago microsoft scared devs into thinking they were dropping OGL support and most of them just stuck to DirectX since they didn't want to switch twice
OpenGL is open source however it's so patchy that it's a bitch to work with even though it's one of the few graphics standards that's cross-compatible with almost every architecture out there. It's also old as fuck. Last I heard OGL 4.0 had not been released. Edit: Oh, it has now. We are now at OpenGL version 4.1.
Somewhat irrelevant, but the Overgrowth devs wrote [url=http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX]two[/url] [url=http://blog.wolfire.com/2010/01/DirectX-vs-OpenGL-revisited]articles[/url] about OpenGL versus DirectX. They are some pretty interesting reads.
Herd mentality. Devs learn D3D, but not OpenGL. Devs recommend D3D to other devs. Devs write tutorials for newbies. Newbies learn D3D, then become devs and the process repeats. They're really about the same in terms of capabilities. The only real advantage one has over the other is that OpenGL supports multiple operating systems and platforms. [editline]03:29AM[/editline] [QUOTE=MIPS;24972058]OpenGL is open source however it's so patchy that it's a bitch to work with even though it's one of the few graphics standards that's cross-compatible with almost every architecture out there. It's also old as fuck. Last I heard OGL 4.0 had not been released. Edit: Oh, it has now. We are now at OpenGL version 4.1.[/QUOTE] You are wrong on every point. "Open source" does not apply here, it would be more accurate to say that OpenGL is an "open [i]standard[/i]". It [i]was[/i] difficult to work with in the past because they kept tacking extensions onto the old fixed-function pipeline. However, with recent updates they've done away with the fixed-function stuff entirely and everything fits into one very simple shader-driven model. It was enabled in OpenGL 2.0, and enforced in OpenGL 3.0, so it's been around a long while. It is not "old", and it has never been "old". They've been putting out updates pretty regularly.
[img]http://images3.wikia.nocookie.net/__cb20060405024316/uncyclopedia/images/c/cf/Developers.gif[/img] Developers, developers, developers, developers, developers, developers, developers, developers.... Word on the street is OpenGL is a mess, and DirectX is a well designed comprehensive and thought out API with loads of documentation and tools to make things very easy on the developer side. That is Microsoft's weapon of choice, persuade the developers with ease of use and excellent tools, the users will come. They aren't the largest software company in the world for no reason. [editline]12:44PM[/editline] Plus they already know DX most of them and there's no real market in Linux or Mac so it doesn't have a lot of risk attached to limit yourself to Windows. [editline]12:47PM[/editline] DX is marketable too, you can sell graphics cards and games on the latest versionb of DX, but OGL is just thrown in as an afterthought not a single soul in the whole wide world gives a fucking shit about.
[QUOTE=BmB;24976328] [B] no real market in Linux or Mac but OGL is just thrown in as an afterthought not a single soul in the whole wide world gives a fucking shit about[/B].[/QUOTE] You are very quick to dismiss an alternative to DirectX. it is unwise. The main reason DX is so widespread is that the OS it is used on is widespread. no windows, no DirectX. OpenGL however can be adapted to any sort of modern OS, many devs use OpenGL to make sure their games reach a wide audience of gamers, one of them is valve. OpenGL is also used for multiple professional applications as opposed to DX which is mostly used in games, At one point professional graphics cards did not support DX at all.Anyways for game devs it boils down to a trade-off between simplicity or a wider audience. Companies that monopolize an area are sure to disappoint and stagnate in the advancement of their product.
What I love with Direct3D/X is stuff like "Hey guys, in DX11 you'll have tesselation isn't this awesome" when OpenGL had tesselation since 2007. OpenGL is better than DirectX in nearly every sense. DX is very well docuented though.
[QUOTE=BmB;24976328]Word on the street is OpenGL is a mess[/QUOTE] i.e. You haven't used it and you're just spouting rhetoric. Come back when you've got something to contribute to the thread.
DX is better supported.
Xbox 360?
[QUOTE=DaDillsta;24980299]Xbox 360?[/QUOTE] But all the other platforms and consoles use some form of OpenGL.
...and so, the bandwagon drops its brakes and begins to roll.
[QUOTE=ROBO_DONUT;24980387]But all the other platforms and consoles use some form of OpenGL.[/QUOTE] And those are usually ported to as an afterthought maybe even by a third party because Microsoft makes it attractive and cost effective to develop for the 360. [editline]06:53PM[/editline] [QUOTE=PunchedInFac;24976623]The main reason DX is so widespread is that the OS it is used on is widespread. no windows, no DirectX.[/QUOTE] It was my impression that DirectX exactly was one of the reasons Windows got big in the first place. You got something backwards there. [editline]06:54PM[/editline] [QUOTE=pikzen;24977363]What I love with Direct3D/X is stuff like "Hey guys, in DX11 you'll have tesselation isn't this awesome" when OpenGL had tesselation since 2007.[/QUOTE] Yeah, as an ATI specific extension right? How useful.
[QUOTE=BmB;24980587] It was my impression that DirectX exactly was one of the reasons Windows got big in the first place. You got something backwards there. .[/QUOTE] It got 'big' back when it was called windows 3.1x, DX 1.0 came with windows 95.
[QUOTE=pikzen;24977363]What I love with Direct3D/X is stuff like "Hey guys, in DX11 you'll have tesselation isn't this awesome" when OpenGL had tesselation since 2007.[/QUOTE] Why do people keep saying this shit? It's because of that article by the Overgrowth guys, isn't it? What Microsoft did in DX11 is that they standardised tesselation and made it easier to implement, it doesn't mean it wasn't possible before via a shader program. With it being a standard now, the DX11 GPUs have dedicated tesselator units. IMO, DX11 will do a good job at popularising the tesselation, without it very few people would use it.
[QUOTE=PunchedInFac;24981120]It got 'big' back when it was called windows 3.1x, DX 1.0 came with windows 95.[/QUOTE] No, Windows 95 was definitely a big explosion too. Some of that I am told owing to DirectX making game development on Windows, well... incomparably much better than anything else around at the time.
[QUOTE=BmB;24981287]No, Windows 95 was definitely a big explosion too. Some of that I am told owing to DirectX making game development on Windows, well... incomparably much better than anything else around at the time.[/QUOTE] From what I've heard, the original D3D was a horrible mess. John Carmack was very outspoken at the time about his dislike of D3D. D3D didn't become simple and usable until more recently.
[QUOTE=pebkac;24981165]Why do people keep saying this shit? It's because of that article by the Overgrowth guys, isn't it? What Microsoft did in DX11 is that they standardised tesselation and made it easier to implement, it doesn't mean it wasn't possible before via a shader program. With it being a standard now, the DX11 GPUs have dedicated tesselator units. IMO, DX11 will do a good job at popularising the tesselation, without it very few people would use it.[/QUOTE] Tesselation was just an example amongst many others. DX11 GPUs have dedicated units ? Woah, if OpenGl was the standard, OGL GPUs wouldn't have them, for sure.
[QUOTE=ROBO_DONUT;24981375]From what I've heard, the original D3D was a horrible mess. John Carmack was very outspoken at the time about his dislike of D3D. D3D didn't become simple and usable until more recently.[/QUOTE] Yeah, a big part of it apparently was the integration of everything in a single API, sound, graphics, networking, input etc.
[QUOTE=pikzen;24977363]What I love with Direct3D/X is stuff like "Hey guys, in DX11 you'll have tesselation isn't this awesome" when OpenGL had tesselation since 2007. OpenGL is better than DirectX in nearly every sense. DX is very well docuented though.[/QUOTE] it was in the spec but hardware did not support it until DX11 did. just because it's in the spec does not mean anything. [editline]02:38PM[/editline] [QUOTE=ROBO_DONUT;24981375]From what I've heard, the original D3D was a horrible mess. John Carmack was very outspoken at the time about his dislike of D3D. D3D didn't become simple and usable until more recently.[/QUOTE] it was. it lacked useful documentation and video card makers didn't want to cooperate. the whole point of DirectX was to standardize the video card industry to use one standard. [QUOTE=BmB;24981464]Yeah, a big part of it apparently was the integration of everything in a single API, sound, graphics, networking, input etc.[/QUOTE] MS basically wanted to have it so that consumers could easily decide if a card would work with game X based on if it supported version Y of DirectX.
DirectX is apparently easier than Open GL.
DirectX is slightly more optimized than OpenGL on Windows. Not much, maybe a 5% framerate reduction at most. Although I personally find DirectX is HARDER to use than OpenGL, that may just be me. Really, I think it's just habit. iD has been using OpenGL since Quake, I think, and they're still using it for Rage. Meanwhile, Valve has used DirectX since Half-Life, and they still use it. It's just what the programmers prefer, I guess.
[QUOTE=gman003-main;24982513]DirectX is slightly more optimized than OpenGL on Windows. Not much, maybe a 5% framerate reduction at most. Although I personally find DirectX is HARDER to use than OpenGL, that may just be me. Really, I think it's just habit. iD has been using OpenGL since Quake, I think, and they're still using it for Rage. Meanwhile, Valve has used DirectX since Half-Life, and they still use it. It's just what the programmers prefer, I guess.[/QUOTE] I remember I couldn't play HL with D3D, I had to always use OGL. D3D would lag like hell for me.
[QUOTE=Panda X;24982655]I remember I couldn't play HL with D3D, I had to always use OGL. D3D would lag like hell for me.[/QUOTE] Yeah, I have no idea why Valve felt the need to write a DirectX renderer when the engine they licensed had a perfectly good OpenGL renderer. I also had some problems with their DirectX renderer, namely that the texture filtering was complete crap. I swear, it was nearest-pixel. Blurry as fuck. Problem was that the OpenGL renderer lagged like fuck whenever I went underwater (Google said that it had something to do with the sound system (???) but I never managed to fix it), so I would literally switch renderers whenever there was a water section.
[B]By supporting OpenGL you reach a much larger desktop gaming audience, avoid getting locked into proprietary standards, and promote healthy API competition.[/B]
[QUOTE=Jookia;24983113][B] [highlight]By supporting OpenGL you reach a much larger desktop gaming audience, avoid getting locked into proprietary standards, and promote healthy API competition.[/highlight] [/B][/QUOTE] highlighted for truth.
[QUOTE=Jookia;24983113][B]By supporting OpenGL you reach a much larger desktop gaming audience, avoid getting locked into proprietary standards, and promote healthy API competition.[/B][/QUOTE] But all GPU's supports both DirectX and OpenGL. Also, loads of OpenGL bandwaggoning in this thread. [editline]08:19PM[/editline] [QUOTE=pikzen;24977363]What I love with Direct3D/X is stuff like "Hey guys, in DX11 you'll have tesselation isn't this awesome" when OpenGL had tesselation since 2007. OpenGL is better than DirectX in nearly every sense. DX is very well docuented though.[/QUOTE] tesselation is what in laymens terms?
[QUOTE=Fatfatfatty;24984363]But all GPU's supports both DirectX and OpenGL. Also, loads of OpenGL bandwaggoning in this thread. [editline]08:19PM[/editline] tesselation is what in laymens terms?[/QUOTE] Firstly you really are dense. Proprietary standards as in the DirectX API, not GPUs. Windows is the only thing allowed to run it. Tessellation is making textures look realistic by adding depth, but unlike normal maps or parallax mapping, it actually creates polygons where the depth needs to be instead of emulating depth. If I remember it correctly that is.
Sorry, you need to Log In to post a reply to this thread.