The State of DirectX 12 Games in 2017: Is DX12 Losing Its Steam?

There is a reason why DX11 keeps being developed along side DX12. DX12 was a nice attempt to get some more console focus.
 
There is a reason why DX11 keeps being developed along side DX12. DX12 was a nice attempt to get some more console focus.
Console? Has nothing to do with anything.

It's all about the massive Win7 userbase that publishers can't ignore. Win10 only games are financial suicide.
 
I think part of the reason is that DX11 is really good. Its much simpler to use than DX12. You can do many things with DX12 but it requires a lot of work and optimizing which many developers just don't want to do.
By contrast OpenGL was not up to par with DX11 in most cases. Not to mention that AMD drivers sucked.

BTW I don't really see Vulkan being more popular than DX12, there's what, like 5 or 6 vulkan gams?
 
Console? Has nothing to do with anything.

It's all about the massive Win7 userbase that publishers can't ignore. Win10 only games are financial suicide.

Steam numbers beg to differ...
 
LifeLite, in many cases you are correct, sort of. It is not so much of sticking with what you know, versus how much would it cost to change it.

I have worked in companies who stuck with what was comforatble as it is also cheaper to support. Support being a negative on the balance sheet. Then there were companies who looked at it more long term and saw those benefits outweighing the short term loss.

It really depended on the development cycle and life of the intended project.

Staying behind is considered good business practice. Let the bleeding edge entrepreneurs sort out the bugs and other issues. It is rare to be, and stay, on the bleeding edge and still make money at it, long term. You have to remember, there are very few game companies who can absorb a failure. Most game companies are out of business if they have a blunder.
 
Read in that trailer voice : In a world where exclusives have gone the way of the Dodo, one megacorporation has the guts to offer an API exclusive to its newest spyware *clear throat* I mean platform.

Apart from that one obvious and glaring problem, your also forcing developers to handle the driver compatibility AFAIK with DX12. Its sold as having extra control and input into the DX API, but the reality is it and every practice like this is just pushing work (costs) from company A to B with no additional revenue. I would be very surprised if any of this really took off anytime soon.
 
Steam numbers beg to differ...
No they don't. Currently the #1 OS on Steam is Windows 7, weighing in at 70% marketshare. But, we'll be generous and go with their results before they included Chinese users. That would put the number of Windows 10 users at around 45% if I remember, with Windows 7 and 8 totaling to about 50%. Who in the hell is going to give up half their marketshare to make a Windows 10 exclusive?

At the end of the day, developers like to be able to sell games so they can keep the lights on. That means no DX12 exclusives unless they're exclusively being bankrolled by Microsoft. It's like he said, it would be financial suicide. Maybe in 5 years that will change, but MS handcuffing DX12 to Win10 all but ensured it's going to have a very slow adoption rate.
 
Its nothing about Windows 10. Its about the development cost.

Its about equal to ask to deliver the entire DX12 stack that cost much more than DX11 for free and in the end offers absolutely nothing.

Vulkan is even more dead than DX12 and it works on all versions.
 
The developers want an API that cuts development time AND for the same CPU/GPU provides a visually better outcome for the end user. If it doesn't do both, only one side benefits and thus makes it a no go in terms of today's economic demands for AAA games. DX11 provide no economic benefit to the dev's and minimal to the users.

The fact that I am having a hard time finding a link comparing the technical differences between DX11 and DX12, other than MS press releases, should is telling enough that DX12 was DOA.
 
Well how much time was it before DX11 game really started to take advantage of the API?

Its possible, but I still think that pushing the workload onto the developer for optimization under DX and Vulkan is the real hurdle. Time will always tell though.
 
Well how much time was it before DX11 game really started to take advantage of the API?
It was about 3 years before we saw DX11 exclusives, but that was the result of enough people finally getting off XP to make it viable for developers. Here's roughly what it looked like:

DirectX9 - ran on 98SE, XP, 2K, etc. Games requiring DX9 were out in about a year.
DirectX10 - ran on Vista at a time it wasn't popular, Games requiring DX10 basically never came out.
DirectX11 - came out with support for both Vista and 7, which slowly became the main ecosystem with still plenty of XP holdouts. About 3 years before games required it.
DirectX12 - no games coming out requiring it yet (except from Microsoft). Probably will take until 2020 to see it required, though it's anyone's guess
 
Well how much time was it before DX11 game really started to take advantage of the API?

It depends on the context of the question. Are you talking about the feature set of DX11? If so, a lot of developers would have jumped all over it, early on, but the bloat in DirectX prevented a lot of if from being used or risk not having enough CPU power left to run the game, on a wide array of computers.

You want to commit suicide as a developer? Write a game which will only run on 1%, or less, of the available computers on the market. Every iteration of DirectX, since DirectX8 has gotten more and more bloated (i.e. slower).

