Hacker News new | past | comments | ask | show | jobs | submit login

    API use was shifted in favor of DirectX
    by Microsoft's two-pronged DirectX
    campaign around the launch of XBox
    360 and Windows Vista, including the
    spread of FUD (fear, uncertainty and doubt)
    about the future of OpenGL, and wild
    exaggeration of the merits of DirectX.
I thought it was because that, at the time, the OpenGL API was shit [1].

    By the time of OpenGL 2.1, OpenGL was
    running into a problem. It had a lot of
    legacy cruft. The API wasn't easy to
    use anymore. There were 5 ways to do
    things, and no idea which was the fastest.
And really, the author of the blog post should have known this when the blog post was written...

    By David Rosen on January 8th, 2010
OpenGL 2.1 came out in 2006 [2].

[1] http://programmers.stackexchange.com/a/88055/7067

[2] http://en.wikipedia.org/wiki/OpenGL#OpenGL_2.1




That stackexchange post is very, very good. Points just for bring that out.


It was a great read, indeed.

And yet, it was locked by SE mods as out of topic. While I love Stack Exchange and I'm thankful for the value it brought in so many ways, this policy of locking reasonable and valid questions is just upsetting.


It's also a legacy issue: once developers start using DirectX, it's harder for them to go back, and traditionally PC development has been Windows-only (more or less) for many years. Now that the market is becoming fragmented again between different platforms, there is more incentive to go for a cross-platform API than before - and that's where standards matter.


Not really 'legacy' per se either... good luck running OpenGL on Microsoft's consoles or as a ModernUI application! DirectX being a broader and, in my opinion, better designed API certainly doesn't hurt it's adoption either.


What about OSX? Does DirectX work (at all/well) on it? Linux? How feasible is it to program with DirectX on any non-MS platform?

Edit: I guess the point I'm making is, OpenGL runs on non-MS as well as MS platforms (perfectly/badly is another question), but DirectX is locked to Microsoft only. That is what makes it of little to no value for people like me who need to care about cross-platform products and support.


A Microsoft OS still runs on over 90% of the desktop market.


I wonder what the percentage is when you figure the entire "computer" gaming market (eg. consoles, tablets, and phones). I suspect Microsoft's dominance on gaming is (and will become even more) weaker than we believe.

OpenGL seems like a no-brainer for future survival as MSFT platform dominance exhibits entropy.


Is PS3/PS4 development OGL or a proprietary API? Because if it is OGL then yes that makes said API far more useful for sheer amount of access to hardware.


The PS4 uses OpenGL (4.4?).

The PS3 used a proprietary API based on OpenGL 1.0.


So yeah, OGL grows more useful as the PS4 grows its user base. Thanks for the info


False info. PS4 uses a proprietary API called GNM

http://www.eurogamer.net/articles/digitalfoundry-how-the-cre...


The PS4 supports OpenGL, but my understanding is that most non-indie games use libgcm.


Right now, yes. However we do know that this has been changing quite rapidly in the past years so why fall back on the use of this argument?


How about because it's still valid?

What game developer say to themselves,

It looks like in 10 years, Linux and OSX adoption will _probably_ approach 50% market share. Therefore, the best choice for my new game, which will be released in 3-4 years, is to choose OpenGL

I'm not a game developer, but I would bet they are interested in where the market will be in the medium term, and there is no indication Linux/OS X will suddenly dominate within that timeframe.


    On traditional PCs and Macs, Microsoft
    still owns an overwhelming market share,
    with 91.8 percent of all traffic coming
    from Windows-based machines. Among non-
    Microsoft operating systems, both OS X
    and Linux have stalled since October
    2011, hovering around 6.9 percent and
    1.2 percent, respectively.
http://www.zdnet.com/latest-os-share-data-shows-windows-stil...


Market share if one thing, but we are looking at a segment of gamers which may be split differently. Who says there isn't a larger proportion of Linux gamers in that segment, for example? If Humble Bundle is any indication, it looks like the Mac gamers segment and the Linux gamer segment is actually pretty close in size.


> as well as MS platforms (perfectly/badly is another question)

Not all of them unless you count using an OpenGL-to-DirectX wrapper library. "Cross platform" sometimes means writing all the platform specific code yourself.


These questions are the entire point of the article.


Yeah, don't worry about those mobile devices.

We've got plenty of directx support for those too. What are they again? Surface? Windows phone? I think I know one guy who has one.


Not an Apple or Google product? Gotta be awful! Love how people treat competition as something awful when it doesn't follow their own brand loyalty.

Edit: It looks like the authors snark isn't as obvious to others as it was to me. I'm all for cross platform development and doing whatever makes sense your company/brand in terms of development, all my side projects use tools that make them as portable as possible.


He didn't say anything about the quality of Windows RT / Windows Phone products. Sounds like he was just implying that they have a relatively small installed base compared to iOS / Android products. That's pretty hard to argue with.

But... this is not very important anyway. There's no reason to have a "brand loyalty" flame war. Arguing and flaming about this on the internet is not productive. Let's just have a practical discussion about how to target multiple mobile platforms.

If I was serious about writing a cross-platform mobile game, I would use some middle-ware like Unity, Unreal Engine, Cocos (yes there is a version for Windows Phone), etc. This takes care of the underlying differences between OpenGL ES and Direct 3D, so the developer can focus on the game itself and not worry too much about the rendering engine or graphics API.

If I was writing some other app that used OpenGL ES, I could still make a port for Windows Phone / Windows RT by using a wrapper for the graphics-specific code. Such wrappers already exist, and it is not too terribly difficult to roll your own if you prefer.

A lot of times, when you see a big game that is available on iOS, Android, AND Windows Phone / RT, usually they have done this:

- Use middle-ware as discussed above already

AND / OR:

- Write the majority of the logic in C++ (all of these platforms have ways of utilizing C++ code), and use a graphics wrapper that isolates the rendering code, so you can work with OpenGL ES or Direct 3D interchangeably.


No one was making a qualitative judgement against Windows Phones, just a quantitative comment about install base.


Agreed, someone applying similar snark in a OS X or Linux story would be quickly downvoted.


This isn't to say you won't possibly need more than just DirectX. But this is to say you quite possibly need at least DirectX.


I suspect there isn't a huge intersection between phone/tablet developers and desktop/console developers. I haven't played a game in a while, but it seems like the two markets are still very different.


One is usually enough for a guy.


I have one of each.


And to continue the story started from the stackexchange post, again the depreciation turned out to be a good decision. Guess what OpenGL ES that is used today on mobile devices and WebGL in browsers basically is?


OpenGL was not in any way shit when DirectX started overtaking OpenGL.

It became so around the time GPUs started being programmed by shaders - prior to that era OpenGL was quite pleasant compared to DirectX, yet DirectX mostly overtook OpenGL


I'm not sure I agree with your last point. With the exception of Direct3D, pretty much everything from DirectX has been deprecated at one point or another and replaced with external libraries that usually originate from Xbox development.


DirectInput, for instance. Over-engineered and badly designed, then virtually abandoned (because who ever gets promoted for fixing bugs? You get promoted for features). Definitely not what anyone really wanted from an input API.


thank you.. this is awesome.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: