4 ms·
It's not that using a low-level API isn't "required," it's that it's a lot more work -- a very prohibitive amount of work. Because on PC, you can have Nvidia ca
by cwyers 12y ago
It's not that using a low-level API isn't "required," it's that it's a lot more work -- a very prohibitive amount of work. Because on PC, you can have Nvidia cards, ATI cards, Intel on-board graphics... and of course it's not like an Nvidia Fermi-based card is the same as a Kepler-based card. What OpenGL or DirectX does is let you write to an abstraction of what the underlying graphics card does, and then every graphics card provides a driver that translates the OpenGL/DirectX calls into code that runs on that particular GPU. If you wanted to write a PC game that bypassed the API and ran like a console game, you'd have to write as many different code execution paths as there are graphics drivers available for PC. It's a logistic nightmare. And that doesn't even get into how you handle cards that haven't been released yet.
But on the console, the target is constant, and every Xbox One or every Playstation 4 is identical to every other of the same console on the market. The overhead of the OpenGL/DirectX driver reduces performance, and unlike in the PC market it's no longer solving a problem -- you can very easily support two to three consoles without resorting to abstraction layers, and new consoles only come out sometime between five and ten years, so you don't have to do a lot of churn to keep up with hardware revisions.
Valve isn't shipping consoles, they're shipping living room PCs -- with all the diversity of hardware that implies. Some Steam Boxes will use Nvidia, others Intel or ATI. Games designed to run on Steam Boxes need to support all of those. They need OpenGL. But current consoles don't, and no amount of OpenGL stumping by Valve will change that, because OpenGL solves a problem the consoles have never had.
- shmerl 12y ago> But on the console, the target is constant, and every Xbox One or every Playstation 4 is identical to every other of the same console on the market. That's exactly what should change. Such situation can exist only because of lack of competition. With increased competition the overhead of writing bare metal code to support many targets will become prohibitive on consoles as well, and console makers will be forced to support portable higher level APIs. Squeezing performance by being closer to bare hardware was more reasonable in the past, when it was too weak and extra abstraction introduced too much performance penalty. Modern day hardware should be already better in this regard. And modern OpenGL isn't introducing much overhead if used properly. > OpenGL solves a problem the consoles have never had. They always had that problem, except there were too few of them and the problem didn't become criticial. Increased competition will blow that problem into different proportions. Supporting 2 console APIs is possible. Supporting 10 is insane and developers should demand a portable layer in such situation.
- cwyers 12y ago> That's exactly what should change. Why? For people who don't want to deal with the Xbox One/Playstation 4 monocultures, there's PC gaming. It already exists. The people who choose consoles over PC gaming choose it because it's more convenient. And that convenience derives in large part from the monoculture (or duoculture, I guess). Low-overhead bare metal programming is what enables the relatively long life of most consoles compared to PC gaming, because developers have time to learn how to get the absolute best performance out of a particular hardware configuration. It costs less money up-front in hardware costs, and it's a lot less work to figure out if a game will work on your system or not (almost no work, actually).
- shmerl 12y ago> Why? Because dealing with many APIs is an extra effort and proprietary APIs make games harder to port to other platforms. Of course those who have unlimited resources are free to write games even in assembly for each platform, but most don't have such resources. > And that convenience derives in large part from the monoculture Convenience of users has nothing to do with monoculture. It has something to do with form factor and design of hardware and software interfaces. Monoculture is just a sick method to lock developers into one platform. Convenience of developers on the other hand should not be based on poor competition. That's a dangerous convenience which leads to stagnation. > Low-overhead bare metal programming is what enables the relatively long life of most consoles compared to PC gaming Which is a double sided issue. Longer update cycle makes development simpler but it also limits creativity by artificial technical limits. The update cycle of consoles can be reasonably more frequent.
- pjmlp 12y ago> Because dealing with many APIs is an extra effort and proprietary APIs make games harder to port to other platforms. Game engine middleware. No sane people should be using 3D API directly anyway, unless they are writing their own engine or learning 3D programming.