So, most developers have been waiting for hardware to catch up (fast enough) to actually use the features in the bloated DX11 API and still be able to run a game. This problem is even more stressful for games which emply a lot of physics simulations (car games, flight games...).

In house, most developers have things done which you may not see for years. It is code/graphics to test the loads on the computer system. When I retured, I saw things which were near photographic realism, but will not see the light of day for another couple of years, if at all, depending on the path hardware and operating systems take.
 
I still love how tech sites state "no increase in performance with DX 12" when using high-end hardware to test, when DX12, Mantel, Vlukan, et. al., were designed to primarily allow lower-end hardware to perform better. I have an older CPU and older GPU, nowhere near the "peak" performance that is normally used to test, and I have visually noticeable improvement in performance in DX12 when it is an option. I think the lack of adoption of DX12 is mostly due to the optimization being shifted to primarily the game developers, and the companies not wanting to invest the extra resources.
 
Well, it depends on the game and the goal:

DX12, like Vulkan, when properly implemented should increase efficiency. That efficiency can be used to run a game better on less stout hardware, or just as easily to run a game even better on high-end hardware, assuming that there is a CPU limitation affecting performance at the desired settings that results in less than desired performance.

Of course, the two biggest challenges for DX12 adoption are those clinging to Windows 7 and the sheer complexity of the API. And we'd like to weight the issue more toward operating system dependence, but given that Vulkan isn't doing any better with the same dependency, this buck really does get passed back to developers.

Beyond that: engine developers are hard at work supporting both of these APIs. While I don't expect to see non-Microsoft (developed/sponsored) DX12 exclusives anytime soon, I do expect to see DX12 (and Vulkan!) support increase exponentially. They are the way forward, after all, so I expect game developers to rely on engine developers even more, and thus this low-overhead API work will need to be repeated less often.
 
i don't care who or what wins, as long as the industry keeps innovating and giving the developers new tools to work with!
 
Steam numbers beg to differ...

You might want to take another look. 7 is annihilating 10. It's an embarrassment for MS.

The user distrust they've sewn with 10 - it's draconian data collection and forced updates - has crippled it's adoption. And if they do ever give in and provide a telemetry off switch, it'll be too late.
 
Last edited:
Well, it depends on the game and the goal:

DX12, like Vulkan, when properly implemented should increase efficiency. That efficiency can be used to run a game better on less stout hardware, or just as easily to run a game even better on high-end hardware, assuming that there is a CPU limitation affecting performance at the desired settings that results in less than desired performance.

Of course, the two biggest challenges for DX12 adoption are those clinging to Windows 7 and the sheer complexity of the API. And we'd like to weight the issue more toward operating system dependence, but given that Vulkan isn't doing any better with the same dependency, this buck really does get passed back to developers.

Beyond that: engine developers are hard at work supporting both of these APIs. While I don't expect to see non-Microsoft (developed/sponsored) DX12 exclusives anytime soon, I do expect to see DX12 (and Vulkan!) support increase exponentially. They are the way forward, after all, so I expect game developers to rely on engine developers even more, and thus this low-overhead API work will need to be repeated less often.

I will bet you Vulkan and DX12 will go nowhere and high level APIs will continue to rule. DX11 have been constantly developed with new features along side DX12 for the same reason.

DX12 and Vulkan is a nice concept on paper and it stops there. There is a reason why it needs to be sponsored in head and rear end since it cant lift itself.
 
I will bet you Vulkan and DX12 will go nowhere and high level APIs will continue to rule. DX11 have been constantly developed with new features along side DX12 for the same reason.

DX12 and Vulkan is a nice concept on paper and it stops there. There is a reason why it needs to be sponsored in head and rear end since it cant lift itself.

I'll take that bet- and my reasoning, as outlined above, is that the major engine developers are making good progress with low-level APIs.
 
I'll take that bet- and my reasoning, as outlined above, is that the major engine developers are making good progress with low-level APIs.

DX12 have been in engines for quite some time now. And developers wanting to include DX12 support in their game engines would need to make top level changes to their framework structure.

So engines alone does nothing. And that's the problem in the nutshell, always hoping for a around the corner easy fix to the fundamental issue of low level APIs. Even consoles got high level APIs along side low level APIs because it's often a problem and not a solution even on a such fixed hardware base.
 
I'm not going to argue that the engines alone are a panacea- you're right that it's not that simple- however, given that the engine developers are doing the heavy lifting, my bet is that the developers using their engines- not immediately, but for new projects- will start to implement the low-level rendering paths on a more regularly.
 
Any developer with a decent programming staff is not concerned with going directly to DirectX. Every version of DX is pretty simple. If anything, developers have been screaming for an even lower level API to work with so they can control things better.

When you use any graphic engine, you are forced to use that engine's programming paradigm. With DX11, developers could finally do thier own engine using shaders. This is what developers have been wanting. They want to get back into the low level API and take control back away from the bloatware known as DirectX.

