Hacker News new | ask | show | jobs
by pandaman 3438 days ago
DX12 is the base for XBox One API so it's going to be a thing, I suppose, until MS pulls out of console business (but I don't see why they would, the original XBox was a bigger disaster yet they stayed). After all, both Sony and Nintendo use their proprietary APIs too.

The reason you need a proprietary API on a console is that you cannot make a game running on a $200-300 piece of consumer electronics compete with a game running on a $1000+ PC if they both use the same API. There is a lot of work a DX/OpenGL driver does behind the scenes to make the same code run on GPUs of different architectures while sharing the same device with other processes. When you target only one GPU in exclusive mode you can do the same things so much faster.

1 comments

Nintendo started to use Vulkan, so things are moving in the right direction, though pretty slowly.

> The reason you need a proprietary API on a console is that you cannot make a game running on a $200-300 piece of consumer electronics compete with a game running on a $1000+ PC if they both use the same API.

Their primary reason is to tax developers who want to release games cross platform. In practice, no one prevents console makers from making more expensive high end consoles. Those who want demanding games, would buy more expensive hardware. Console is just a type of human interface, nothing inherently in it requires it to be cheap. Same as in regular PCs. The only reason current incumbent consoles are like that is lack of proper competition in their space. Compare it to mobile hardware where competition is fierce.

I don't develop for Nintendo so I am curious, is it like PS3 support for OpenGL or is it an actual native API?

And to reply to your edit: It's true, nobody prevents anybody from making $1000+ consoles. They sell for shit though. Even PS3 suffered from being a $600 console a lot, a $1000 console would be as successful as the Steambox.

The Switch supports Vulkan but it also has its own native API. It's a bit early to tell but it looks from my perspective a lot like OpenGL on PS3, though perhaps with a bit more adoption since Vulkan is more suited to console-style dev and the Switch has less "weird" hardware like the SPUs to get in the way of a standard API.
It's not about supporting weird hardware but about removing the unnecessary abstraction. E.g. in Vulkan you cannot directly write non-uniform inputs for the shaders because different GPUs may need that data in different formats and layouts. There is absolutely no reason to do this on a console, which only has one GPU and the layout of its data is very well known so you can just save a whole bunch of unnecessary code and gain an ability to use GPU compute to set up your draws on top of that.
And how much of a benefit it gives vs requiring to make a completely different set of shaders which you can't even reuse? That's a strong claim that you can't have good performance, after SPIR-V is translated by the compiler.
I am not sure what are you talking about here (how is setting up inputs for a shader related to SPIR-V, which is IR format for shader code?) but, as I said and you denied, this how you get a game running on a $200-$300 console look the same as a game running on a $1000-$2000 PC.
They support OpenGL and Vulkan now natively on their Switch console. I.e. proper support, and not some fake pseudo API.

> They sell for shit though.

All it means, that most of those who use consoles don't want to play high end games. And console makers aren't incentivized to market that, because they don't have much competitors.

Compare it to mobile hardware as I said. You could argue, that people also don't want to overpay for it. Yet, mobile hardware makers rush to refresh it way more frequently than console makers do, and prices there are more realistic. Competition helps.

> a $1000 console would be as successful as the Steambox.

It would surely sell less than cheaper ones, but same goes for regular PCs. Only a minority of enthusiasts buy high end computers. The vast majority buy weak laptops and such. But gaming market can address both use cases. I don't see how interface of controller vs mouse + keyboard is supposed to change that.

> All it means, that most of those who use consoles don't want to play high end games.

It's actually opposite. Console audience (maybe with exception for Nintendo) wants to play high end games. This is why high end games sell much more on console SKUs. If by "high end" you mean AAA, of course.

Well, if they really want high end games, they shell out for PCs and high end GPUs, because as you said, current consoles simply are behind. No API can work around that.

By high end I mean demanding, those which heavily load the GPU, and benefit from better ones.

So IMHO those who stick to current day consoles, are OK with not getting the max settings in demanding games. But why those who do want more, can't play their games using controller / sofa style gaming? I.e. I don't see an inherent relation between console style gaming and avoiding more expensive hardware.

API works around just fine like I said. I cannot recall any recent (in the past 10 years) AAA games, which don't run on the consoles. PC exclusives have not been setting graphcis bar for a long while.
On which platform? I would LOVE some sources on this! (seriously! I would really appreciate it)
See https://www.khronos.org/conformance/adopters/conformant-prod...

(Search for Nintendo there).

They support Vulkan on the Switch, which shows that they now see benefits in using cross platform APIs.

<3 thank you! This makes me so much happier about my Switch preorder for gamedev purposes :)
For me personally, Nintendo is way too locked up and DRMed. I'm more interested in something like this: https://www.kickstarter.com/projects/smachteam/smach-z-the-h...

But it's good that they are pushing Vulkan forward.