Sign in to follow this  

Does microsoft restrict our possibilities?

This topic is 3298 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Yes, that's the point: Does Microsoft restrict our possibilities as game programmers? I had wondered this question several times before, but I cannot get an answer. Everybody knows that DirectX9 programs needs an OBJECT, and a DEVICE. Once defined your object, you MUST initialize it, with the line:
pD3D = Direct3DCreate9( D3D_SDK_VERSION );
This line initializes our Direct3D object, and in between brackets, you MUST type "D3D_SDK_VERSION". That generates lots of question, but the main one is: "If there is a SDK VERSION, why not a COMMERCIAL VERSION only Microsoft can use?" I think it exists, so, in some way, we can say we are restricted by the SDK VERSION. What's your opinion? is there any commercial version? Does other company games use DirectX9 SDK VERSION? Finally, I would like to say that I am neither american nor british person, I am just from Spanish, and I am an English student. Thank you all, and sorry my English. Looking forward to hear about you, Skinner [Edited by - darkcube on December 6, 2008 1:28:02 PM]

Share this post


Link to post
Share on other sites
Quote:
Original post by darkcube
I think it exists
Why? What purpose would be served by Microsoft keeping game developers from making full use of its SDK?

Share this post


Link to post
Share on other sites
Are you mad? You think Microsoft has a super-advanced 'special' version of DirectX that they reserve for themselves? That would be an absolutely terrible idea, and I'm sure you'd see why if you thought about it for a while.

Share this post


Link to post
Share on other sites
Would be cool though :p

MS are just drip feeding us when in reality they have the technology to make games so immersive you can actually see that Lara Croft wears a padded bra :p Don't know where that last bit came from; weird mood today, my development PC is broke :|

Share this post


Link to post
Share on other sites
No, I'm sorry to say your conspiracy theory doesn't hold up.

You initialize the Direct3D system with D3D_SDK_VERSION, which is a macro defined in a direct3d header that you #include. It's just a number, representing which version of Direct3D you are compiling with.

Now when this line compiles, your exe file will always initialize Direct3D with that version number. If you copy the exe file to a system with a newer version of Direct3D, your exe file will use the new DirectX DLL, but will call that create function with the older version number. The new DirectX will know to use the old version's syntax.

Let me see if I can reword this... Let's suppose you've installed DirectX 9.0 on your computer along with your C++ compiler. You write your program with that line and compile. DirectX 9.0 has defined D3D_SDK_VERSION to be some number, let's say 900 (just for this example - this is not the real number). So the compiler writes in the EXE file, "dynamically link with whatever DirectX DLL is on the system" and then tells that DLL, "Direct3DCreate9( 900 );".

So if you move this EXE to a system with a newer DirectX version, 9.1, then it will be using a new DLL with different functions and such. But the program will use that DLL and give it that version number "900" and the DLL knows to pretend like it's actually a version 9.0 DLL.

So, in essence, it's to preserve backwards compatibility. It tells the DLL which version you compiled with, so that any new changed features will still work in the old ways as they were at the time of compilation.

Does that make sense? :)
~Ricket

Share this post


Link to post
Share on other sites
Quote:
Original post by hymerman
Are you mad? You think Microsoft has a super-advanced 'special' version of DirectX that they reserve for themselves? That would be an absolutely terrible idea, and I'm sure you'd see why if you thought about it for a while.


Not for themselves, but for selected companies whose games would run faster if they would pay more to get better version :)

Share this post


Link to post
Share on other sites
Quote:
Original post by Sneftel
Guthur: be normal.


Roger that :) If i can bury my head in code again sometime soon people tend to not notice the odd idiosyncratic comment :p Anyway just finished downloading FX Composer, going to play with that for a bit.

Share this post


Link to post
Share on other sites
It is there as a compile-time constant to mark what version of directX the code was compiled against, while also allowing the same code to be compiled against future versions of the sdk. Actually, I'd greatly prefer this over developers having to actually dig up and explicitly say what precise version it is that they are working with. This way, it is always filled in for you, yet in a way explicitly stated so you don't have to go wading through various D3D releases to find out what is the version you want. This way, it just works.

It is not a super secret version of directx that is somewhow super duper powerful compared to your vanilla directX. Microsoft is not restringing your capacity to program by requiring you to actually say what version of the sdk you are using.

Yeah, this is a pretty absurd concept.

Actually, I'd say you owe microsoft for your game dev capacity, as right now they are using their girth to push technology forward in this respect, with the hardware community breaking their own backs in an attempt to keep up with bleeding edge specs like DirectX10 when it first came out. Microsoft goes through great effort at great expense to keep windows and transitively the PC in general as the absolutely high power gaming platform out there. Microsoft is big enough to say what goes, and they do it on your behalf, so that you can write a program on their technology, and take it anywhere and have it Just Work.

Share this post


Link to post
Share on other sites
First of all, thank you for you replies.

And now, the big question:

If I belonged to a big game company, with lots of graduated programmers, would we be able to make any nice game with DIRECTX 9 SDK version? (or one as nice as Metal Gear Solid, for instance).

Thank you again,

Skinner

Share this post


Link to post
Share on other sites
Microsoft also keeps an ultra advanced, stable and secure version of windows that uses only 986 bytes of RAM and uses only 4K of harddrive space. It's true, I read it on the interwebs.

But seriously, since you're studying English (and I seriously mean no offense by this, I just wanted to help): I think the word you're looking for is "restrict", not "restring".

Share this post


Link to post
Share on other sites
Quote:

"If there is a SDK VERSION, why not a COMMERCIAL VERSION only Microsoft can use?"


Hi,

I think you are translating wrong the word "SDK", what do you think it mean?

SDK stands for "Software Developer Kit" ("paquete desarollador de software" in spanish), this word is used for describe all tools and required libraries used for build a software; "SDK" word dosent mean it is lite or free or cheaper.

Share this post


Link to post
Share on other sites
Quote:
Original post by darkcube
If I belonged to a big game company, with lots of graduated programmers, would we be able to make any nice game with DIRECTX 9 SDK version? (or one as nice as Metal Gear Solid, for instance).


Yes. Custom shaders are a big part of how some games can look so distinctive now.

I wonder if the root of this is misunderstanding - D3D_SDK_VERSION does not mean "the SDK version of the runtime", it means "which version of the SDK".

Share this post


Link to post
Share on other sites
Not to extend the life of an obviously ridiculous thread, but
a) if MS did have a special version of DX that they would allow companies to use if they paid extra money, then somewhere they would actually have to tell people about it so they could be given the money.
b) I work for a games company and we haven't been offered this "special" DX version... maybe we are just not special enough?

Share this post


Link to post
Share on other sites

This topic is 3298 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this