Wednesday, July 1st 2020
Cyberpunk 2077 a DX12-Only Release on PC
Marcin Gollent, Lead Graphics Programmer at CD Projekt RED revealed in an interview with PC Games Hardware that cyberpunk 2077 would only support DX12 on the PC release, which means that gamers playing on either Windows 8 or (god forbid) older windows releases won't be able to partake in the cyberpunk dream of Night City. A special note to Windows 7 users though - the game will be supported on Windows 7's DX12 implementation as well. The decision to cut out other API's isn't an opaque one - Marcin Gollent himself said that DX12 was chosen as the only development target due to the fact that it's the rendering API for the Xbox family of consoles (including for the next-generation ones), and thus, a decision to streamline the rendering pipeline and API support was made.
The decision was also made, according to the developer, because DX12 is the birthplace of DXR - and CD Projekt Red has already announced that cyberpunk 2077 will be making heavy use of raytracing on the PC (and will almost certainly bring the same magic potion to the next-generation update to their yet-unreleased game). Marcin Gollent also said that the game will be compatible with all DX12 GPUs - but the DX12 Ultimate badge might be of interest to some of the hardware features that may be deployed in the final version of the game. A question, of course, could be asked regarding how some games' DX11 API actually delivers increased performance over the DX12 version. But with the game being originally developed with DX12 in mind, we'll have to believe it's the best version it could be.
Source:
PC Games Hardware
The decision was also made, according to the developer, because DX12 is the birthplace of DXR - and CD Projekt Red has already announced that cyberpunk 2077 will be making heavy use of raytracing on the PC (and will almost certainly bring the same magic potion to the next-generation update to their yet-unreleased game). Marcin Gollent also said that the game will be compatible with all DX12 GPUs - but the DX12 Ultimate badge might be of interest to some of the hardware features that may be deployed in the final version of the game. A question, of course, could be asked regarding how some games' DX11 API actually delivers increased performance over the DX12 version. But with the game being originally developed with DX12 in mind, we'll have to believe it's the best version it could be.
61 Comments on Cyberpunk 2077 a DX12-Only Release on PC
@Recon joked about wanting DX8 (which is very old) because the article is about the game being DX12 only, as if this being DX12 only would be some issue.
@Caring then reacted to the article in general stating that DX12 only is not problem (in this day and age)
Then @Recon having just posted the previous joke doubled on it by making the same joke again as a reaction.
@Luxluther then misinterpreted the line "there is no DX8" as if @Recon claimed DX8 does not exist instead of the comment's intention of Cyberpunk not supporting it.
@Recon then seemingly did not understand @Luxluther's comment and reacted to it as if @Luxluther said that the game does support DX8 with the "yes there is" part and reacted saying @luxluther would have no way of knowing this yet as the game is not out.
phew...all I can say people is, take your time and read before reacting sometimes.
In order to support multiple APIs, the developers have two options, either create multiple render paths (for everything), or create an abstraction layer which unifies the APIs while adding overhead. Pretty much all DirectX 12 games so far chose the latter, partially because most use generic off the shelf game engines so they don't code anything low level anyway, and also because most programmers these days loves layering abstractions. So in essence, "all" DirectX 12 games to date are built to simulate DirectX 11, which means sub-optimal render queues etc.
This is essentially the same problem Crysis had back in the days; A DirectX 10 game built in the "DirectX 9 way", so it performed better with DirectX 9.
DirectX 12 is widespread enough that we should be able to do it exclusively, and build the engine around it. And my opinion is that it's better to do one API right, than to do two APIs wrong. Huh?
Everyone knows the cool guys use Glide :cool:
The existence of translation layers like those described above would also serve to lengthen this transition as they would effectively hinder developers from getting to know the new API properly. Either that, or this was a choice of choosing two APIs (DX12 and Sony's) rather than three. Either way it's a more efficient use of resources, and about damn time!
Also, project management often like to be able to make last minute decisions, like choose a new platform late in the development process. Such decisions never lead to good code or bug free games though.
But I think this is more due to the development philosophy today about abstracting away all the hard/dirty stuff to make development "easier". But this is really a fallacy. While there isn't principally anything wrong in writing light abstractions to make things cleaner, abstractions that hide what's actually going on is ultimately a fool's errand, which leads to code which is hard to reason about, debug and maintain. If you want to abstract something because (some of) your team members are not skilled enough to deal with it, then train them or replace them. Programmers who don't understand what they're working with are bound to write horrendous code, no matter how hard they try. I've seen countless examples of where "experienced" developers write spectacularly bad code only because they don't understand what's going on underneath. This principle is not limited to graphics APIs, but all development. Absolutely.
I would go so far as claiming it should only be a last resort, like when your requirements changes too late to rewrite something properly (which is never a good thing, BTW).
The earlier you kick off those training wheels, the better.
Developers can choose to do their abstractions at different levels, even multiple levels is fairly common. The lower these abstractions are, the less you are able to take full potential of the underlying graphics API. The higher the abstractions are, the more you are able to tailor the code for the graphics API; render more optimally, batch things, use more unique features, etc.
Taken to the extreme, you can for instance abstract the graphics API at the lowest level possible, then add another layer (or multiple) for basic primitives (textures, vertex buffers, meshes, etc.), and then another for entities (e.g. terrain, player, ingame pickups etc.). In this example, only the lowest layer will use the graphics API directly, while most of the codebase is API agnostic. The advantage of this is greater portability (in theory), but the disadvantage is the massive overhead, difficulty debugging, difficulty achieving advanced rendering techniques, lack of features (as you are probably restricted to the common denominator between your APIs), and in reality all the workarounds that you will end up making all over the code base.
Halo Reach on PC had audio issues specifically because Windows 7 had an older version of XAudio, v2.7, which had transition and volume problems. Only recently has there been an update from Microsoft on Win7 for XAudio, but that game has been plagued with audio problems because of this for almost a year. Had they axed Win7 support, it would have launched without that problem.
And the people who hate it with a passion can suck it up and either upgrade and be supported or stay on legacy software and be left behind. They're not entitled to continued support for new games when the OS has exited extended support, period. I specifically meant games that are on the scale of this game. AAA games. TW3, which is the perfect example as it was made by the same company in 2015, didn't support XP. And of that subsection of users, how many are in the demographic to actually buy this game? I'm guessing it's mostly computers that cannot be upgraded for development reasons, as crucial programs that a company/user relies on has not been updated. That's why I said minority.
While I appreciate that some might want to hold on to their OS for a bit more, everyone understands that we're approaching the end of Windows 7 support for new games. We're already at the point where it's extra effort to support it for DirectX 12, and very soon developers will be faced with the tough decision to drop features or drop support. We also have to remember that most games are "maintained" for up to several years after launch. Launching with Windows 7 support and then dropping it, would not be popular either.
Vulkan based games will be in a better position for now, those shouldn't require much extra effort to support Windows 7, and for the time being Nvidia and AMD still offers driver support.
But if a user wants freedom, then there is always team penguin…
Its just a market like everything else and for MS it is also their user base. They'll nudge you in the right direction and when you're beyond saving (if you still say 'XP is great in 2020' for example), its your own problem isn't it... Same goes for game support. If you're not on 10, don't be surprised it won't work going forward. Usually though product support extends long beyond official OS support. If you want to keep legacy systems at some point its just a good idea to freeze things and stop adding new stuff, after all, nobody is coding for your specific config anymore.
First, you do not have the right to dictate terms to anyone other than yourself. Kindly stick that in your pipe and smoke it.
Second, whether or not a "person" is "entitled" to continued software support has little to do with whether or not the OS maker continues support for the OS themselves. Many versions of Windows have continued to receive new versions of software and games because the platform was/is popular regardless of whether or not Microsoft supports it.
Third, just because someone like yourself fails to understand the reality at play in the world doesn't change the world at all. Software and game devs will continue to support Windows 7 until THEY decide it is no longer worth their time & money. And so long as 20%+ of the planet continues to use the OS it will remain a popular platform devs chose to support. Exactly. CDPR isn't. If they are continuing to support Windows 7, it's because their market analysation team ran the numbers and decided that the money is there, enough to justify the effort.
I would be willing to bet the proportion of enthusiasts sticking to W7 for ideological reasons is a tiny proportion of the remaining W7 user base, with the rest consisting of either systems that can't be upgraded for some reason and the proverbial grandparents' PC that hasn't been upgraded because the user neither understands how nor why to do it themselves, are unwilling to pay for help, and those around them don't have the time.
More of this is it just lives on the Hypemachine, and delays upon delays, lot of changes. The new gig trailer starts "Night city, the city of endless oppurtunities.." screams GTA clone (Watchdogs2) with all that happy go theme.