• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.
  • The forums have been upgraded with support for dark mode. By default it will follow the setting on your system/browser. You may override it by scrolling to the end of the page and clicking the gears icon.

To those wondering why game devs haven't embraced DirectX12/Vulkan

Joined
Apr 18, 2013
Messages
1,260 (0.28/day)
Location
Artem S. Tashkinov
hellotriangle.png


Source:
 
Please tell me that all that crap is handled by the game engine. I can't honestly think any developer would write hundreds of lines to do something in Vulkan that OpenGL can do in a couple dozen.
 
Please tell me that all that crap is handled by the game engine. I can't honestly think any developer would write hundreds of lines to do something in Vulkan that OpenGL can do in a couple dozen.

If you aren't writing your own engine, yes.

It's more you have to know how to eek performance out of it in that instance.

The code above is also slightly misleading in that SDL's simple framework is what makes the first one so short, not anything to do with the APIs (except that SDL has limited support for lowlevel APIs, of course).
 
Please tell me that all that crap is handled by the game engine. I can't honestly think any developer would write hundreds of lines to do something in Vulkan that OpenGL can do in a couple dozen.
When every FPS matters.
 
It's not really just the lines of code. It has a chance to be slower than older API until you put more work into optimizing them. Only then can you take advantage of the potential to be more efficient.
 
Rockstars RDR2 runs on both DX12 or Vulcan, Runs even better on Vulcan too and does it very well.
 
This is an extremely braindead comparison meant to fool the untrained eye.

Vulkan simply requires more explicit control and if you wanted to accomplish the same in OpenGL it would either be impossible (most of the time) or require even more code. For instance do you want to turn off entirely the validation layer in OpenGL ? Too bad, can't be done. If you don't want that in Vulkan you can just skip all that and code associated.
 
Also, a lot of lines are used for filling out structs of configs. They can be simplified to one-liners with simple helper headers.
 
Rockstars RDR2 runs on both DX12 or Vulcan, Runs even better on Vulcan too and does it very well.
It also has a 9-figure budget.
 
As with all things in code... if you do the work, you can get it done. If you get the work done for you, you get a half assed solution.

I see it every day. External and SaaS suppliers versus home grown stuff... these APIs... there are no shortcuts and if there are shortcuts, they will cost something. The opposite is also true; if you are meticulous, you can get more done with the same resources. The latter is what Vulkan shows here.

Dev time is costly though. Londiste said it right... the vast majority of devs just HAVE to resort to simpler things. You can also apply all of this to many developments in the market; from DLSS, to RT, to GameWorks, to the demise of Mantle (look at this topic, its a repeat of it really), to SLI support... the list is endless, it will keep getting longer, and the movement in the market is going not in Vulkan's direction but the polar opposite: abstraction layers impose limitations to make applications suitable for many different platforms. Its still nice that Vulkan allows more, but what use are options you can't sell?
 
It also has a 9-figure budget.

Your talking like UBI\EA\Blizzard and many others could not do it, what a load of crap. If RS can do it under crappy Take 2's thumb other big company's could too.

Have you even played RDR2 and actually realize how much is actual in that game ?, never mind it running 40+fps on a 3770 \ 390X which is 8(CPU)\4(GPU) year old now.
 
So, half-cocked thread? Is that the consensus? Just the OP not understanding how this really works?

The original post was written by a prominent game developer with a lot of experience but no-namers on TPU who have likely never written a single line of code feel entitled to opine. No, you don't opine if you have zero knowledge of the matter. It's not an opinion, it's a load of bull crap. You don't opine about quantum mechanics, do you? You don't opine about epigenetics, do you? So, why do you opine about APIs then?

Yes, if you work with a finished game engine, you don't have to work with this low-level code, except often you have to when you find bugs or corner cases not covered by the original developer and you have to release the game ASAP or the engine developer has moved to a new version and your code is no longer supported.
 
The original post was written by a prominent game developer with a lot of experience but no-namers on TPU who have likely never written a single line of code feel entitled to opine. No, you don't opine if you have zero knowledge of the matter. It's not an opinion, it's a load of bull crap. You don't opine about quantum mechanics, do you? You don't opine about epigenetics, do you? So, why do you opine about APIs then?

