Hacker News new | past | comments | ask | show | jobs | submit login

I thought that Windows and PlayStation also supported Vulkan ??

EDIT : Ok, I see, more details here : https://news.ycombinator.com/item?id=33742823

----

Also, not every game has to target every platform, especially when we're talking about radically different inputs / outputs !

I'm honestly surprised about Factorio going to the Switch (especially since they supposedly started working on it before the Steam Deck, which I could have seen as having been a «tech demo stepping stone»), considering how much Factorio relies on precise mouse clicking !




Windows doesn’t officially support Vulkan. It’s exposed by third party drivers, but isn’t the official API (and was indeed limited in use for a while). One could argue that it’s moot though but there are ramifications.

PlayStation supports GNM not Vulkan.

Afaik the switch is the only recent console to support Vulkan but it’s not preferred, instead using the NVN api. Not counting the SteamDeck since it’s a general purpose computer.


> Windows doesn’t officially support Vulkan. It’s exposed by third party drivers, but isn’t the official API (and was indeed limited in use for a while). One could argue that it’s moot though but there are ramifications.

There aren't really any practical differences and if anything, Direct3D being official never stopped it from rotting away at a faster rate than OpenGL and Vulkan - older games relying on Direct3D, even D3D9 despite how widespread that one was, are way more to likely to be broken in modern Windows than games using OpenGL and gamers nowadays often end up using tools like DXVK (which implement Direct3D on top of Vulkan) to get their older games work properly even under Windows.

The main reason Direct3D is more widespread than OpenGL and Vulkan is that D3D was also available on Microsoft's consoles which were themselves very popular. It isn't a coincidence that games were as likely to use OpenGL as Direct3D (or even offering backends for both) at the past but somewhere around the mid-2000s when XBox and XBox360 consoles started taking off Direct3D also took off.


DX9 was a steadfast because of DX10 was both a highly breaking update and required a new , highly unpopular OS.

Unfortunately that meant DX9 had the most market share at the time and for many years after.

While I agree that consoles helped the adoption of DX10/11/12, I disagree that it was driven mainly by the popularity of the XBox.

The big reason IMHO, and it’s similar with Vulkan, is that GL was fractured with tons of vendor extensions, much higher variation of feature support etc… DX was a more stable and consistent target.

There’s also the renewed investment by Microsoft into DX at the time, with a lot of investment into abstracting the other parts of the OS. That was probably driven by the Xbox like you say, but I think it’s a subtle difference in that it became the better API surface to target vs GL+other audio and input libs, instead of the ubiquity of the consoles.


Vendor extensions aren't really an issue in practice though - if your program needs the functionality the extension provides, you'll use it and have it as a requirement. If it is good/essential functionality, it'll either become part of ARB or EXT at some point or at the very least will be implemented by multiple vendors.

It isn't like applications have to support all of extensions or anything like that. If some functionality was provided by, e.g. D3D10 then the same functionality would also be provided by OpenGL + some extensions.

If anything extensions are a good thing because it is thanks to them that OpenGL wasn't stuck in OpenGL 1.1 that Microsoft provided with Windows and how a lot of new hardware functionality was exposed to applications before even D3D had access to it - without even being locked to a specific OS or OS version (like the Vista you mentioned). And unlike Direct3D you didn't had to do a D3D9->D3D10/11->D3D12 complete rewrite of your code, you just used the new functionality where that makes sense.





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: