• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

id Software dev: Developers adopting DX12 over Vulkan literally makes no sense

I used the shit out of my gravis gamepad and pc fighter 6. Bullshit.

That's pretty far back. I started with this

UOpRgc5.jpg
 
I used the shit out of my gravis gamepad and pc fighter 6. Bullshit.

Anectodal evidence ftw.

Controllers for PC were incredibly niche. Even Microsoft couldn't keep its peripheral division afloat for long, despite making the best controllers of the era. I still have a couple fully functional MS Sidewinder flight sticks (that have no current Windows drivers, ironically) but I have no delusions that many other people had one. YMMV, but just because you used them doesn't mean they were common.
 

Krejlooc

Banned
Anectodal evidence ftw.

Controllers for PC were incredibly niche. Even Microsoft couldn't keep its peripheral division afloat for long, despite making the best controllers of the era. I still have a couple fully functional MS Sidewinder flight sticks (that have no current Windows drivers, ironically) but I have no delusions that many other people had one. YMMV, but just because you used them doesn't mean they were common.

LOL the gravis gamepad was no where near uncommon, it was the most common PC controller for ages. To the point where most games from 1993-1996 had specific gravis gamepad support. The gravis gamepad became an unofficial icon for PC gaming of that time, in fact, appearing in many games like Jazz Jackrabbit. The gravis gamepad was so common that even modern 486 games, like Retro City Rampage, include Gravis Gamepad support by name.

I like how you call my claim "anecdotal" when yours doesn't even have an anecdote attached in the first place.
 

Skinpop

Member
You arent a serious dev unless you build your own engine? You want cash starved indie developers to waste their time reinventing the wheel?

Neither of these statements are realistic nor reflective of modern games development.
that's not what I meant. perhaps a bit poorly formulated on my part but a skilled(and serious) programmer recognizes the huge benefits of writing his own code and the hidden costs of using "generic" frameworks. From a software quality point of view, it's a no-brainer unless the scope of the product is huge or competence is lacking.

ue4 and unity aren't wheels though. out of all the libraries I've ever used I've maybe come across 4-5 that I'd consider proper wheels, meaning that they do what they do almost perfectly and slots seamlessly in to any kind of project. Frameworks by definition can't be wheels(in the sense that you mean). Fact is most "generic" code is awful not because it's written poorly but because applications are never generic things.

yes I think indie developers should at least seriously consider writing their own engines if they have solid programmers.
 
You and a couple thousand other people. X360 pad was an absolute game changer for the PC and to argue otherwise is to be wrong.

There were plenty of controllers before the 360 one. People were mainly using the logitech dual action pad for years. But since the button inputs in nearly every game that supports gamepad caters only to the 360's type for the most part, it's now the most popular. Well that and anyone who got a 360 also got a controller to use with their pc.
 

Krejlooc

Banned
that's not what I meant. perhaps a bit poorly formulated on my part but a skilled(and serious) programmer recognizes the huge benefits of writing his own code and the hidden costs of using "generic" frameworks. From a software quality point of view, it's a no-brainer unless the scope of the product is huge or competence is lacking.

ue4 and unity aren't wheels though. out of all the libraries I've ever used I've maybe come across 4-5 that I'd consider proper wheels, meaning that they do what they do almost perfectly and slots seamlessly in to any kind of project. Frameworks by definition can't be wheels(in the sense that you mean). Fact is most "generic" code is awful not because it's written poorly but because applications are never generic things.

yes I think indie developers should at least seriously consider writing their own engines if they have solid programmers.

I am a serious and skilled programmer, and I recognize that the realities of development means that developing your own game engine from scratch is entirely unfeasible these days.
 

Krejlooc

Banned
You and a couple thousand other people. X360 pad was an absolute game changer for the PC and to argue otherwise is to be wrong.

Couple of thousands, lol. They manufactured over a million for the Philips CDI alone; when gravis was purchased in 1997 they were the biggest manufacturer of PC controllers in the world.
 

LordRaptor

Member
Yep, it totally changed the game. It eliminated support for all other game pads in most games!

