I'm going to agree with cwyers here. The choice of which graphics API to use is not automatic, and "just use OpenGL, dummy!" just glosses over the fact that different developers have different priorities.
OpenGL gets you desktop and mobile all in one fell swoop (well, with a lot of tinkering and hard work). If that's your market, sure, go ahead. If you're writing a higher-end game targeting consoles and PC, then you'll end up doing a lot of extra work porting your engine to consoles and in return have access to a much larger market. Those consoles don't really support OpenGL, at least not as a first-class citizen, but one of them does support Direct3D. Direct3D also has excellent developer support.
Given the good support, good tool integration, and the fact that Direct3D runs on, say, two of your three most important platforms, it's a good choice.
That rhetoric about "the dark ages" is doing nobody any favors, it almost makes it sounds like Sony uses tabs in their source code or something even worse. Is this some kind of holy war, OpenGL versus the forces of darkness?
To clarify, yes, I was talking about PS4 and Xbox One. Those two systems, plus Windows, are the primary market for most AAA games. Just do a search for "2017 video games" and you'll see a big chunk of games that only run on those three systems. OpenGL isn't a very compelling choice there.
> That rhetoric about "the dark ages" is doing nobody any favors
I'm calling it what it is. Their refusal to support Vulkan shows they intend to remain in the dark ages, and continue forcing developers to operate with balkanized non portable APIs. It's like some browser maker would refuse to support HTML and would require you to use ActiveX, Flash or whatever.
"I'm calling it what it is," is a poor excuse for poor rhetoric. Balkanized APIs are a historical fact. Khronos wasn't exactly quick to support modern hardware in the 2000s, everyone paid the price for it, Microsoft picked up the slack, and here we are with developers entrenched in the Direct3D ecosystem. Vulkan arrived about a year ago and that's not exactly a lot of time to sweep away all the inferior APIs before it. These things take time. The engine developers are figuring out how to use Vulkan, and Vulkan support is spreading. It's going to take more than a couple years.
Meanwhile, Microsoft is managing their profitable Windows business by supporting key app developers, including game studios, who are already happily using Direct3D. Are they going to axe it and piss off a valuable segment of developers? No.
The analogy with Flash is a pretty good one. Flash was used everywhere on the web for years and years. Then the iPhone sucked all the oxygen out of the room and Flash died.
Just like everyone switched from Flash to JavaScript so they could get their websites to run on the iPhone, maybe everyone will switch from Direct3D to Vulkan for the same reason. Flash took a long time to die. After Apple announced the iPhone would not support flash, it was five years later that YouTube stopped using it for video. And yes, there were a lot of good reasons to require Flash in the meantime, until the open web caught up.
Dark ages were long and historic too, which doesn't mean they didn't have a lot of problems :) So I find it a proper comparison. Those who insist on keeping things balkanized today (MS, Sony and Co), are slowing down the progress.
> maybe everyone will switch from Direct3D to Vulkan for the same reason.
I definitely hope so. Current messed up state shouldn't exist forever.
OpenGL gets you desktop and mobile all in one fell swoop (well, with a lot of tinkering and hard work). If that's your market, sure, go ahead. If you're writing a higher-end game targeting consoles and PC, then you'll end up doing a lot of extra work porting your engine to consoles and in return have access to a much larger market. Those consoles don't really support OpenGL, at least not as a first-class citizen, but one of them does support Direct3D. Direct3D also has excellent developer support.
Given the good support, good tool integration, and the fact that Direct3D runs on, say, two of your three most important platforms, it's a good choice.