In reality, for most developers, it is a non-issue to bringup a new graphics API backend. See, for example, Arseny Kapoulkine's experience porting to Metal: http://zeuxcg.org/2016/12/01/metal-retrospective
I'm a developer and I get paid to write hardware accelerated renderers and for the past two years I've been recommending Vulkan.. I'm exclusively using Linux these days for software development. Sometimes it's not about what you're targeting for deployment but the capabilities of the development machine. For example, I do like Xcode, but I can't use it for Vulkan development, even if my ultimate platform isn't macOS/Apple.
Apple dropped the ball on Vulkan and I do hope they support it eventually.
We develop server based hardware-accelerated renderers and compositors for web applications, e.g. dynamically generated product images. None of those targets are relevant. Think ImageMagick but done on hardware + 3D geometry in many cases.
Yes they do, just indies and FOSS devs on HN don't.
The software development culture on the games industry is to make use of the best way to squeeze the graphics performance of a given piece of hardware until the last drop of juice.
This is an industry that was born from rewriting their whole games for each type of gaming platform they wanted to sell games to, in Assembly. In many cases using a dumb hexdump editor connected over a serial cable.
Having an abstraction layer over all graphics API is a minor inconvenience that can be easily done in one month.
Plus it is something that is only written once for a specific engine.
No, they don't. Because it's not free and wastes their time. You just keep repeating this weird idea, that developers like this balkanized landscape. They don't. No one likes it, except for lock-in freaks who created it to keep cross platform development expensive.
> Having an abstraction layer over all graphics API is a minor inconvenience that can be easily done in one month.
Quite false. Take a look how long it takes major engines (like Unreal) to implement such abstraction. And how long it takes them to iron out bugs caused by underlying differences. And then try to claim it's a good thing they need to waste all this time. I don't really understand why you personally like this mess.
If you have experience, you'd know it's time consuming and taxing. You either like this time wasting, or you benefit from this taxation (working for MS?).
Only FOSS devs see it as time consuming and taxing, professional game studios see it as an opportunity to explore hardware performance to the last drop.
For anyone with experience in graphics programming, the time to triangle is just like doing hello world or playing fizz buzz.
The last time I set my feet inside of a game studio was more than a decade ago, but it started with an S not M, and I still have contacts in the industry.
> Only FOSS devs see it as time consuming and taxing
You don't need to see it, it's a simple fact. Engines like Unreal, Cry/Lumberyard, Unity and etc. aren't FOSS. Plus they are commercial products. Ask their developers if current balkanized mess helps them delivering features for game developers faster. The answer is no, it takes them much longer.
So please stop claiming that it's not a problem. It only shows that you aren't sincere.
The reality is, in house tooling and engines do use multiple graphics api's, and that's perfectly fine. They are not slapdash implementations; professional graphics rendering programmers know and use these API's (See the GPU Pro book series, and Real Time Rendering), it's their profession.
A commercially successful multi-platform game like skyrim, use at least 4 API's (DirectX, NVN, PSGL, and DirectX), but no OpenGL or Vulkan to be seen at all.
Anvil and Frostbite have no existing opengl driven software titles. And that's perfectly fine.
And using those 4 APIs isn't free, don't you think? It means a lot of resources are spent on supporting them, instead of fixing actual bugs or developing better features. I.e. they pay the tax. This applies to in-house or third party engines all the same. And it's not perfectly fine by far.
I agree it's not free. But will you make return on the effort/time/money invested?
EDIT: Do you think debugging vulan/opengl is free? Software houses like valve have had to make their own tooling to debug and optimise for vulkan and opengl.
It's a bet you would win. And not just for Graphic api's but asset API's.
Some engines like idtech4 (mb/ma, lwo) and anvil (max) directly use the asset formats which are created by an artsists desired application, not collada or fbx.
93% of Android devices don't support Vulkan, PS, XBox, UWP don't support Vulkan and Nintendo Switch API is mainly NVN, in spite of having Vulkan support as well.
Also this is the list of "great" Vulkan games released thus far.
Apple have a graphics API. Microsoft have a graphics API. Sony have a graphics API. Nvidia have their own libraries and compilers and so do AMD.