The next few years are going to be interesting for 3D graphics APIs. With Microsoft's DirectX 12 (or more accurately, Direct3D 12) and Khronos' Vulkan on the horizon, both offering lower driver overhead and "to the metal" access to hardware, developers will have more headroom than ever to build resplendent (and hopefully fun) games. Which API will prove the most popular? Valve reckons Vulkan is the way to go, if only because it's multi-platform.
Speaking at SIGGRAPH 2015 -- pretty much the event when it comes to advances in 3D -- Valve's Dan Ginsburg put forward some compelling reasons for Vulkan's superiority over Direct3D 12. You might recall that Vulkan is essentially the reincarnated form of AMD's Mantle, which originally beat Microsoft to the punch when it came to giving realtime 3D a kick in the arse.
The crux of Ginsburg's talk is that if you want to create an engine that supports a new API, are you going to go with the one that's Windows 10 / Xbox One only, or the one that will work everywhere, including older versions of Windows?
Here's his specific comments (courtesy of DSOGaming's John Papadopoulos):
"Unless you are aggressive enough to be shipping a DX12 game this year, I would argue that there is really not much reason to ever create a DX12 back end for your game. And the reason for that is that Vulkan will cover you on Windows 10 on the same class of hardware and so much more from all these other platforms and IHVs that we've heard from. Metal is single platform, single vendor, and Vulkan... we are gonna have support for not only Windows 10 but Windows 7, Windows 8 and Linux."
In recent times, Microsoft has started sharing its code base, with the biggest example being Roslyn, an attempt by the company to open source a chunk of its .NET technology. Will it toy with the idea of allowing Direct3D 12 to spread beyond its own hardware?
Even answering that question with a hypothetical (and impossibly unlikely) "yes", it'd be light years behind where Vulkan is now with vendors and developers.
Yet, despite the strong pros of Vulkan, I can't help but think of the "Direct3D vs OpenGL" war of yesteryear. OpenGL offered what Vulkan does now -- a multi-platform 3D API -- yet, DirectX prevailed and with it, Windows as a gaming platform. Don't get me wrong, outside of Microsoft's garden, it's basically OpenGL everywhere (with the exception of the PS4 and recent versions of iOS, which have their own APIs), so Khronos obviously did something right.
But can it unseat DirectX 12 on Windows 10? A difficult task to be sure.
If you want to listen to the SIGGRAPH 2015 presentation in full -- all two hours of it, you'll find it below.
And the clip up top? It's GFXBench's Vulkan benchmark, which also made an appearance during the talk.