DirectX Version Number Abuse

Actually DirectX is NOT updated.

Those are SDK updates bringing additional documentation, preview materials, updated tools etc… so there is no need to change the DX version.

The Managed DirectX D3DX part is updated and gets new version number each time.

If only MS was not interested in monopolizing everything and we had OpenGL games that were gasp multi-plaform.

But then, we’d probably have issues with ICD mini-drivers…

I am a program manager at Microsoft.
I’d like to point out that the link Spacedog has posted is what you should go by.

I think the confusion exists because there are essentially two part of a DirectX SDK download.

  1. The runtime, which is a redistributable that game developers redist along with games
  2. Libs, Samples docs etc. that game developers use to build their games.

Since 2003, the runtime/redist has been frozen at DX9.0c. The runtime has not changed since then. Period.

However, there have been SDK updates every 2-3 months that package up the frozen DX9.0c runtime and updates the libs and samples etc. These are what have versions of the form DirectX 9.0c (date).

If there are any additional questions, please send mail to directx@mictosoft.com

Here’s the reason why this versioning scheme is dumb:

Say a user, for whatever reason, manages to end up with your application installed, but not the D3DX DLLs. It doesn’t run. The user suspects a DirectX problem and installs DirectX 9.0c, but it doesn’t help. So the user contacts your technical support staff, and you have to tell them:

“Oh, that DirectX 9.0c installer won’t work. You have to use the DirectX 9.0c installer that comes with our product, even though it looks like it’s installing the same thing.”

The only time I’ve actually had a problem not installing Dx9 from a game (and I always say no) is the BF2142 demo and that doesn’t actually COME with a DX9 redist…

Also I don’t believe this claim - “Since 2003, the runtime/redist has been frozen at DX9.0c. The runtime has not changed since then. Period.”

Uh what? So why, if the runtime has not changed do I need to install a new one?

In any case it’s stupidly confusing.

Some people are not bothering to read. It’s been quite clearly explained that although the runtime hasn’t changed, other bits have which is why there is a new directx redist every two months. This has been explained so many times including in the one of the replies which was quoted so I don’t get what’s so hard to understand

However I do think MS needs to come up with a new system. Clearly the current one is not working because we’re getting a lot of clueless and stupid users who are getting confused. More importantly, I’m agast to find that MS recommends games silently install directx. I HATE APPLICATIONS OF ANY SORT THAT THINK THEY KNOW BETTER THEN ME. So do A LOT OF USERS. APPLICATIONS SO LET THEIR USERS DECIDE WHAT THEY WANT TO DOPERIOD No ifs, no buts nothing. If you need to do stuff silently do avoid problems with stupid users you need to come up with a better scheme. It is important to remember that this stupid silent install has caused no ends of problems for users of Windows x64. Because the stupid directx install fails, the stupid game fails. Any gamer on Windows x64 has probably had some experience with Orca due to this exceptionally stupid design. So, I repeat, PLEASE STOP THINKING YOU KNOW BETTER THEN THE USER. You don’t. The user SHOULD ALWAYS BE TOLD AND ALLOWED TO ADJUST WHAT YOU INSTALL!

Hear hear!

Hey, we have another one, released on 12/13/2006 and still 9.0c

Ok, so the core runtime hasn’t changed, so its version doesn’t change. Sure, that makes sense. But Direct3D, which these days is the main reason developers USE DirectX, IS changing versions with every bi-monthly update. I’ve found no way to update the D3D ‘add-on’ without installing the DirectX runtime. In this sense, D3D IS part of the DirectX runtime package. And since its version is changing, the runtime package’s version should change. This is common sense. WTF.

I’ve also found no reasonable way to check for the version number of D3D. It’s not in HKLM\software\microsoft\direct3d, where one might expect. I want our http installer to intelligently decide whether the user needs to download and install a DX update to run our game. Currently I have to explicitly search for the d3dx9_30.dll that appeared in the release we decided to build against. I’m not willing to make them download the entire DirectX runtime package on top of our game binaries ‘just in case’.

I’m downloading feb2007 version- because I have phantom issues in one game and not any others. Maybe a silent install of something else broke it?

It would seem you don’t always have to upgrade to version 9.0c.

The game EverQuest began to require 9.0c. I was unaware of this and tried to launch the game. I was given a missing file error for the dll file: d3dx9_30.dll

Being uncertain of the effects of 9.0c on a machine with a copied version of Windows XP I tried instead to download d3dx9_30.dll to my Windows /System folder. The game will now launch and I do not have version 9.0c

At least Vista stops the madness by finally changing the version number to DirectX 9.0L.

Thats not really a change. DX9.0L is basically 9.0C modified to run in the vista WDDM, there are no functionality changes, and infact, this has caused some confusion because you have some people thinking it means some sort of functionality change.
However, this IS changing with DX10 and DX10.1, MS has apprently comitted to bringing out new DX versions in full versions rather then peice meal.

I have installed directx 9.0c a thousand times and I have a game that when I try to install it it tells me that I need to install directx 9.0c. what do I do? Please help me.

How to fix directx. Download 9c in a seperate drawer. Install it, everything should be there but your version will still be 9b. Run regedit find the directx drawer. Hotkey Local Machine/Software/Microsoft/Directx. Double click version,type 4.09.00.0904. This will change 9b to 9c when you open dxdiag. Everything now works for me.

WRONG! The program is (deleted) Microsoft and their (deleted) version numbers. They CLAIM to have a way to detect the DirectX version – but they lie.

How do I know? I just tried it on my Vista (DirectX 10) box. DirectXSetupGetVersion says: version 9.0c.

(delete) them and the horse they came in on.

MS did the same thing with an earlier version of MDAC. Caused no end of problems. Since MS has the Windows installer that can chek numeric file versions and product versions, I’d like to see a blanket policy of “no letters in version numbers, and always increment for a new release”.

Regarding Leaf’s comment, "The 9.0c relates to the core runtime which has remained the same for some time. The updates to the runtime download include D3DX and managed DirectX which are updated bi-monthly along with the DirectX SDK. These components have their own version number.

In theory a user shouldn’t need to download a new runtime if they have 9.0c because the updated components should be installed as part of the game/application that uses them. Unfortunately this isn’t always true, so Microsoft updates the runtime download so that ‘bad’ applications can just point users to install the DirectX runtime. It would probably be better to have two installs (core and extra components) but I guess that would just cause more confusion."

Alternatively using the product version number intelligently alongside the file versions would correct this. Leave the core component version numbers alone, update the product version.

Anantha should take note particularly; MS included the Product Version resource in the very earliest specs; why not use it?

Regarding SpaceDog’s comment, “The perceived problems with DirectX versioning and game installs is mostly a result of lazy/stupid game installer writers. I should know, I work as a software engineer at a game company. I repeatedly have to educate our build/installer engineers about the proper procedures for installing DirectX, which are fairly clearly outlined, if you take the time to research it.”

So what else is new? ;

I’ve only been in one or two companies where the people in charge of the install are even -aware- of the MS recommendations. Read and understand them? Never. ;

Installation and support are almost always afterthoughts.