By using this site, you agree to our Privacy Policy and our Terms of Use. Close
potato_hamster said:
Soundwave said:
potato_hamster said:
zorg1000 said:
potato_hamster said:

You do in console development. It's hardware - > engine for the most part (there are some exceptions). Skip the API. You don't seem to understand that.



Why exactly do consoles have an API then?



My apologizes. I have been vague and bit misleading. Consoles do in fact use APIs in similar ways to PCs. However, consoles use two different kinds of APIs. There first kind are lower-level "to the metal" APIs that interact directly with the hardware in a way PCs do not. This is not what most people mean when they refer to APIs. These low-level APIs are more streamlined more effienct, and, are optimized specifically for the single hardware spec. The console also has higher level APIs, which interact with the OS, controllers, networking etc. this is what most people refer to when they talk about APIs.  You can still actually send commands to things like the processor or GPU directly, but this isn't as common as it used to be. I was trying to make it easier and I ended up complicating things.

It was disingenous for me to say that consoles don't use APIs to interact with the hardware. They do. But they're not the same as the APIs that PC engines use and work in a fundamentally different way that calling them APIs in my experience tends to confuse people more than it does when I say they don't really use APIs.

Here's a little blurb on exactly what I'm referring to:

http://www.psdevwiki.com/ps3/RSX#RSX_Libraries

PC APIs are equivalent to the PSGL. Consoles have layers below that, including the ability to program to directly interact with the hardware.



 

The thing is though Nintendo is not beholden to make a platform just one way. Why can't a home platform have an API setup more like the PC if at the end of the day this serves Nintendo's needs of today better? It's not as if the world would stop turning. 

And the PC industry I imagine would be a pretty different place if there were literally just 2-3 different hardware congifurations from the same exact manufacturer, period. 

They can, but they would be throwing away very much needed performance, and limiting the capability of game and engine developers in doing so.

Just because technically can be done, but that doesn't mean it's a good idea to do so. If you have a console that's say 1.5x as poweful as the Wii U but from a development point of view it might barely more capable since their control over the device has to go through a relatively bloated API. Thus the games that come out for sucha  console, might look pretty much the same as Wii U games, aside from a few marginal improvements,  then consumers might have a hard time seeing the point of "upgrading".

Might not be the best move just to make development on multiple platforms easier when there are plenty of other things Nintendo can do to bridge that gap without pulling off such a dramatic move.

 

Nintendo wouldn't be throwing anything away, they'd be gaining so much more, because resources aren't dedicated to making games for 2 or more separate platforms.

Also you're ignoring DX12, Vulkan and Mantle, all of which are not bloated APIs, rather they're all low level and you know what? It's not necessarily the level of abstraction that brings performance gains anyway, it's the ability for all CPU cores to be able to freely talk to the GPU as and when they need to, rather than each core having to wait it's turn to speak or for all CPU cores to speak through a single thread.

Also there's the matter of a HSA set-up reducing the need for excess reads and writes, along with newer Asynchronous Compute tech allowing developers to make better use of GPU time.

Developers would literally only have to pick settings for each platform, when they optimize their game. No one is saying that Q&A testing isn't going to happen or that optimization to make sure things run as they should isn't going to happen here, but you're essentially trying to invent a problem where there isn't one.

Having to optimize for 2 platforms, with the same OS/API, development tools and architecture would be very easy. Hell Nintendo's own tools would likely undergo much quicker improvements because they're not having to divide their teams between 3DS and Wii U, with each existing in a vacuum.