DirectX 12, the good and the bad
I'm excited for DirectX12. But at the same time I scared for potential damage it will deal to the console gaming landscape. It is basically a short term gain, for long term pain.
To understand this, you need to understand why consoles tend to utterly decimate a similarly spec'd PC at rendering games. It is not, as I read in a comment section to a blog somewhere "because PC developers are just lazy". It is because the term PC doesn't refer to a specific hardware configuration. It means you can only optimize to the lowest common denominator, and with such a wide array of hardware, this means basically coding purely in D3D or Open GL. On a PC, games are never coded anywhere near "to the metal".
So, for those "lazy" developers to eek the same performance out of PC hardware, they would need to invest millions, if not billions of man hours to ensuring that there are as many builds of the game available as there are reasonably different hardware configurations. This would also mean the death of disc based installations, since there is no way even a fairly trivial game would be able to fit every combination on even a dual layer Blu-Ray disc. In other words, the implications that developers are lazy is simply ignorant idiocy.
Consoles on the other hand are the exact opposite. A PS4 or an Xbox One means EXACTLY 1 hardware configuration. Every console has the same relevant hardware, down to not just the performance, but even down to the chipsets. Games can be optimized to take advantage of every bit of the hardware capabilities and still be assured that the code will run on every console of the same type. This means eschewing many of the higher level API's and coding as close to the hardware as possible.
What DirectX12 aims to do is to bring the two worlds much closer together. DirectX12 won't mean a perfect world for D3D developers. But it will mean that using the D3D library should yield performance much closer to interacting on the same level console developers are able to, but without the drawbacks it would have presented in a much more diverse ecosystem like on PC's or Phones.
You might see where I'm going with this. Gains for people on a platform like the Xbox One who bypass as much of the standard D3D libraries as possible, will see less gain from this. Whereas PC games developers could stand to see huge gains from leveraging the new features. So, while I expect the Xbox One to see some improvement (unlikely anyone completely avoids D3D API), the gap in performance from PC to console should widen in favour of the PC as a result.
In the short term, existing games might simply be recompiled and early games may not take full advantage and so the modest gains the Xbox One will see should help more than hinder. But as the technology catches on, it should result in 2 things. Firstly, more PC games that are FAR more complex that can no longer be made to run at reasonable framerates/resolutions on any current gen consoles and also it will means that the number of mainstream PC video cards that can play the same games at even better quality on PC will grow much more rapidly, making the "PC master race" comments even more abundant than they already are.
In other words... right now an Xbox One or a PS4 runs as well as a PC worth quite a bit more. After DirectX12 really saturates the market, it may end up that an Xbox One or PS4 only runs as well as a similarly cost PC, or worse, a cheaper one. Part of the value proposition of a console today is that it is cheaper than buying a gaming PC that can pull of the same thing.
The one way I think this could work out for Microsoft is if they put out a new OS and reference hardware for a Steam Box competitor. In other words, your console is literally just a dedicated purpose desktop/laptop OS. Its a move that could in my opinion kill console gaming. Sony, can't compete with the library of games available for Windows, not even with Gaikai. So they could end up being forced to be just another OEM for Microsoft.
Honestly though, I don't think either will make any of the above moves, and consoles will simply fizzle out in the next generation or two.
To understand this, you need to understand why consoles tend to utterly decimate a similarly spec'd PC at rendering games. It is not, as I read in a comment section to a blog somewhere "because PC developers are just lazy". It is because the term PC doesn't refer to a specific hardware configuration. It means you can only optimize to the lowest common denominator, and with such a wide array of hardware, this means basically coding purely in D3D or Open GL. On a PC, games are never coded anywhere near "to the metal".
So, for those "lazy" developers to eek the same performance out of PC hardware, they would need to invest millions, if not billions of man hours to ensuring that there are as many builds of the game available as there are reasonably different hardware configurations. This would also mean the death of disc based installations, since there is no way even a fairly trivial game would be able to fit every combination on even a dual layer Blu-Ray disc. In other words, the implications that developers are lazy is simply ignorant idiocy.
Consoles on the other hand are the exact opposite. A PS4 or an Xbox One means EXACTLY 1 hardware configuration. Every console has the same relevant hardware, down to not just the performance, but even down to the chipsets. Games can be optimized to take advantage of every bit of the hardware capabilities and still be assured that the code will run on every console of the same type. This means eschewing many of the higher level API's and coding as close to the hardware as possible.
What DirectX12 aims to do is to bring the two worlds much closer together. DirectX12 won't mean a perfect world for D3D developers. But it will mean that using the D3D library should yield performance much closer to interacting on the same level console developers are able to, but without the drawbacks it would have presented in a much more diverse ecosystem like on PC's or Phones.
You might see where I'm going with this. Gains for people on a platform like the Xbox One who bypass as much of the standard D3D libraries as possible, will see less gain from this. Whereas PC games developers could stand to see huge gains from leveraging the new features. So, while I expect the Xbox One to see some improvement (unlikely anyone completely avoids D3D API), the gap in performance from PC to console should widen in favour of the PC as a result.
In the short term, existing games might simply be recompiled and early games may not take full advantage and so the modest gains the Xbox One will see should help more than hinder. But as the technology catches on, it should result in 2 things. Firstly, more PC games that are FAR more complex that can no longer be made to run at reasonable framerates/resolutions on any current gen consoles and also it will means that the number of mainstream PC video cards that can play the same games at even better quality on PC will grow much more rapidly, making the "PC master race" comments even more abundant than they already are.
In other words... right now an Xbox One or a PS4 runs as well as a PC worth quite a bit more. After DirectX12 really saturates the market, it may end up that an Xbox One or PS4 only runs as well as a similarly cost PC, or worse, a cheaper one. Part of the value proposition of a console today is that it is cheaper than buying a gaming PC that can pull of the same thing.
The one way I think this could work out for Microsoft is if they put out a new OS and reference hardware for a Steam Box competitor. In other words, your console is literally just a dedicated purpose desktop/laptop OS. Its a move that could in my opinion kill console gaming. Sony, can't compete with the library of games available for Windows, not even with Gaikai. So they could end up being forced to be just another OEM for Microsoft.
Honestly though, I don't think either will make any of the above moves, and consoles will simply fizzle out in the next generation or two.
Comments
Post a Comment