Seperating Dinput and Xinput just for the 360 controller I believe was another Xbox division decision that ws poorly implemented on the PC.
No reason why Dinput devices shouldn't have rumble, and no reason why Xinput devices should be capped at a maximum of 4 devices attached, regardless of connection type.

e:
Back On Topic though...
that's not what I meant. perhaps a bit poorly formulated on my part but a skilled(and serious) programmer recognizes the huge benefits of writing his own code and the hidden costs of using "generic" frameworks. From a software quality point of view, it's a no-brainer unless the scope of the product is huge or competence is lacking.

But... that's pretty much the point.
Videogames are some of the most complicated, highest required performance and largest scope software projects that exist, and require expertise across dozens - if not hundreds - of different disciplines.
It is a practical necessity to use third party frameworks to complete a project; I mean, just think about the different elements of a modern title that need to be considered; realtime low latency networking, advanced low latency rendering techniques, physics simulations, realtime data reading, writing and decompression... all of that before you've even thought about things like gameplay.

For older graphical pipelines, the efficiency boosts would be things like IHV 'ambassadors' coming over and tweaking your code to run better on their GPUs which was basically a black box and reliant on day one drivers to get those boosts.
I can't imagine there are many people in the world familiar enough with technical graphics programming that aren't already in jobs reliant on that skillset - ie basically IHVs and engine developers - to really eke out the benefits DX12 / Vulkan provides on paper.
 

TheSeks

Blinded by the luminous glory that is David Bowie's physical manifestation.
Gemüsepizza;209695225 said:
What? DICE did not create Vulkan

Someone already corrected you, but: Yes, they did. Mantle was a DICE->Frostbite inititaive that AMD took up and then that became Vulkan through AMD and Chronos.

And all signs are pointing to them using DX12 for their future games like Battlefield 1.

And? Doesn't mean DICE (especially Repi/Frostbite team member that made Mantle with a few others) aren't going to do both. CTE asked them to implement DX12 into BF4. That remains to be seen (DICE-LA: "We'll look into it.") Doesn't mean they are going to drop their own API just because they support the other suddenly.
 

dr_rus

Member
Someone already corrected you, but: Yes, they did. Mantle was a DICE->Frostbite inititaive that AMD took up and then that became Vulkan through AMD and Chronos.

AMD donated Mantle to Vulkan working group to be used as a foundation and reference. Doesn't mean that Mantle became Vulkan. There are certainly traces of Mantle in Vulkan but it's a new API nevertheless as Mantle never supported anything but some Radeons on a Windows platform - everything above that in Vulkan was written by Khronos members.
 

hodgy100

Member
most serious devs still make their own engines and I'd argue indie developers should do so as well if they have competent programmers. I have no clue about ratio but it would certainly be a disaster if every game made in the future was made using ue or unity.

dude no. plz

There is absolutely nothing wrong with using existing game engines (Unreal / unity) re writing code for the umpteenth time just so you can say you wrote your own engine is inefficient and a waste of time. Custom engines are also absolute hell to maintain, are full of seriously hacky code that is likely badly commented / difficult to understand and they often come with half baked shitty dev tools. Pre made engines like unreal and unity are a god send to game development.

I mean as a programmer, I love making my own stuff. But as a game developer I recognise it isn't viable to continually do this in industry.

on the topic of DX12 and vulcan. I can see it being something that only engine developers like Epic and Unity plus the odd outlier will really make use off efficiently. smaller dev teams will want to use the easier to program but less optimal OpenGL and DX11.
 

Skinpop

Member
I am a serious and skilled programmer, and I recognize that the realities of development means that developing your own game engine from scratch is entirely unfeasible these days.
well I disagree and since tons of games(from one man projects to aaa games) using custom engines are released every year it's factually incorrect that developing your own engine is infeasible.
developing you own generic prefab engine like unity. yeah that would be stupid but no game actually needs that.

But... that's pretty much the point.
Videogames are some of the most complicated, highest required performance and largest scope software projects that exist, and require expertise across dozens - if not hundreds - of different disciplines.
It is a practical necessity to use third party frameworks to complete a project; I mean, just think about the different elements of a modern title that need to be considered; realtime low latency networking, advanced low latency rendering techniques, physics simulations, realtime data reading, writing and decompression... all of that before you've even thought about things like gameplay.
I don't agree and there are plenty of games with custom engines released every year as proof. The requirements you mention apply to all games as a whole but each game - especially indie games only need a subset of that expertise. And obviously if you write your own engine you will be able to make informed decisions about any third party code you might consider using based on if it actually makes sense to put in your project.