Yes, if you work with a finished game engine, you don't have to work with this low-level code, except often you have to when you find bugs or corner cases not covered by the original developer and you have to release the game ASAP or the engine developer has moved to a new version and your code is no longer supported.

Because there is more than one answer/ways to do things/reasons why this is the way it is?

It honestly looks like a discussion above both of our heads, not being a devs and all. The difference though is an open mind versus an 'all in' mentality. Keep an open mind. There are coders here and very smart people who can lend a unique perspective to things. Just saying don't hate because others have thoughts on it... 'opine' or not.
 
Last edited:
This is an extremely braindead comparison meant to fool the untrained eye.

Vulkan simply requires more explicit control and if you wanted to accomplish the same in OpenGL it would either be impossible (most of the time) or require even more code. For instance do you want to turn off entirely the validation layer in OpenGL ? Too bad, can't be done. If you don't want that in Vulkan you can just skip all that and code associated.
Yes, exactly. It's a little like showing a program listing in Logo, then C++, then assembly language. OBVIOUSLY, the assembly language program listing will be much longer, and more arcane to understand. But beyond any doubt whatsoever, the program will run way faster when compiled from assembly language than from C++. Also, the tools available for using Vulkan mean that you don't really have to edit the code directly all the time, so it's not like you're always dealing with huge amounts of code for everything.
 
Your talking like UBI\EA\Blizzard and many others could not do it,

No, he's obviously saying non-AAA game studios cannot do it easily.

The original post was written by a prominent game developer with a lot of experience but no-namers on TPU who have likely never written a single line of code feel entitled to opine

I'm willing to bet I've written more than him, just not games. But who cares? This isn't a programmers pissing contest and I don't need a nerd badge.

So, half-cocked thread? Is that the consensus? Just the OP not understanding how this really works?

Nah, it's pretty much true, but exagerated a bit by the use of SDL in an example.

The figure between OpenGL3 and Vulkan is pretty spot on.
 
No, he's obviously saying non-AAA game studios cannot do it easily.
Most non-AAA studio dont use their own engine, they use engine like Unreal/Unity.
 
Most non-AAA studio dont use their own engine, they use engine like Unreal/Unity.

Which in most cases might as well be "not doing it." You really don't earn much benefits that way, as you haven't optimized jack.
 
Which in most cases might as well be "not doing it." You really don't earn much benefits that way, as you haven't optimized jack.
Well, you could hope these engines have their DX12 or vulkan backends optimized for you. That's just wishful thinking most of the time though.
 
Well, you could hope these engines have their DX12 or vulkan backends optimized for you. That's just wishful thinking most of the time though.

It's a low level API. You are the optimizer. If you are depending on the engine to do it for you, you may as well be using DX11 or similar. Your basically depending on the engine to do better than Kernel level code. It will never do that.
 
Well, you could hope these engines have their DX12 or vulkan backends optimized for you. That's just wishful thinking most of the time though.
No doubt the engines are well optimized but these are still a generic tool. Depending on you game, the optimization points and targets can and will be different.
 
It's a low level API. You are the optimizer. If you are depending on the engine to do it for you, you may as well be using DX11 or similar. Your basically depending on the engine to do better than Kernel level code. It will never do that.
Reminds me of Geoff Crammond not using APIs for his F1 games and just leave it all to the processor to run his 3D engine, which was ground-breaking...but also introduced some limitations. It's a case of whatever works better for you, right now I think, slightly more easier because besides mobile devices, you have the same type of hardware and sort-of-the-same framework to create for either Win\Linux\Apple boxes or Consoles.
I think it's great that devs can choose to go either high-level or bare metal for their projects and not a reason for criticism.
For e.g., if you have a project that is so huge that current hardware can't really deal with it unless you tune and optimize and you still want to sell it to the most of the available market, then yeah, do find the resources to optimize the heck out of the hardware and be ingenious, like folks had to be with the first generations of consoles. Otherwise, just basque in the possibility of the excess of available computing power to brush-off a project quicker with a higher-level API.
It's 2020, I mean...we do already beta test get early playtime and report bugs as part of the experience.
 
This "comparison" is misleading at best and downright dishonest at worst. The guy who posted it clearly has an axe to grind against Vulkan.
 
Back
Top