Hacker News new | ask | show | jobs
by pdelbarba 2290 days ago
Honestly I feel like D3D12's days are numbered. Tons of engines and devs are moving to Vulkan and while Vulkan has tons of tutorials and documentation, D12 has NOTHING. If you want to just go out and make a D12 game, you basically need to join up with one of the existing DirectX shops that has all the knowledge siloed within.
4 comments

I disagree. Sony / Nintendo use proprietary APIs, Windows and Xbox use DirectX, and Android you need OpenGL ES for compatibility. Apple is self-disqualifying with their hardware and insistence on Metal.

That leaves Vulkan for Linux games. The 1% of the market that no savvy business person would touch with a 10 feet pole.

In Linux land, you'll meet people who feel suspicious of you in the first place for charging for your game, and people who have compiled their GPU driver from scratch, yet blame your game for being incompatible with their wrong compiler flags.

So for almost every game studio, there is no viable market where you could sell a Vulkan game.

Nintendo and Android use Vulkan. Windows supports it as well (along opengl and directX) so it's a bit more than just Linux (which powers Stadia and will likely power most Stadia-clones in the future).

This pretty much only leaves out macOS and iOS, for which a Vulkan compatibility layer exists anyways.

Not quite true, although it tends to be used a lot as Vulkan sales pitch.

Nintendo uses Vulkan on the Switch, but they also have their own Metal like API, NVN.

Vulkan is mostly used by PC ports into the Switch.

Exclusive Switch titles do so via NVN, Unreal or Unity bindings to NVN, not Vulkan.

Android has optional support for Vulkan, since only flagship devices ever bothered to actually provide it, with Android 10 Google has changed it into compulsory API. So only Android 10 or later devices are guaranteed to actually have proper Vulkan drivers available.

Windows supports Vulkan on the classic OpenGL ICD driver model, not available in Win32 and UWP sandboxes, which only allow for DirectX based code.

This is the actual reality, and not that typical Vulkan sales pitch.

>Vulkan sales pitch

I like this. I will use the word "sales pitch" next time other companies does it, which to me is flat out lying. ( Cough; AV1 )

I still dont get why the hype on Vulkan, if you want Android support you will still need to use OpenGL for the majority of devices, given their slow replacement cycle and I doubt it will be mainstream anytime soon.

I agree they you can use Vulkan on most platforms, but if you use an established engine with multiple render backends, then you'd go with the most feature complete or most performant API, which is usually the platform-specific proprietary one.

That would limit Vulkan as a good cross-platform choice to the few developers that do not use Unity or Unreal Engine under the hood.

That is not we are seeing from GDC talks and LunarG surveys.

Vulkan is a PC thing, without any impact on consoles, even on the Swift, NVN is what gets mostly used unless it is a PC port.

Also the subject of this thread, Ray Tracing, was developed by Microsoft and NVidia together and took two years to reach Vulkan.

How long will Vulkan now take to adopt shader meshes?

Interesting. I haven't been following the games industry for a while. Thanks for the insights! Given Microsoft's move towards more open ecosystems, I can definitely see it happening. Especially launching Android devices at year's end where I am sure cross-device gaming (TV + Mobile) will become important. I know Android is increasingly focused on Vulkan
I disagree. Vulkan sounds nice and all, but it's terribly hard to actually use in practice. It has cost me a lot of evenings to compile and run some Vulkan examples. The same thing in OpenGL or DirectX can be done in one evening.

On top of that, Vulkan is much hard to actually use in practice. It's much more low-level than OpenGL and DirectX.