I think people are confused about engines when they have this image of an engine being a separate entity like the unity prefab editor with all its tools and stuff. 99% of games only need a fraction of that functionality and doesn't have to worry much about the robustness of tools. And if you are going to be cutting edge on anything, you will likely have to implement it yourself anyway to fit your needs. good generic software that just fits everything isn't a thing, it doesn't exists. even stuff like the c++ standard library which has been worked on for decades by some of the smartest programmers in the world is unusable for many applications.
 

LordRaptor

Member
I don't agree and there are plenty of games with custom engines released every year as proof.

I was talking about third party frameworks in general, not just engines that already incorporate those frameworks.
There are vast chunks of things that it is literally not worth the time rewriting yourself.

If you are making, say, a 2D physics based game, I would say there is a high probability that you would be using Box2D or Chipmunk2D, because - honestly - why would you need to rewrite your own approximation of physics?
 

Mr.Mike

Member
I hope for a future where most video games come out on Linux. Although I appreciate that even if a game is made with Vulkan it'd still probably be more work to port it to Linux than it's worth. At the very least it seems Valve will be releasing all of their games going forward on Linux in an attempt to diversify away from Windows.

Programmers like Linux, and Valve wants to get away from relying on Microsofts platform, so maybe that'll give it the push it needs to start that positive feedback loop of more games -> more adoption -> more games and apps. The Linux GUI's now are nice enough, I think, that Linux could maybe make it mainstream, but I'll admit the chances are slim.
 

KOCMOHABT

Member
As a hobby dev I've only worked with Dx11 before.

So I read through this thread and I'm thinking to myself - wow I really gotta learn Vulkan.

I search the web, find a few tutorials and documentations and after a while I realize my Graphics card does not support Vulkan. FeelsBadMan.

I was impressed by the compatibility of Vulkan just to find out i don't qualify :(
 

Durante

Member
And if you are going to be cutting edge on anything, you will likely have to implement it yourself anyway to fit your needs. good generic software that just fits everything isn't a thing, it doesn't exists. even stuff like the c++ standard library which has been worked on for decades by some of the smartest programmers in the world is unusable for many applications.
Most of the time when I have heard someone say that they can't use the STL it was because they don't truly understand how it works (or how C++ in general works really -- which is admittedly not the most trivial thing to understand), or how it can be customized.
 

petran79

Banned
I'd say DX's 'secret' killer app was DirectInput, which enabled finding and remapping of any connected device to be basically transparent to an end user.
Bear in mind before we had super useful things like USB ports, people were hooking up controllers via the frigging printer port

PC games were limited by the two button keyboard limit for years. To think that we used to play Mortal Kombat sharing the same keyboard....

Some gamepads had 4 button support and in order to play a game with 2 gamepads you needed a special adapter provided by some games, eg Primal Rage. Not taking into account calibration issues, especially on DOS. Game would suddenly lose direction. Nba Live 95 especially took a while till calibration would work

Having a keyboard was the easiest solution. Now, after almost 15 years, I can play 6 button fighting games on a keyboard without issues.

Back then gaming on PC was indeed a unique experience.
 
Gemüsepizza;209692507 said:
I did. WIndows 7 will become irrelevant for AAA gaming very fast.

This whole discussion basically boils down to this:

On one side, we have devs who want to use the latest technology with the best tools and documentation. Technology which gives them the ability to make the best games with as much comfort as possible, in the shortest time possible.

On the other side we have ideologists who think they need to fight against big bad Microsoft and their evil proprietary DX. They quickly dismiss the realities of game development and the advantages of DX. And when they realize that neither devs, nor customers and publishers really care about their hypothetical fears, they don't understand the world anymore. See those tweets above.

The discussion doesn't boil down to that. You may see it that way, but you'd be wrong.
 

JaseC

