Why You Should Use OpenGL and Not DirectX
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.'"
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.
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.
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.
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.
Give me Classic Slashdot or give me death!
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.
Said the anonymous coward
More disposable pens are sold every day than premium cars in a decade. But guess which is more profitable.
"It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
Don't you mean "Too bad ATI card royally suck ass at implementing OpenGL"?
Cress, cress, lovely lovely cress
And here's another application of your argument pattern: Basic is much easier to write working code than C++.
"Politicians and diapers must be changed often, and for the same reason."
It would suffice to just kill off all the middle managers and their Powerpoint presentations.
Save a lot of money, too.
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.
Only to idiots, are orders laws.
-- Henning von Tresckow
Presentations are the most important "value" created in today's business world, as far as employment dollars spent go. Lower on the scale there are lots of workers, but their hourly wage is very low, and higher up there is not enough people, even if they earn a lot. The bulk of employment money goes to middle managers tweaking powerpoint slides to present at meetings that take up the bulk of the time. The purpose of presentattions is to dumb down and simplify concepts so they can be effectively conveyed to wide audiences who otherwise don't have a clue. Being an expert, and knowing the very fine details, as described in scientific papers that present the full set of actual measurement data is no longer important, as far as job success goes, but one has to be very good at giving succinct and summarizing presentations. No longer do you find ad hoc vivid conversations one on one between experts addicted to a topic caught up discussing the details for hours with a twinkle in their eyes, but you have a lot of time management software scheduled and accepted mandatory summons to meetings where people neither want to be there, nor are they interested, but it brings them a paycheck, so they have to do it. Self interest is amazing.
Presuming that the windows / xbox360 market will be the largest for longer than a decade from now is a dubious guess at best. With their business methods, it would not be surprising to see Windows fall drastically in market share in the near future, and at that point nobody will want to write software using this DirectX crap when they can write it in OpenGL and support the various OS's which span the majority of the market. That's all it takes, and Microsoft is slipping with every passing month. Windows 7 isn't good enough when you're still using anticompetitive actions to bully out competitors in any given market, until Linux is as viable as windows as a desktop platform for the "average user", Microsoft will enjoy the antitrust they've built and sustained in direct violation of multinational law. When that threshold is crossed, however, Windows is no longer the only thing most people will see as a viable thing to run on their PC, and being fucked time and time again by huge costs and inferior/buggy/exploitable microsoft-clone-of-X-software being forced upon you through packaging and windows updates, people won't give a second thought to moving, and the software companies will follow the consumers.
I'm sorry, but... Qt? Yuck. Give me something with a plain C API and optional C++ wrapper, not a native C++ API. Give me something that doesn't have its own "make" variant to make building "easier". Give me something that doesn't rely on macros and a custom code pre-processor to implement signals & slots, when it's been fairly conclusively proven that these features can be implemented using plain old C/C++.
Please, if you're going to do something like this, don't take a reasonably well-written plain-old-C API like OpenGL and sully it by association with something which is, in comparison, broken by design.
For something which underpins so many open-source applications, and touts cross-platform compatibility as its major feature, Qt seems to make so many departures from library-writing best practices that I often wonder why it has been adopted as widely as it has. Thankfully I am currently succeeding in keeping Qt (and KDE) off my Linux installs - I run one closed-source Qt application for work purposes, and ironically, running the Windows version in WINE works better and provides more features than running the Linux-native version.