Why You Should Use OpenGL and Not DirectX 515
stickyboot writes "The independent games developer Wolfire describes why they decided to use OpenGL instead of DirectX. The article mainly discusses the marketing strategies behind DirectX and how the API became so popular. It also goes over why a developer would choose OpenGL over DirectX and what this decision means for the gamer. 'Back in 1997, the situation was similar to how it is now. Microsoft was running a massive marketing campaign for Direct3D, and soon everyone "just knew" that it was faster and better than OpenGL. This started to change when Chris Hecker published his open letter denouncing DirectX. Soon after that, John Carmack posted his famous OpenGL rant, and put his money where his mouth was by implementing all of Id Software's games in OpenGL, proving once and for all that DirectX was unnecessary for high-end 3D gaming. This lesson appears to have been forgotten over the last few years. Most game developers have fallen under the spell of DirectX marketing, or into the whirlpool of vicious cycles and network advantages.'"
OpenGL and the rant about marketing (Score:5, Insightful)
I am still kind of surprised that even after so many years, the open source communitys answer to marketing is only ranting about it.
Providing libraries, API's or platforms is NOT only about technical platform. *Nothing* in the world works like that. You must "market" it to companies, create a community around it with the right people and actually provide support and good tools to the developers. You can rant all you want about the technical sides of things, but if you do not understand this and completely ignore it you're only hurting yourself.
I have worked with both DirectX and OpenGL. In my opinion, OpenGL is loosing because:
1) DirectX has a comprehensive, well-documented references and documentation
2) DirectX provides a lot more than just 3D drawing - sounds, networking, fonts, input processing, and it used to have an API for 2D graphics before (relevant because the story is about why DirectX gained marketshare)
3) The DirectX libraries had more support in whatever coding language you wanted to use. You can argue this with the point that of course they had because Microsoft is a company so they can do it, but that doesn't change it. In fact, it would show that propretiery formats and libraries are better than open
4) Later it was possible to easily develop XBOX 360 games with DirectX and the tools were made good and easy to pick up. You may say it's irrelevant, that MS is using another market to improve their position, but it is not irrelevant. And unless OpenGL supporters start to work at it too, they're going to lose. Give more support and more value for the work!
5) DirectX was easy to pick up, and everyone supported it. If it's easy to pick up for beginners, they'll learn it and continue using it later as a professional (the same thing as why Adobe doesn't really care about home users Photoshop piracy)
It is NOT only about providing the technical platform. It is also about providing all the things that company it - some may call that "marketing", but it's mostly about giving support to those who use the platform, and giving more value for their time, work and money.
Re:OpenGL and the rant about marketing (Score:5, Funny)
So if they tighten things up they'll be better able to compete?
Re: (Score:3, Interesting)
If Windows didn't have these technologies used to prop it up we'd have far less Windows in the world, which, in many ways would be the greatest thing for the consumer and the industry (as far as innovation and progress goes). Without DirectX propping up the monopoly we'd have other technologies and far more companies that would provide innovative competition, thus providing more, and often better, products.
We know that when you have a large number of competitors you get better products. The eReaders are a
Re:OpenGL and the rant about marketing (Score:5, Insightful)
Without DirectX propping up the monopoly we'd have other technologies and far more companies that would provide innovative competition, thus providing more, and often better, products.
Then instead of ranting about DirectX, why don't you put your money where your mouth is and make a competitor for DirectX?
I'm sick of open source buck-passing. Sure, it's terrible that Microsoft has such a commanding monopoly in so many areas, but on the other hand, why are you complaining about it instead of actually working to make it go away?
For every one of those bulletpoints the parent mentioned, there's nothing, nothing stopping you from providing a similar level of support for OpenGL.
DirectX has networking/input/graphics drivers? Then write those and attach them to OpenGL. DirectX has better documentation/examples? Then create them for your OpenGL solution! DirectX can be ported to Xbox? Fine; then get off your bony butt and go talk to Sony and Nintendo about enabling trivial porting of OpenGL apps.
Sorry, I just get sick of the whining by anti-Microsoft goons who don't have the cojones to actually compete with Microsoft-- stop passing the buck and do it already.
Re:OpenGL and the rant about marketing (Score:4, Informative)
OpenGL is a graphics-specific API (like Direct3D). If you want sound, network, etc. support, try SDL or Qt.
Re:OpenGL and the rant about marketing (Score:5, Insightful)
make a competitor for DirectX?
DirectX is a combination of several not-entirely-related technologies. The graphics component is Direct3D, and the stupidly obvious competitor is OpenGL.
why are you complaining about it instead of actually working to make it go away?
Because OpenGL is already better, as TFA explains. The problem is purely a marketing one, and requires a marketing response. The marketing response sounds like "complaining", but is actually encouraging people to think and explore their options.
DirectX has networking/input/graphics drivers? Then write those and attach them to OpenGL.
The result is called SDL. Again, these have already been done, they just aren't part of one giant marketing package, largely because they don't necessarily have anything to do with each other. For example, OpenGL powers my compositing window manager at the moment, but it really doesn't need to make any sound.
DirectX has better documentation/examples? Then create them for your OpenGL solution!
Fair enough.
DirectX can be ported to Xbox? Fine; then get off your bony butt and go talk to Sony and Nintendo about enabling trivial porting of OpenGL apps.
What makes you think the author of TFA hasn't done so? Indeed, what makes you think they would listen to the GP at all?
But FYI, PS3 and Wii both include a form of OpenGL, though there are differences.
Sorry, I just get sick of the whining by anti-Microsoft goons who don't have the cojones to actually compete with Microsoft-- stop passing the buck and do it already.
I understand what you're saying, but if it was that easy, we'd have done it already.
Whining is not mutually exclusive with doing something about it.
Re:OpenGL and the rant about marketing (Score:4, Insightful)
Because OpenGL is already better, as TFA explains.
Except that OpenGL is NOT better. It may have support for vendor's random GPU features, but technical features alone do not make for a better product.
From the Article:
On Windows, it's a fact that the DirectX graphics drivers are better maintained than the OpenGL graphics drivers.
Similarly, it's a fact that more gaming graphics programmers know how to use DirectX than OpenGL, so it's cheaper (less training required) to make a game using DirectX than OpenGL.
Microsoft has worked hard on DirectX 10 and 11, and they're now about as fast as OpenGL, and support almost as many features.
I prefer DirectX because it has better development support, a better development environment, an integrated complete game package, and provides nearly the same speed and functionality as OpenGL. Yes, I've experimented with SDL and did not like it.
The Article also gets one thing wrong:
However, there's one big problem: they don't work on Windows XP!
This is inccorect. DirectX 10 does work on Windows XP, it is just not officially supported by Microsoft.
Re: (Score:3, Insightful)
technical features alone do not make for a better product.
That's true, and I'd suggest you read an article (by the same developer) about why you should support Mac, and even Linux. Lugaru arguably wouldn't be the success it is without its Linux fanbase.
So the only real answer there is to either use GL, or wrap it all in enough abstraction that you can actually port it. TFA makes that point, too -- that in any decent engine, you're already abstracting it to the point where it really doesn't matter what the low-level API looks like, any more than I care what ATA cal
Re: (Score:3, Informative)
Except that OpenGL is NOT better. It may have support for vendor's random GPU features, but technical features alone do not make for a better product.
It has its pros and its cons.
Up until 2007, these were the pros:
These still are:
I prefer DirectX because it has better development support, a better development environment, an integrated complete game package, and provides nearly the same speed and functionality as OpenGL.
Good reasons. Now, if you were developing a game for three consoles, Windows, OSX, Linux, and phones, then you'd probably want to go with OpenGL. Either that or face nasty dev time.
As soon as you pass 2 target platforms, OpenGL is the better solution.
This is inccorect. DirectX 10 does work on Windows XP, it is just not officially supported by Microsoft.
And this is incorrect. The Alky project went down. It was never a complete implementation. Most of the featu
Re: (Score:3, Interesting)
OpenGL? Better? Sure, it was once. And it was going to be better than DirectX again, with the release of OpenGL 3.0. But then the Khronos group scrapped the Long Peaks draft to appease the CAD companies. Yes, there are extensions and with vendor specific extensions, OpenGL can do everything Direct3D can today. But after how many GL_NV_* extensions does OpenGL stop being a cohesive API?
Re: (Score:3, Insightful)
Misrepresenting the truth perhaps. Sure you have *vendor specific* extensions all over the place - but that means you have feature X implemented on card Y but not Z; and the same feature gets implemented twice by different vendors in different ways with different bugs.
Frankly OpenGL is a mess - and the fact they scrapped the planned overhaul to make it developer competitive again means its pretty much dead in my opinion as a reasonable competitor.
Re: (Score:3, Insightful)
And that is why this argument is largely irrelevant. Games cost so much to produce now that it's almost mandatory for them to come out on at least PS3, 360 and Windows. Wii tends to get left out due to it's relatively low graphics performance. The point is that any game dev is probably going to have to support both DirectX and OpenGL/PS3 libraries.
Most game engines do that by abstracting the rendering stuff in such a way that it can use Direct 3D or OpenGL.
Re:OpenGL and the rant about marketing (Score:4, Interesting)
Re: (Score:3, Insightful)
Buck passing is done when said. Everything else is easier said than done.
Being Microsoft helps. Many of Microsoft's achievements have been by just being a mammoth Goliath monopoly. But that is them just doing their job. If you can't innovate, then gather an army and go to war. Only lawyers can tell you what you can and can't do.
Innovation at Microsoft is a plus, but not a requirement. The substance of their products is only part of the very large picture.
Re:OpenGL and the rant about marketing (Score:5, Insightful)
Well, and beyond that, the fact is that it doesn't work.
What started up IE development again? Was it 3 years of whining and whining on Slashdot about how Microsoft had a browser monopoly? Or was it another browser stepping up to the plate and actually *competing* for the first time since IE6 came out?
Microsoft doesn't care about products with no real competition-- Powerpoint has no real competition on Windows, look how shitty it is. It's by far the worst of the Office apps, and Microsoft simply does not care. Now if someone came and blew Powerpoint away, sold the software for less-- you bet your ass Microsoft would start moving again.
Moving and all (Score:5, Informative)
Now if someone came and blew Powerpoint away, sold the software for less-- you bet your ass Microsoft would start moving again.
The question is what move that would be. To judge by the past, they would, in order of feasibility: -
(Not comprehensive.)
All of this has happened before, and all of it will happen again.
(aka: Are you absolutely positive you are not new here?)
Re: (Score:3, Insightful)
It would suffice to just kill off all the middle managers and their Powerpoint presentations.
Save a lot of money, too.
Re: (Score:3, Insightful)
Re: (Score:2)
I don't think it would create that much more competition. 3D API's and libraries and things like these take a lot of work, and require support from graphics cards manufacturers (which there are basically only two, ATI and NVIDIA). It would be out of the question they would implement 10+ different codebases on their cards.
DirectX is actually up for competition, even if it's not in PC space. DirectX is the supporter of PC gaming and it competes against Playstation and Wii, and PS3 is definitely up to par in c
Re: (Score:3, Insightful)
which, in many ways would be the greatest thing for the consumer and the industry (as far as innovation and progress goes).
What industry? If you mean the 3D "market," I disagree. Having a large number of very different systems (e.g., let's just take Linux for example, drivers that work in one distro don't always work in another) does not necessarily help innovation and progress. Having a stable/typical setup helps, as you can focus in more on your product than worrying about whether or not it will work on all these different platforms/drivers/whatever. Unless we're talking about different industries, here.
As it is, I would
Re:OpenGL and the rant about marketing (Score:5, Insightful)
No, that is why it is an open standard. Once it is out there, anyone can implement it and conform to the standard. Maybe someone maintains it and maybe someone is working on the next version, but no one controls it. To illustrate the difference, what platforms does DirectX run on? Microsoft Windows, Microsoft Xbox, and Microsoft Windows Mobile. Notice the pattern? And what platforms does OpenGL run on? All of those plus dozens or even hundreds more. If you want to port your app to the iPhone or the Palm Pre or an Android phone, who is going to have to do more work, the person with the app programmed in DirectX or the person with the app programmed in OpenGL? That is the advantage of an open standard.
Re:OpenGL and the rant about marketing (Score:5, Insightful)
if all these people wrote code instead of rants you'd be a little closer by now.
Re: (Score:3, Interesting)
Re:OpenGL and the rant about marketing (Score:5, Informative)
2) completely bogus: These days M$ is advocating *not* using anything Like DirectInput, etc. In fact, DirectSound doesn't even work on Windows7
3) completely bogus: If you're not doing C#/C++ on Visual Studio using Com+, you're not getting DirectX. OpenGL can be coded in anything, Delphi, Python, C (gcc), C++, perl, Ruby, etc.
4) The only thing you got right, remotely
5) completely bogus: Before version 9 or 10, DirectX was the most hard and retarded thing to pick up, then it slowly, very slowly, got better.
Re: (Score:2)
I would mod you up, but I've already posted. I agree with everything you have said.
Re: (Score:2, Informative)
3) DirectX works just fine with C/C++/Delphi. I have used it with all of those, from version 6.
5) Not really. I'm not even a game developer myself, and I was a teen at that age, but version 6 of DirectX was really easy to pick up. And I used it with Visual Basic and Delphi, because frankly C/C++ was pain in the ass to quickly create something fun as a 12 year old. And so did games too - only games supporting OpenGL was those based on Quake engine, and even they had DirectX engine too (HL did at least)
Re:OpenGL and the rant about marketing (Score:4, Informative)
I would also point out that there are open standards for networking, input and sound. They just are not all bundled up under a single name.
Re:OpenGL and the rant about marketing (Score:5, Informative)
If you're not doing C#/C++ on Visual Studio using Com+, you're not getting DirectX. OpenGL can be coded in anything, Delphi, Python, C (gcc), C++, perl, Ruby, etc.
First of all, if a language can call C APIs (and, in particular, can deal with C function pointers returned by those APIs), it can call COM APIs as well. DX isn't even "COM", it just uses COM conventions (vtable layout, refcounting etc) - but it's not a set of proper registered COM objects. In particular, this means that you absolutely can write DX applications using gcc [blogspot.com] (e.g. Mingw, on Windows), and even g++, since its vtable layout is (by design) COM-compatible.
Furthermore, there are plenty of high-level DX wrappers for various other languages: Delphi and Python from your list have them for sure, and there are many more (just google for "directx language").
Re:OpenGL and the rant about marketing (Score:4, Insightful)
Never the less COM adds a layer of complexity that I don't find when using OpenGL. I'm not sure what the situation is now with DirectX, I understand its better since 9, but still, I have nightmares about COM activation across network domains and permissions issues and the list really went on and on
I repeat: DirectX is not really COM. Yes, MSDN refers to it as COM for the sake of simplicity - because it's similar enough on the surface, and because, by some definitions, DX objects are COM objects. However:
There are no COM coclasses there, no marshaling, no proxies, nothing. All that it has from COM is that it uses a bunch of classes which has strictly defined vtable layout and method calling conventions, same as specified in COM (or, if you prefer, defined by a bunch of C struct declarations with function pointers); it uses IUnknown for the first three vtable slots, with its refcounting semantics, and rules for who should AddRef and who should Release when passing pointers around; and it uses the standard COM convention of returning HRESULT to report errors. That is all. There are, by definition, no activation or networking or permission issues, because there is no networking, no activation, and no permission checks.
It's not any more COM than Mozilla's XPCOM is COM.
Re: (Score:3, Informative)
DirectSound doesn't even work on Windows7
Where did you hear that? Because, that's nonsense (or, as you say, complete bogus).
Re:OpenGL and the rant about marketing (Score:4, Informative)
Re: (Score:3, Insightful)
Re:OpenGL and the rant about marketing (Score:5, Insightful)
1) completely bogus: OpenGL has an both a good documentation and extremely good literature
It's nice that you think so, but I've seen the documentation for both, and I much prefer the directx documentation. You are, in fact, helping to prove the GP's point: when Microsoft hears from a developer that their documentation sucks, they'll work on it and improve it. When open source people hear that something sucks, they insult the user and stick their heads back in their asses.
Re:OpenGL and the rant about marketing (Score:4, Interesting)
1) openGL documentation sucks at best. Examples are all of the same beginner draw a triangle type.
2) Not only does directX provide more than just graphics, even within the graphics space it provides a lot more grunt code I have to do myself in openGL.
3) I use managed languages. I am not developing a game, I am developing business software (CAD/CAM related). Both openGL and DirectX currently suck in this respect. At least directX has XNA for games. OpenGL has no native (managed) Windows forms or WPF implementations. If I was developing a game, XNA is the easy choice. But since I am developing a business app, I live with stale dead third party libraries (TAO in this case).
4) Very relevant - for whatever reason, mind share is currently on DirectX - and from a community support perspective that is huge.
5) I was able to be productive in directX 8 (where I started) enormously faster than openGL. Even now, I end up converting directX code to openGL most of the time, as opposed to finding openGL code that shows what I am trying to accomplish.
Like I said, I wished I would have stayed with DirectX. If and when this project gets completed I will never use openGL again unless they provide better managed language support , better documentation and better built in functionality. I get tired of passing in integer values to set parameters. When I want to set a light color I want to call SetLightColor(Color), not setSomeParamater(12, 15); It makes for unreadable and unmaintainable code. I know, there are those who still think C is great, and they write some of the ugliest code on the planet, let them collect in the a little tiny small group for all I care.
Re: (Score:3, Informative)
Re:OpenGL and the rant about marketing (Score:4, Insightful)
Yes, I've seen the man pages. I've personally passed on several dozen bug reports in the OpenGL and GLUT man pages. Having reference documentation is well and good, but reference docs don't paint a complete picture by themselves. That's like trying to learn the English language by reading a dictionary.
Re:OpenGL and the rant about marketing (Score:4, Interesting)
The rant is no more of a rant than you find closed source rant about regarding open source.
And, the updated spec for OpenGL had glorious ideas but somehow they fell through. Then Microsoft decided they'd cancel support for OpenGL in Vista/Win7 (yay, way to compete -- try to kill a solid viable product used by so many).
OpenGL still has a bright future as soon as they can complete what they promised.
Re: (Score:2)
As long as OpenGL continues to support the newest features first through extensions, there will always be a place for it.
For a long time, OpenGL was used in industrial and visualization applications. It wasn't designed specifically for games, hence why it was never developed into a fully featured multimedia library. This article very well articulates the fact that OpenGL is available on quite a lot more devices than DirectX and for any cross platform developers, this is extremely important.
I don't see OpenG
Re:OpenGL and the rant about marketing (Score:5, Informative)
Corrections/clarifications
1) So does OpenGL
2) True -- Let's talk Direct3D vs OpenGL
3) False -- Name me one language that doesn't have OpenGL bindings
4) The 360 has a DirectX-like API. OpenGL-like interfaces is used on Wii and PS3
5) OpenGL is easy(er?) to pick up
Re: (Score:3, Funny)
False -- Name me one language that doesn't have OpenGL bindings
Well, we couldn't find any for INTERCAL (we also use Brainfuck for low-level optimization of critical code sections). Meanwhile, D3D APIs literally blend right in! ~
OpenGL is easy(er?) to pick up
On a serious note, this one is arguable. I will concede that it's much easier to write a simple 3D application in something like SDL+OpenGL, because of many sane defaults. However, if you try to get it even to the level of a hobbyist but not horribly outdated game engine, the amount of complexity quickly increases for OpenGL as well. I'm not an
Re:OpenGL and the rant about marketing (Score:5, Interesting)
5) OpenGL is easy(er?) to pick up
It used to be, with the fixed-function pipeline. Unfortunately all of the easy bits were deprecated with 3.0 and removed with 3.1 (fortunately people like nVidia then re-introduced them all as extensions). OpenGL 3.1 is incredibly powerful, but I wouldn't describe it as easy.
Re:One language (Score:5, Informative)
If you really wanna do that, knock yourself out: http://code.google.com/p/bfopengl/ [google.com] :-)
Re: (Score:3, Interesting)
Wrong, the svn is empty, yes, but you can download the interpreter code and some docu as zip. Apparently it supports some 18 glut/gl calls.
*removed because: Filter error: Please use fewer 'junk' characters.
Reality Check From A Real Game/Graphics Developer (Score:5, Insightful)
I don't know whether to laugh or cry at people like you.
Let's just sum up the platforms our company supports:
PS3
Wii
Linux
Mac
Windows
Android
iPhone
Various embedded custom ARM based hardware
Guess which API is the one we use for all of those platforms - except the two consoles?
OpenGL
Guess which API will be used for the next media hardware platform no one has heard about yet?
OpenGL
So, yeah, go right ahead and keep babbling about how somehow OpenGL needs to 'prove' itself. DirectX is a dead end API to anyone except the fading Windows gaming market and teenage Windows only coders.
Re: (Score:3, Insightful)
Re:Reality Check From A Real Game/Graphics Develop (Score:4, Insightful)
More disposable pens are sold every day than premium cars in a decade. But guess which is more profitable.
Please tell me... (Score:5, Insightful)
Please tell me how many companies care about the niche market of 0.1% of Linux users? How many Linux games do you see? And don't even get me started how much bitching there would be if the "bad" companies wouldn't open source their games when releasing Linux versions.
It's not really about the 1% of desktop users that use Linux. What you are failing to note is that there is an awful lot of software written for mobile systems (read: mobile phones and iPod like devices that double as gaming platforms) and many of those systems run Unix like OS'es such as iPhone/iPod OS and Linux. Writing games for mobile devices is a growing market and portability is a key component if you want to make any kind of money since the world of Mobile operating systems isn't quite the Microsoft dominated monoculture that the world of Desktop OS'es is. If Android gains any kind of a foothold and iPhone OS keeps gaining market share (and there is no reason to believe they won't) I'd say OpenGL has a bright future, if only thanks to people developing for mobile devices. Also keep in mind that the most popular mobile phone OS is Symbian. Mind you I don't think Symbian owes much to Unix but it isn't made by Microsoft either. Symbian has an OpenGL port that is also the official Symbian 3D graphics API (according to Wikipedia). Now I'm sure people can bitch and moan about how mobile games aren't really as sophisticated as as PC games and I suppose that's true. Nevertheless it still cracks me up every time some bozo puts in a book review on a game development book on Amazon and goes on endlessly about how Direct3D is a "game development industry standard" and how "OpenGL is a dying technology". OpenGL is alive and well and likely to stay that way. The (mobile software developing) world is not Microsoft.
Re: (Score:3, Informative)
Re:OpenGL and the rant about marketing (Score:5, Insightful)
The interesting part of your whole argument is that you completely ignore the fact that both Wolfire and ID Software do more than just rant about it.
They develop games that support OpenGL. What they want, is *other* big developers to stop supporting the inferior libraries and open their eyes.
Plan and simple: There is nothing bad about Open standards.
- If they are broken, you can fix them.
- if they lack features, you can add them.
- If the performance is poor, you can improve it.
Can you say this about Direct3D? The only entity that can fix, add to, or improve Direct3D is Microsoft. Period.
- If its broken, you have to wait for a patch.
- If it lacks features, you have to wait for the next version, and pray that it supports your operating system.
- If the performance sucks, you have to deal with it.
Whats good about that? And thats talking a strictly Windows audience.
From a cross platform point of view, there really is just one choice. And its not Direct3D.
Re:OpenGL and the rant about marketing (Score:4, Insightful)
What rubbish. The simple fact is that on the highest end hardware DirectX supports more features. OpenGL is well behind now. The original somehow turns Direct3D's deficiencies a decade ago into a reason for modern game developers not to use it. Yeah - that makes sense.
OpenGL is a better choice for cross-platform development. It's not a better choice for high end game development on Windows. In fact it's a worse choice. Period.
It's just more false choice syndrome. Use OpenGL where it makes sense, and use DirectX where it makes sense.
Re: (Score:3, Interesting)
It's not a race. If software is written to a standard, there is an expectation that it can be moved to other platforms by simply recompiling.
The platform can then be chosen to meet the customers needs.
To give an example: A large company was using workstations made by ***, but were afraid that *** was going out of business. They then rebuilt the application to work on desktop systems made by **** utilizing graphics cards from ***** and ******. Since the applications used OpenGL for rendering, the move was si
Re: (Score:3, Insightful)
Advanced things like this [youtube.com], right? I'm sure that would be cake in OpenGL.
But let's not be disingenuous. At a basic level you can access the hardware and do whatever the hell you want. By that reasoning, I guess Java is just a good a language to write a Linux device driver in because theoretically you could use JNI and some limited Java VM in-module to handle the work, right?
Direct3D, as an API, supports more hardware features at the API level than OpenGL does without reverting to basically bypassing OpenGL
Re: (Score:3, Informative)
What I see in this video is "just" a state of the art game engine renderer. The current generation of games only expoits a subset of the features of current generation hardware. Were it not for the strict realtime requirements that are present in games, which push the available CPU time for rendering in the range of 3 to 6ms for 60FPS (the rest of the time is taken up by other parts of the game), the visuals could be immensely more impressive. And none of that is something that can be done in DirectX exclu
Re: (Score:3, Insightful)
The whole point of getting a package is so you don't have to dick around with it.
Re: (Score:3, Informative)
Conspicuously absent from the article is John Carmack's more recent praise of DirectX, instead opting for far older quotes from him that reference versions of DirectX that are now either obsolete or at the very least superceded; in particular:
In January 2007, John Carmack said that "DX9 is really quite a good API level. Even with the D3D side of things, where I know I have a long history of people thinking I'm antagonistic against it. Microsoft has done a very, very good job of sensibly evolving it at each step—they're not worried about breaking backwards compatibility—and it's a pretty clean API. I especially like the work I'm doing on the 360, and it's probably the best graphics API as far as a sensibly designed thing that I've worked with."
I don't know if it is the best graphics API mind you, but few would dispute Carmack's graphics programming credentials, and the above quote paints a somewhat different picture of his (modern) views on the API than the linked article.
Source: Comparison of OpenGL and Dir [wikipedia.org]
Re: (Score:2, Funny)
1) I'm suprized anyone would want to use something as old as DirectX....
2) I use mutt you insenitive clod!
Re: (Score:2, Insightful)
Re: (Score:3, Insightful)
Comment removed (Score:4, Insightful)
Re:OpenGL and the rant about marketing (Score:5, Insightful)
I am surprised that someone would want to use something as old as opengl. I bet those people still read their mail with elm, pine and mail.
You have no idea. My computer still uses TCP/IP!
Re:OpenGL and the rant about marketing (Score:5, Informative)
Re:OpenGL and the rant about marketing (Score:4, Informative)
Hasn't Carmack all but reversed his position on DirectX, saying that OpenGL is failing to keep up?
http://linux.slashdot.org/story/09/08/24/0059218/Linux-Port-For-ids-Tech-5-Graphics-Engine-Unlikely?from=rss [slashdot.org]
Oh yeah.
Re: (Score:3, Insightful)
Re: (Score:3, Informative)
Re: (Score:3, Informative)
Timothee Besset of Id says:
"As far as idTech 5 (the Rage engine), it runs on PS3 and Mac already. Setting up idTech 5 to run on those platforms early on in our development cycle was a direct result of carrying Linux/Mac support in idTech 4 beforehand. It is likely i will be involved with idTech 5 in the near future, I'll be damned if we don't find the time to get Linux builds done."
http://ttimo.vox.com/ [vox.com]
Re: (Score:3, Insightful)
The "average users" (aka non-programmers) have the tendency to think OSS devs owe them something, and contribute very little.
You what? The average user wants to do something on his computer and your chastising them for not breaking out the IDE and improving the code? I think you just proved the GP's point . . . it's all very well having a technically competent product with below average user experience but you can't then moan about lack of general acceptance. The simple fact is if you want blanket coverage you have to appeal to the lowest common denominator and imploring your users to improve the product for you is just not going
Former OpenGL developer (Score:5, Insightful)
As a former OpenGL developer, I am not too fond of GL anymore.
Khronos really disappointed a lot of people when they announced the GL3 specs. They had promised SO much and delivered SO little. Khronos claimed that it didn't want to piss of the CAD community, which is heavily GL based. They basically chose to please the CAD community instead of the gaming community.
That move totally killed GL for me.
Re:Former OpenGL developer (Score:5, Interesting)
I know its taboo to respond to oneself, but I forgot to mention the recent release of the GL books (red and orange) adequately display the state that GL is in. They STILL do not have geometry shaders in the standard, and its freaking 2010! Yes, you can use those shaders via extensions, but anyone who recommends that path has not been personally burned by vendors supporting extensions to different levels. Writing code that uses extensions that only work on Nvidia and not ATi (or vice versa) is NOT what GL is about!
Re:Former OpenGL developer (Score:5, Informative)
You are not up to date then. OpenGL 3.2 has it in the standard.
Re: (Score:3, Interesting)
That's a problem that OpenGL seems to perpetually have, they are always playing catchup with cards. Graphics cards do something new, OpenGL takes a long time to get a proper implementation of it because they claim "Oh you can just use extensions!" Meanwhile, Direct3D is always on the cutting edge. Why? Well because MS works with the graphics card vendors. It is a two way process: MS tells the GPU vendors "These are the kind of things we want to put in the next generation of DX," graphics companies say "Thes
Re:Former OpenGL developer (Score:4, Interesting)
OpenGL is clearly behind DirectX ...
You're contradicting TFA without any evidence. TFA provided quite a lot of evidence to support its position such as:
It's common knowledge that OpenGL has faster draw calls than DirectX (see NVIDIA presentations like this one if you don't want to take my word for it), and it has first access to new GPU features via vendor extensions. OpenGL gives you direct access to all new graphics features on all platforms, while DirectX only provides occasional snapshots of them on their newest versions of Windows. The tesselation technology that Microsoft is heavily promoting for DirectX 11 has been an OpenGL extension for three years. It has even been possible for years before that, using fast instancing and vertex-texture-fetch. I don't know what new technologies will be exposed in the next couple years, I know they will be available first in OpenGL.
So no, I don't think you can just drop such a comment and be taken seriously. You're going to have to back that up.
Re:Former OpenGL developer (Score:5, Insightful)
Actually, you did his work for him. Emphasis added:
Vendor extensions are not part of the standard, which makes this statement from TFA misleading at best, outright lying at worst. These extensions usually don't make it into the OpenGL standard until years after DirectX has added them, as was pointed out by another poster elsewhere in this thread.
Re: (Score:3, Insightful)
DirectX is a forward-looking standard - Microsoft sits down (or stands up and yells) with developers and graphics manufacturers, and hammers out a spec which a "DirectX X.XX" card must support. Then vendors go and make a card and drivers that support those features. In this way every DirectX 10 or DirectX 11 card can be assumed to support the same things using the same APIs, and if they don't, it's the vendor's fault and they have recourse.
OpenGL, at this point, looks back - Graphics card manufacturers make
John Carmack ditched OpenGL (Score:5, Insightful)
In an article a couple years back during the Doom 3 release he(John Carmack) said in later articles that they would be moving away from the OpenGL platform and considering he was one of the biggest backers of it. He even said in the article that they liked DirectX and the new features they have added, also that it was a lot better to work with these days and supported more. I can only imagine after the last fiasco update that OpenGL put out and all the missing features they promised, it looks pretty dismal for that development team as they cannot deliver what they promise.
Really the last place OpenGL stands strong is in AutoCAD and even they have indicated that the platform will not last longer, so we may see AutoCAD be using DirectX in the next few 5-10 years.
Re:John Carmack ditched OpenGL (Score:5, Insightful)
I have posted this citation by Carmack in a comment on recent article on DX11, but it seems to be very much relevant here as well, so I'll re-post it - especially as TFS mentions Carmack's opinion circa 1997 (which favorably matches with the point of the article), but conveniently omits the more recent comment. Here it is:
"DX9 is really quite a good API level. Even with the D3D side of things, where I know I have a long history of people thinking I'm antagonistic against it. Microsoft has done a very, very good job of sensibly evolving it at each step—they're not worried about breaking backwards compatibility—and it's a pretty clean API. I especially like the work I'm doing on the 360, and it's probably the best graphics API as far as a sensibly designed thing that I've worked with."
Re:John Carmack ditched OpenGL (Score:5, Interesting)
This is really it, the summary almost sounds like a complete troll.
OpenGL didn't lose out because of Microsoft's marketing, it lost out because whilst OpenGL stagnated, DirectX grew and grew to become a completely unified games development framework. Carmack may have had a point 12 years ago, but whilst OpenGL development completely ignored criticisms, Microsoft took criticism from the likes of Carmack on board and improved performance of their API whilst adding new features, providing great documentation and tidying up the interface.
Citing an argument from over a decade ago is desperate to say the least.
OpenGL needed to become something more, it needed to become part of a unified game development library in itself- we had part of that with OpenAL but it needed everything, we simply need an Open Multimedia/Gaming framework that can do everything that DirectX can do.
The fact is, game development requires more code and more content than ever before, developers can simply no longer justify spending time on filling in the gaps when other libraries like DirectX already have those gaps filled.
I would love nothing more than a resurgence of a set of open libraries covering the various facets of game development like DirectX does because it'd mean near zero effort porting to Mac and Linux, but right now the extra effort required to use OpenGL and OpenAL and then fill in the other gaps yourself coupled with the additional support requirements just doesn't justify the relatively minimal extra userbase for many developers.
Re:John Carmack ditched OpenGL (Score:4, Interesting)
whilst OpenGL development completely ignored criticisms, Microsoft took criticism from the likes of Carmack on board
That kind of feedback is actually formalized - there's a committee called Microsoft DirectX Advisory Board. I'm not sure whether Carmack is on it, but e.g. Tim Sweeney (the Unreal guy) is, judging by one of his interviews.
I don't know how much influence that board has over DX design, however ("advisory" in the name gives a hint, but there is still a wide range of possibilities). Would be interesting to know. Could it be that D3D9 was a significant leap that Carmack claims it to be precisely because of heavy participation in its design by people who actually use it?
Re: (Score:3, Informative)
From the article, Carmack said:
And:
Re: (Score:3, Insightful)
Your former quote is simply because DX10 is Vista/Windows 7 only, the reason he's not using it is not because he has a problem with it, but because DirectX 9 is adequate for his requirements and still allows him to support XP. It's completely wrong to assume that avoiding DX10 means using OpenGL- I'm not sure if that's your insinuation by quoting this, but what it means is that his preferred DirectX version is 9 as it is with most developers, because XP still has a big enough userbase to simply not ignore i
Re:John Carmack ditched OpenGL (Score:5, Informative)
Really the last place OpenGL stands strong is in AutoCAD and even they have indicated that the platform will not last longer, so we may see AutoCAD be using DirectX in the next few 5-10 years.
I find that hard to believe. Right now there is a new renaissance in game development and game platforms. Mobile platforms are just now grabbing noteworthy market share and it looks like its only continuing to grow as more mobile devices increase in capability - especially 3d capabilities. Thus far that segment has clearly spoken. Thus far this segment is OpenGL and/or OpenGL ES. And that's entirely his point. You want to chase an emerging market plus cover all other platforms, you have exactly one option - OpenGL.
If you develop via OpenGL you can address XP+Vista, Mac, Linux, iPhone, and Android, plus all the major consoles. Its one stop shopping. With DX and comparable graphics with OpenGL, you can only target Vista. If you want Vista + XP + Consoles, you're looking at DX9 which is a subpar graphics experience compared to that which is provided by OpenGL. Simply put, OpenGL provides you more platforms more easily.
We most certainly have not reached any critical point which can not be reversed. As the author clearly points out, OpenGL vs MS is much the same today as it was in the past. At this point, its strictly about mind share and that needs to change.
Much is said that OpenGL is less than DX, and that's true. But people seem in a hurry to ignore the fact that there is a standardize solution which is OpenGL/OpenAL/OpenSL/SDL. When game developers talk about OpenGL as a solution, they really mean all four. OpenGL has a complete solution which addresses both CAD and gamers alike. The only questions is, are companies smart enough to realize this - far too often, its seems not because of the MS marketing. And as I've said many times before here, MS is not so much a technology company as they are a marketing company. Generally speaking their technology is second rate, but their marketing and business prowess is world renowned. All too often people confuse the facts.
Ultimately, the problem is that the PHB making the technology decision is simply unaware of the poor MS-centric decision they are making, which is then costing them additional dollars to later turn around and target the platforms they specifically excluded themselves from by picking DX in the first place. OpenGL needs to be championed by someone that understands how to speak PHB so that OpenGL can be fairly evaluated. Right now the only contender who is whispering into the PHB's ear is MS, and as a result, everyone is losing.
Re:John Carmack ditched OpenGL (Score:4, Informative)
Long story short is that if you ship a 3D software title that's designed and marketed to be run on as many machines as possible, modern OpenGL drivers tend to greatly lag or be unavailable on many Windows machines. Vista and especially Vista 64 really made this worse since maintaining and upgrading GL drivers for middle tier GPU hardware is generally at the bottom of the priority list for 3D driver development. Meanwhile, D3D support tends to be solid, speedy, and well maintained considering especially when you consider what hardware they have to work with.
I'm a senior engineer at a software company that manages a cross-platform codebase that puts OGL and D3D under the same roof (we ship products for OS X and Windows). One of our older products requires OpenGL on Windows due to not wanting to rewrite all its shaders for D3D, and the number of support tickets that we get from that TOWERS our the number of support tickets from our other D3D titles combined. It's downright pathetic how poor OpenGL hardware and driver support is on these middle tier Windows machines.
The last thing the guys and Intel and Nvidia that maintain the drivers for built-in chips that go on the typical Dell machine give a crap about are the state of their OpenGL support. I'm typically surprised to see them have support past 1.3.
Killer App (Score:2)
There's nothing around it; OpenGL desperately needs a killer app.
Show people something amazing and tell them "OpenGL did This."
Re:OpenGL has/had Killer Apps! (Score:4, Interesting)
You mentioned Quake 3 (which is just a little over a decade old) that got me thinking, what software DOES run OpenGL?
http://en.wikipedia.org/wiki/List_of_OpenGL_programs [wikipedia.org]
The fact that I didn't know most of those titles (many of which I have or have played) had support for OpenGL is a testament to the lack of marketing and the push the OpenGL community needs to make to get people excited about it.
Re:OpenGL has/had Killer Apps! (Score:4, Interesting)
http://developer.apple.com/macosx/architecture/index.html [apple.com]
http://developer.apple.com/graphicsimaging/opengl/ [apple.com]
http://en.wikipedia.org/wiki/Core_Image [wikipedia.org]
Isn't it pretty obvious? (Score:3)
I've used both (Score:3, Informative)
Open GL is made for EVERYTHING. Sure, you can use it for games. There's nothing wrong with that, but i'm not John Carmack. That shit is hard for me. If i want to make a game, i'll take the platform that holds my hand.
Plus, like others said, direct x is a whole game api. it's not just graphics. it's input, it's networking, it's sound. the whole platform is very cohesive. I'd rather just keep up with one api, one download, etc than have to follow open gl, open al, etc.
anyway modern game development means licensing an engine. engine developers worry about supporting open gl or direct x.
Re:I've used both (Score:5, Interesting)
Please RTFA. Also, Chris Hecker's [chrishecker.com] article, linked from TFA. Then give us specific, technical reasons that DX/D3D is somehow better for games than OpenGL. Your post is filled with assertions, but with nothing to back them up. It's pretty sad that got moderated "informative".
Again, RTFA. Give specific, technical reasons that OpenGL is "harder" than D3D. If you'd bothered to read Carmack's position, his favoring of GL was because GL is easier. Your inability to deal with OpenGL putting your claims in doubt aside, you could at least be specific about the reasons. As per Chris Hecker's article, the only one making these claims are Microsoft evangelists. You wouldn't happen to work for Microsoft would you?
This is a bit disingenuous. All of the articles involved are addressing the 3D aspect of DX. The rest of the stuff is either trivial (use SDL or similar which is about the simplest API you could imagine, has a billion support libs, and runs on everything), or you'd be doing it by hand anyway (implement your own networking stack for performance, a la EVE). Your point is therefore irrelevant.
You seem to be a lazy-enough or low-end-enough developer that this article does not apply to you. However, it does matter to developers who make engines (either primarily or otherwise). Perhaps you should move along; these are not the articles you are looking for.
Re:I've used both (Score:4, Interesting)
``anyway modern game development means licensing an engine. engine developers worry about supporting open gl or direct x.''
Exactly. That makes me wonder why they actually bother supporting DirectX, though, seeing as DirectX really only works on Windows, which is also supported by the APIs that the other platforms use.
``Plus, like others said, direct x is a whole game api. it's not just graphics. it's input, it's networking, it's sound. the whole platform is very cohesive. I'd rather just keep up with one api, one download, etc than have to follow open gl, open al, etc.''
But you don't; you just use the engine and let the engine developers worry about platform specific APIs. You even said as much yourself.
Also, I don't know to what extent DirectX is "one api". The way I understand it, DirectX is, first of all, made up of several different APIs for different purposes, e.g. Direct3D, DirectSound, and DirectInput. So there isn't really just one API. As for keeping up with it, to what extent is DirectX actually backward and forward compatible? I have never coded for it, so I don't know, but I got the impression that compatibility is often broken between releases. OpenGL seems (again, this is just my uninformed impression) to be rather stable, favoring extensions over completely changing things. Given these things, I find your argument that, with DirectX, you have to only keep up with one API hard to follow. To reiterate, I don't think it's one API, and I don't think it's easier to keep up with than its competing APIs.
Re: (Score:3, Informative)
http://en.wikipedia.org/wiki/OpenAL [wikipedia.org]
It's also dishonest for the various people posting to claim that games are primarily done in D3D. That is true for a lot of PC games and all 360 games but no one uses D3D for Playstation. So any major engine has to support both as you will find one of the most popular (if not most popular at th
Re: (Score:3, Informative)
You want to look at SDL [libsdl.org]
Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power."
More like Developers don't CARE. (Score:4, Interesting)
The ultimate monetary advantage of using OpenGL for games (imo and ime) is it makes Mac porting a hell of a lot easier.
The ultimate monetary downside of making Mac games is that only a small fraction of the install base can upgrade their video cards - the one constantly-moving PC gaming component.
You can build a useable gaming PC for under $700 - the buy-in for a Mac with an upgradeable video card is presently $2499. With the vast majority of PC gamers using wintendos, Windows/DirectX is the LCD. It's where most (or all) of the money is.
I think it's fantastic that iD uses OpenGL and makes all of their games cross platform. I also think it's unfortunate that iD is the exception to the rule... but I also vote with my wallet, and I use a $600 non-upgradeable (video, anyway) Mac Mini for all of my Mac-oriented needs, and a massively-upgradeable, equally-priced Shuttle PC for everything else. Which includes a long list of games that haven't been released on the Mac - and even if they had been, wouldn't be playable on the GMA-950 video chipset. It's shite for games, fine for Photoshop... and Windows is the reverse for me.
If I need a wintendo to play Orange Box or S.T.A.L.K.E.R., does it really matter if the game uses DirectX or OpenGL?
Not really. :-|
Re: (Score:3, Interesting)
Majority of PCs sold are laptops though, so it makes smaller difference now.
Re: (Score:3, Informative)
Incorrect on both points. id was bought by Zenimax, which is the parent company of Bethesda, so Bethesda doesn't have any say on what they use or don't use. In addition, Carmack already confirmed that they'll use OpenGL for their next game on Windows and Mac.
An Amateur's Perspective - OpenGL vs DirectX (Score:4, Informative)
I've dabbled in 3D programming, I haven't done anything amazing, let alone made my own game, but I will say that D3D is much easier to write working code than OpenGL. With OpenGL I got about as far as a spinning triangle on the screen. With D3D I was able to get to the point where I was rendering a model on the screen and manipulating it with pixel and vertex shaders.
Somebody earlier hit the the nail on the head when they said that because it's easier it's what people will start and subsequently stick with. Not only that, but as a business if it takes your programmers 10 months to write a graphics engine in D3D and 12 months to write one in OpenGL, which one are you going to go for? There aren't many instances where I will go to bat for MS, but DirectX has a better graphics API compared to OpenGL.
OpenGL pride (Score:4, Informative)
- OpenGL works on Mac, Linux, WindowsXP and Direct3D does not (or only partially as in no DX11 for XP)
- OpenGL compatible APIs are present on the PS3, Wii, iPhone and many other devices, wheras Direct3D works on none of those.
- Cutting edge features can be accessed in OpenGL as they come out, whereas in Direct3D you'll have to wait until M$uck decides to iterate++ DX.
- A wealth of good online and dead tree documentation can be had for OpenGL
- A host of "killer apps" has been done and is continuing to be done with OpenGL (such as Maya, 3ds max, softimage, all iPhone games, Mac Games etc.)
SDL 2.0? (Score:4, Interesting)
The *nix Analogue for DirectX is SDL. Not OpenGL.
The thing is, for a few years now, there needed to be an SDL 2.0 that made it as easy to integrate things like Nintendo's Wiimotes, Playstation controllers, and other things. But After all these years, we seem to be stuck on SDL 1.2.x - I don't know why. GTK+ moved on. Qt Moved on, what happened to SDL?
Re: (Score:3, Funny)
There is a huge difference between Pepsi and Coke, just for the record.
Re:I'm sorry but I don't really care (Score:5, Insightful)
I exclusively use Windows for PC gaming. I could give two flying F's whether my game is developed in OGL or DX.
If more games were developed in OGL, they would be easier to port to other operating systems (or run under Wine)so you wouldn't need to use Windows anymore. That would save you a hundred bucks or so on a Windows license, or at the very least the need to reboot to play a game. That's got to be worth at least one flying F.
Re:Direct X and the Xbox (Score:5, Funny)
Could you make those error bars a bit bigger? You almost said something.
Re: (Score:3, Insightful)