High level API's have their place. If you want to do a console game and a PC game, for the XBox, then you are stuck using the high level DX12 API. That also contributes to how poor PC ports of those games run.

The best running games, today, are built around using shaders and avoiding the high level DX API.
 
Any developer with a decent programming staff is not concerned with going directly to DirectX. Every version of DX is pretty simple. If anything, developers have been screaming for an even lower level API to work with so they can control things better.

Have they? Or was it just a small vocal AAA minority?
 
If you want to do a console game and a PC game, for the XBox, then you are stuck using the high level DX12 API. That also contributes to how poor PC ports of those games run.

The best running games, today, are built around using shaders and avoiding the high level DX API.

Xbox supports a high level API as well. And its used by a large part of the games. Best running games? The ultra tiny selection of DX12/Vulkan games filled with issues and often lower performance?
 
Have they? Or was it just a small vocal AAA minority?

I cannot speak to all developers, but the ones I worked for all wanted to be able to get closer to the hardware and around the bloat. It was frustrating to be locked into an API which puts road blocks in the way of accomplishing simple tasks.

Xbox supports a high level API as well. And its used by a large part of the games. Best running games? The ultra tiny selection of DX12/Vulkan games filled with issues and often lower performance?

XBox supports DX12 and any game running on the XBox uses it. When a DX12 console game is ported to the PC, they have, historically, continued to use the same API. It is too costly, for most, to switch to another graphics API or to switch to a shader based engine. Thus the PC version of an XBox console game will usually be DX12 based and will usually run okay, but not as good as it could.

If the game is coming from a PlayStation, then all bets are off as to what they may do. The PC version could range from being crap to being awesome. At best it will be inconsistent.

Overall, a generic API is never going to exact the best performance from the hardware it is running on. There are too many compromises and assumptions made in that API. A lot of game development hinges on the graphic engine of choice and having to live within the constraints of that engine. If you go strictly DX 3D, regardless of version, then you are going to have to deal with the limitations of that choice.

I am not bashing DirectX. It is a decent API, with limitations. If you stick to the API, as provided, you cannot exact the best performance and graphics from your graphic engine. That is just the way it is.
 
Xbox supports more than DX12, just as PS4 got GNM and GNMX ;)

DX12/Vulkan is nice on paper when you ignore cost and time completely. And that's where it goes horrible wrong.

Low level APIs failed on the PC before for the same reason.
 
The latest generation of XBox uses DX12 for its primary graphic API. It does support the older API's as they needed games to run on it, but Microsoft is pushing DX12 down console developers throats and Microsoft controls that whole system.

Every really good graphic engine uses low level shaders for the majortity of their graphics work. It works so much better than using the high level API does. Nice thing about shaders, is once you write them, you can use them all over the place, over and over again. Long term costs are less than trying to switch to a new DX API.

Not sure what "low level APIs" you are referring to.

Vulkan faces an uphill battle as it is not built into the operating system. This makes it difficult as the developer now has to add another layer of support which is not needed for DX12. DX12 is simply not a large enough part of the postential market to make it worthwhile to use at all. Cost and time are secondary concerns.
 
You might want to take another look. 7 is annihilating 10. It's an embarrassment for MS.

The user distrust they've sewn with 10 - it's draconian data collection and forced updates - has crippled it's adoption. And if they do ever give in and provide a telemetry off switch, it'll be too late.

I wonder if that's true if China/Russia are excluded
 
The latest generation of XBox uses DX12 for its primary graphic API. It does support the older API's as they needed games to run on it, but Microsoft is pushing DX12 down console developers throats and Microsoft controls that whole system.

Every really good graphic engine uses low level shaders for the majortity of their graphics work. It works so much better than using the high level API does. Nice thing about shaders, is once you write them, you can use them all over the place, over and over again. Long term costs are less than trying to switch to a new DX API.

Not sure what "low level APIs" you are referring to.

Vulkan faces an uphill battle as it is not built into the operating system. This makes it difficult as the developer now has to add another layer of support which is not needed for DX12. DX12 is simply not a large enough part of the postential market to make it worthwhile to use at all. Cost and time are secondary concerns.

You dont know about older low level APIs?

What MS says and what MS does when it want a popular PC title to Xbox is 2 completely different things.

And Vulkan got the best chance, it's bundled with graphics drivers. Yet on PC its not going anywhere.
 
You dont know about older low level APIs?

What MS says and what MS does when it want a popular PC title to Xbox is 2 completely different things.

And Vulkan got the best chance, it's bundled with graphics drivers. Yet on PC its not going anywhere.

Yes, I know all about different lower level API's, I was not sure which ones you were referring to.

Try and get a new console game accepted by Microsoft, which is not using DX12. Not going to happen.

OpenGL is also bundled with graphics drivers, yet, here we are. However, I agree Vulkan does have a better chance of sucess than DX12 does, at this time.
 
Back
Top