gave away the keys to the kingdom.
Aren't you confusing 'requirement' with 'advantage' ? Not only that, but using UWP doesn't make your render pipeline work on both PC and X1 with a single code path. At most it's a framework in which your actual game code runs, which for PC and X1 still requires different codepaths if you want to get decent performance.

Developers aren't required to create Windows Store versions of their game when releasing on the X1. And I realise that UWP isn't some sort of magic button -- that's the point. Microsoft has been making a lot of hoopla about the universality of the Universal Windows Platform as it pertains to both customers and developers since it was announced that the Xbox will receive Windows 10 app support, but if DX12 on the PC and X1 are still decidedly different beasts, then UWP doesn't really make anything easier or simpler other than perhaps distribution should the Xbox Store and Windows Store be unified. Even something like VLC, for instance, would have a different D3D-based path for video output.
 
There's nothing preventing it--Apple just likes walled gardens. All Apple would have to do is make sure OSX was compatible with Vulkan--I believe they were realy into OpenGL for quite a while, so odds are half the work is already done/figured out.
The fact they don't even support some of the newer opengl version should say enough.
Unless that situation changed.
Thanks for the replies, but that doesn't really answer my question. Yes, Apple have no interest in Vulkan and have their own thing happening that only works with the stuff they're pimping. Can't the same be said of MS? MS want everyone using DX12 on W10. Vulkan only distracts from Microsoft's goals, so who did the work to put it on Win7, 8, and 10? I assumed it would've been engineers working for Khronos. Was it actually MS?


Gemüsepizza;209747539 said:
But DX12 is also on Xbox.
Err, XBox has even less users than W10. Like, way less. Vulkan passes far more users than DX12 does.

Gemüsepizza;209748775 said:
If you had read the tweets, you would have seen that an actual DX12 developer did comment on this guys tweets, and said that the difference between DX12 on Xbox and PC is about 1%.
For comparison, what's the code difference between two Vulkan platforms? The same 1%? 10%? Once your Vulkan code passes Win7, Win8, Win10, and Linux, how much of your code will need to be changed when you port the entire project to DX12 in an effort to pass an additional 20M Bone owners?


Yep, it totally changed the game. It eliminated support for all other game pads in most games!
Another solid MS victory!
 

TLZ

Banned
No surprise at all, seems that since Microsoft plan to have 99% of the world computers with Windows 10 until the end of the year will not succeed, most of the developers will follow the same path. It just makes no sense to exclude all Windows 7 users, unless you have a very lucrative deal with Microsoft to only release your game on Windows Store.

Honome has spoken.

Regarding the above poster about 45%, wouldn't vulkan work with both 7 and 10? Isn't that obviously better than just targeting 10?

Edit: I just realized the 'above poster' is now on page 1 and this is page 7, lol.
 

Shaneus

Member
Regarding the above poster about 45%, wouldn't vulkan work with both 7 and 10? Isn't that obviously better than just targeting 10?
Exactly. Exclusively targeting Vulkan doesn't mean you're excluding W10 users at all, so by using Vulkan *over* DX12, you're expanding your potential userbase (on Steam) from 45% to 85%. And that's just the Windows users... you add in the Linux users who'll also have the benefits of Vulkan support and you'll have cover even more.
 

anothertech

Member
This seems to mostly if not entirely negate the notion that UWP is advantageous if you're a game developer targeting both Windows PC and the X1.
dam. that is... correct.

not a good message for UWP fans. Shoot. Is this really going to turn into GWL2.0?
 

Vinland

Banned
Gemüsepizza;209745658 said:
But they do not want that.

The overwhelming majority of developers/publishers do not want to support countless, different OSs. Having to support Linux is probably a nightmare for many devs, because it will eat so many resources, which could be spent on making better/cheaper games instead. And the same is true for consumers, they also do not want to run their games on anything other than Windows. Because why should they? Everything works.

His statement was that Vulkan is pro consumer while DirectX 12 is not. His example completely explained to you why it is pro consumer. All you stated was pro publisher and pro platform holder and dangle a F.U.D. covered carrot about something something cheaper games just believe them.
 

Slavik81

