JustBeingReal said:
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. |
I'm not inventing a problem where there isn't one. I'm taking a very pracitcal stance to this, and while none of what you're saying is false per se, it's very let's say "theoretical" in the sense that it looks good on paper, but not in the real world. This is a legit concern that you're completely undermining. You're downplaying how difficult such a thing would be to do. It absolutely isn't trivial. It certainly isn't "very easy". It might be "theoretically possible" but Nintendo has to execute this idea of yours. Nintendo has to develop an API that is not only super low-level, but incredibly powerful so that developers can just "pick the settings" (making it very high level) but all of the calculations that involve executing these settings have to be carried out on an a razor thin API using little to no processing time or resources (otherwise it's not low level). Are you seeing a problem here? Sure it might "be possible" but it certainly isn't practical.
On top of that, the team that would be doing it is Nintendo. Have you ever had to work with Nintendo? Used their Dev kits or test kits? Used their developer tools? Called up Nintendo developer support? I have. Let me tell you - They are about a decade behind where Sony and Microsoft are right now in terms of making developer tools that are actually useful compared to Sony and MS's offerings. I'm not joking - the original Xbox's developer tools are better and more powerful than the Wii U's in a lot of ways. And now you're going to take a team that for all intents and purposes has been mailing it in for generations, and now make the most advanced, sophisticated, yet light weight and easy to use API the video game development world has ever seen. And you tell me it will be "easy" for them? Sorry. It isn't easy. It's not trivial. Not for anyone, and not for Nintendo.
In an ideal world, sure developers would "only have to choose" x or y to get their game running on a different spec console, and the lightweight API would just make the magic happen, and *poof* game on new platform with minimal testing. But realistically, you and I both know that would be an incredible achievement, would likely win Nintendo dozens of engineering and desgin awards world-wide if they pulled it off. I do not have that confidence in them. Its fine that you think that Nintendo can pull that off, but I'm taking a far more realistic and grounded approach.
P.S. I also love how you act as if this isn't the funamental issue, but and then chalk it up to something that from what I can see, cannot be solved with an API. The ability for CPU core to send and recieve commands from the GPU simultaneously little to do with the API, and far more to do with the hardware design itself. No amount of API coding is going to get around a hardware bottleneck, and create new physical communcation channels where there are none. But I suppose you think that's trivial as well - making super lightweight ultra powerful APIs getting hardware to do something it's not designed to do. Maybe it's theoretically possible, but in the real world, a team actually has to program it to work that way, and that would not be trivial.