Middleware has already settled that question several years ago, only FOSS advocates without experience in the games industry keep wishing for a different outcome.
Nothing is settled, until the tax of supporting multiple APIs exist. Don't imagine it comes for free. The price is paid, whether it's in the middleware or not. You pay this tax in various ways, from slower progress of game engines, to more bugs in your games. And it clearly demonstrates the intent. Those who push this tax on developers don't want faster progress and higher quality. They want lock-in.
> That is not how professional game developers see it, attending a few GDC would help to understand this.
Do you wish to enlighten the HN community with the perspective you keep teasing? Or should we assume it's simply a narrative you wish to support?
Many companies have invested a lot of money into building various types of middleware as far as I understand it. But no matter how you slice it if you want to support multiple graphics APIs you do have to pay a tax in doing the QA and possibly custom development for each one.
I'm not sure how you get around that but...
> Or if you don't want to pay for a ticket, there are plenty of talks available for free at GDC Vault.
This isn't helpful and does not add to the conversation.
> But no matter how you slice it if you want to support multiple graphics APIs you do have to pay a tax in doing the QA and possibly custom development for each one.
Because the portability of APIs like OpenGL only happens in theory when you restrain yourself to a specific set of hardware.
The combinatory explosion of vendor extensions, driver bugs, shading language differences across versions and drivers, differences between OpenGL and OpenGL ES, force any studio that wants to keep sanity in their code, to write an OpenGL adaption layer anyway.
So if one if forced to write an adaptation layer anyway, then better go for the API that properly exposes all hardware features with less bugs and better tooling support.
This is one reason that while there are third party OpenGL wrappers to game consoles, or even first party ones like on the PS3, no one bothers to use them.
Taking the PS3 as an example, OpenGL ES doesn't define how to take advantage of the SPUs, other than via extensions anyway, thus making the code PS3 specific even if OpenGL ES is being use.
While at the same time less performant than the PS3 native API due to the OpenGL ES driver semantics.
All this assumes, you need to use non portable extensions every time. It could be reasonable in the past, it's way less reasonable today. And using a whole different API is surely more complex, than adapting usage of portable API to differences of potential targets, depending on features which they support.
It's pretty easy to check what's supported by the driver and decide whether to use some optional feature.
Whose experience in the industry says that lock-in is good for development? Sources please. Or may be you have an example of GDC presentations titled "Lock-in - the ultimate driver of engines' progress" or "Drive development costs down by proliferating lock-in"?
> Whose experience in the industry says that lock-in is good for development?
Lock-in is only in the heads of FOSS advocates, not in the game developers that want to squeeze the hardware to the limits of what it can do, while selleing the game.
> Sources please.
Go to GDC, IGDA, PAX, Game Development university degrees events close to you and do some networking talking with actual professional game developers, what is their opinion about graphical APIs.
Attend their talks about graphic APIs.
Read articles on magazines like Gamasutra, EDGE, Game Connections, Making Games about graphic APIs and the industry view on them.
Again, please show me any talk which says, that developers benefit from the need to address vendor lock-in which forces them to support multiple APIs instead of having an option of good cross platform ones. I doubt you can show any such talk.
But I suppose you'll say that it's all imaginary. In such case further discussion is pointless. Figure out, does it exist and you support it, or you think it doesn't exist and you actually don't.
> Again, please show me any talk which says, that developers benefit from the need to address vendor lock-in which forces them to support multiple APIs instead of having an option of good cross platform ones. I doubt you can show any such talk.
You know that even OpenGL requires multiple paths full with extensions for supporting properly various render targets, right?
So if there isn't a talk accessible in the Internet it didn't happen?!
Again, talk to professional game developers, which apparently it is something you don't do.
As for the rest, FOSS advocates see lock-in as an hindrance, professional game developers see lock-in as the right set of features to make their game outsell the others.
That was the magic of computer hardware like Commodore 64, Atari, Amiga.
It was the lock-in to their hardware, to their special processors that made these platforms special, and many of the ports just meh quality.
This is the culture of games industry, pushing an agenda without understanding how the industry works, is like D. Quixote fighting windmills.
> But I suppose you'll say that it's all imaginary. In such case further discussion is pointless.
Of course, because I have the game industry experience that you lack and are unwilling to accept how it actually works.
Which I might add, also caused me issues in the past, because I used to think like you, before having had the opportunity to see the industry from inside.
It's because no-one would both to write such a talk.
Game developers have already tuned their engines for the PS4 and Xbox 1 separately, and in both cases apply substantial specializations, designed to take maximum advantage of exactly the chips, the number of shaders, etc. available.
Any cross-platform library has to make some simplifying assumptions, which will produce a small loss of performance. Now, that's an easy trade-off to make if you are developing for PCs, there are thousands of common CPU/memory/GPU triples you might come across, you obviously aren't going to optimise for each individually. On consoles you do.
There have been a number of consoles that supports OpenGL. No-one ever used it, because the performance wasn't good enough.
> Again, please show me any talk which says, that developers benefit from the need to address vendor lock-in
I don't believe it is a benefit for game developers. pjmlp already hinted some points. I will describe it a little differently.
For OSS hackers it is very important to be able to debug the things on their own. Game developers probably simply don't have the time for this. They instead buy support from the hardware vendor (AMD, NVidia, Microsoft, Sony, Nintendo etc.) if they get into driver bugs that they can't trace down on their own. Even more: In many PC game development studios there sit programmers that are actually financed by NVidia ("NVidia mafia") whose job is to make the game run fast/good-looking on NVidia GPUs (and perhaps worse on AMD ones ;-) ). In particular gamers playing on AMD GPUs are of course critical of this fact for obvious reasons. Now I ask snakily: What service do OSS (including OSS GPU driver) developers offer/deliver to game development studios to make the game-in-production run well on GNU/Linux and/or on open source GPU drivers? This should perhaps answer your question why game developers often don't care about OSS drivers etc.
No-one claims that gamedevs see lock-in as something positive; only that very few AAA gamedev shops care about lock-in - especially for a relatively small part of the production pipeline as a graphics API.
What you see as locked-in API, others see as a great feature set to build on, probably with access to driver developers to help reach even further, past publicly available APIs.
A game engine is not something you can switch out of easily anyway. Everything from game code, to years of asset libraries to decades of source control repositories - all of those are very rigid parts of the production pipeline.