Member
I know Apple have their own thing going on with Metal, but what prevents Vulkan from happening on the Mac? Does Apple actually need to be involved in some way? Who got Vulkan running on Win7?
On Windows the GPU vendors control the drivers and can choose to support whatever graphics APIs they want. On OSX Apple controls the drivers and seems to have chosen not to add Vulkan support.
 
On Windows the GPU vendors control the drivers and can choose to support whatever graphics APIs they want. On OSX Apple controls the drivers and seems to have chosen not to add Vulkan support.
Really? They block AMD and Nvidia from releasing Mac drivers for their GPUs? How and why do they do this? =/
 

Vinland

Banned
Most of the time when I have heard someone say that they can't use the STL it was because they don't truly understand how it works (or how C++ in general works really -- which is admittedly not the most trivial thing to understand), or how it can be customized.

Really?

STL is an essential part of the language. Can't imagine anyone coming from another language that couldn't grasp it. And I don't see how Java and .Net collections, generics and futures wouldn't baffle a new programmer any less than STL would.
 
Really? They block AMD and Nvidia from releasing Mac drivers for their GPUs? How and why do they do this? =/

They do it because people are literally morons who are willing to pay a premium to apple for less control over everything except their uninformed bragging rights. The apple crowd are a truly miserable bunch of people who really love being treated like shit.
 

Vinland

Banned
Really? They block AMD and Nvidia from releasing Mac drivers for their GPUs? How and why do they do this? =/

Apple has never allowed driver support for graphics cards outside of official provided ones through Apple updates that I recall. It is nice being the king of the world isn't it.
 

Renekton

Member
Really?

STL is an essential part of the language. Can't imagine anyone coming from another language that couldn't grasp it. And I don't see how Java and .Net collections, generics and futures wouldn't baffle a new programmer any less than STL would.
Gamedev developers don't like STL. Or at least it was much-maligned in earlier C++ version.
 

TheYanger

Member
Yep, it totally changed the game. It eliminated support for all other game pads in most games!

This gamepad war that came up is ridiculous, anyone that has been PC gaming for decades knows how much of a shitfest it was prior to the 360 becoming standard. Even if you could be assed to get your gamepad running fine, support was all over the place and it might as well have been a niche purchase.
 

Slavik81

Member
Gamedev developers don't like STL. Or at least it was much-maligned in earlier C++ version.
Notably, EA developed an EASTL with some changes they felt made it more suitable to game development. Some explanation here:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html

In addition to being handy for developers, I think it had some small impacts on the C++11/14/17 standards and was an influence on the design of the Rust standard library.
 

nasanu

Banned
for what purpose? Vulkan is much worse solution than custom low-level API for fixed spec hardware.

Because if it's open source and seemingly not from a large company then it's automagically better. Games will run 200% faster and be 1000x more awesome.
 

Vintage

Member
Has any experienced developers commented on quality of both products? Ease of use, stability, support, speed? The open-platform audience has always been an argument for OpenGL with it's every iteration, but developers still used DirectX because it worked.
 

Durante

Member
Really?

STL is an essential part of the language. Can't imagine anyone coming from another language that couldn't grasp it. And I don't see how Java and .Net collections, generics and futures wouldn't baffle a new programmer any less than STL would.
I'd argue that the standard libraries of those languages more simple to understand -- not necessarily from the perspective of a general programmer, where they are more or less equivalent, but certainly from that of a high-performance oriented engine programmer who really wants to know exactly what is going on. E.g. the semantics of when implicit move or copy construction happens, what an x-value is as opposed to a l- or r-value etc. are a bit more complicated than what's going on in a purely reference-based language like Java.

That's not a complaint about C++ by the way, these mechanics are actually mostly brilliant and like most things in C++ are tailored to allowing the creation of 0-overhead abstractions.

Also, this is kind of OT :p
(And it applied to modern C++ more than 03 and earlier)
 

moniker

Member
Really? They block AMD and Nvidia from releasing Mac drivers for their GPUs? How and why do they do this? =/

They don't.

They do it because people are literally morons who are willing to pay a premium to apple for less control over everything except their uninformed bragging rights. The apple crowd are a truly miserable bunch of people who really love being treated like shit.

Morons. Right.
 
Top Bottom