DirectX's goal: Make Programmers pull their hair out

Ok ok…i DID make a post about learning both OpenGL and DirectX and how it’s really good to know them both. I still stand by what i said…but i started learning DirectX today…and let me tell you…I don’t think i’ve seem more enumerated variables and constants in my entire life. THERE ARE SOOO MANY. It just seems clumsy and it really isn’t as welcoming to beginners are OpenGL. I think i’m going to wait until i finish learning OpenGL and then start up on D3D…but by then it’ll probably be a WHOLE different syntax and all. Grrr…

Sorry…there really is not point to this post other than to vent my frustration. If anyone else would like to vent their anger please feel free!

GL RULES!

  • Halcyon

Yeah, I prefer OpenGL to DirectX I started making a DirectX 9 engine the other day - its alot more code to do simple things like displaying a triangle than in GL.

i had really bad experiences with earlier versions of directx as well. what’s amazed me is how much direct3d has gravitated towards opengl’s way of doing things. they backed away from some of the COM nonsense and made initialization a lot easier (especially with 8.0).

still though, i don’t think you can write the newer versions of directx off the way you could the older versions (prior to 7.0, say). things have gotten a lot easier, and it seems to me that for the most part it’s roughly comparable to opengl now in terms of learning difficulty. further, some stuff is a lot easier (one example: standardized vertex buffers in direct3d versus the VAR/VAO extension mess in opengl). the advanced board recently had a good discussion going on about this issue.

i really just wish the ARB would act more quickly in standardizing things, but it’s always been the case and always will be the case that democracies move slower than dictatorships.

Oh, you poor kiddies ran into a little DirectX on the way here, and have gotten sick all of a sudden. The best way to prevent that is to avoid DirectX altogether, like I have.

I don’t see a purpose in learning DirectX. Ever. If anybody does, I’d like to hear that reason though, so I can shoot it down for good.

Just knowing that DirectX even exists makes me want to rip my eyes out of their sockets and send them to Microsoft. Learning an entire new API every 1-2 years is not something I’m looking forward to, thank you very much.

you think that DirectX is useless eh?
well, if you can write something better, than they have, do not complain. and if you have ever noticed anything beyond your bedroom walls, some companies do use Directx over OpenGL for performance and different applications. if you are wanting to become or be a better programmer, the best is to know ALL! then you’ll be a good programmer.

  • i dont know all, i want to know all, is what seperates you from me.

its the same thing with people against Microsoft. Microsoft has employed THOUSANDS upon THOUSANDS of people. if all MS’s apps whent open source, a lot of people would loose there jobs etc. think ALL the ways before making ur mind up, if you havent done that, ur no better than a moron in that aspect.

Originally posted by Shiftytitan:
[b]

  • i dont know all, i want to know all, is what seperates you from me.
    [/b]

I thought the same way. However 2 years ago i had the desire to learn 3D programming. I bought a book about D3D. Guess what? I never got ANY program to run. And i don´t think i am such a stupid guy. D3D (7) was really not intuitiv (to avoid the word with f).

So i gave it up. Then i saw a simple 3D program by someone else and asked him how he learned 3D programming. Easy answer: nehe.gamedev.net -> 30 Minutes later my first 3 dimensional triangle rotated on my screen.

Don´t tell me you are a better human being, because you are willing to learn more. I think especially in the information technology business there are many people who are willing to learn much and only by themselves. I never had any teacher or friend who thought me C++, DirectX or OpenGL. I learned it by reading books and tutorials and by doing nearly nothing else in my free time.

However i am not willing to learn something, that is so unintuitive and so ever changing like D3D. And i can say this, because i tried it out.

Jan.

Originally posted by rpxmaster:
I don’t see a purpose in learning DirectX. Ever. If anybody does, I’d like to hear that reason though, so I can shoot it down for good.

i’d be interested in hearing your opinion on why so many game houses use directx. is it that professional game developers are simply too stupid to see through microsoft’s marketing machine? or is it possible that there are in fact some valid reasons to use directx?

i’m not a directx fan, but to say that there’s not a single good reason to learn directx is a bit of a stretch in my opinion.

Originally posted by Shiftytitan:
you think that DirectX is useless eh?
well, if you can write something better, than they have, do not complain.

Bah. Write something better. You gotta be kidding. Without being able to define a driver interface, that’s just hollow blabber. What a tremendous way to start out a comment …

and if you have ever noticed anything beyond your bedroom walls, some companies do use Directx over OpenGL for performance and different applications.
If you believe in what you just said there, umm, let me restate these key points
1)DirectX has inherent performance advantages over OpenGL
2)DirectX and OpenGL are for different applications

Whatever, if you believe in these statements you have fallen victim to one of the more moronic FUD campaigns. And worse than that, you are spreading FUD. Please stop that.

if you are wanting to become or be a better programmer, the best is to know ALL! then you’ll be a good programmer.
Yes, this one’s absolutely true.

  • i dont know all, i want to know all, is what seperates you from me.
    That’s a real shocker if seen in conjunction with the rest of the posting. Had I read that sentence alone I’d still say it’s an unnecessary offense, yet with a grain of truth hidden inside. But inside your complete posting it’s just hilarious.
    (btw, IMO this forum needs special smilies for these occasions, I like this one: http://www.forum-3dcenter.org/vbulletin/images/smilies/bonk.gif )

its the same thing with people against Microsoft. Microsoft has employed THOUSANDS upon THOUSANDS of people. if all MS’s apps whent open source, a lot of people would loose there jobs etc. think ALL the ways before making ur mind up, if you havent done that, ur no better than a moron in that aspect.
You seem easily swept by stupid marketing ploy. You suggest others don’t think it through, so may I suggest that you start thinking through that again?

Thousands of programmers working for Microsoft, nice one. It has been attested by court that Microsoft stifled innovation and competition in the past and still continues to do so. Draw your own conclusions on what that might mean for jobs in the industry, but please don’t forget to think.

Sheesh.

On 12-28-2002 02:52 AM, a Contributor named Shiftytitan made the following remark:
if you are wanting to become or be a better programmer, the best is to know ALL! then you’ll be a good programmer.

Welcome to the real world of hackerdom, Shiftytitan. True enough, the more you know about something, the betteroff you are. However, there are some things that you should absolutely never learn…or ever admit to another hacker that you know how to use these, for obvious reasons. Such things like this include:

  • [li]COBOL[]Visual Basic[]C#[*]DirectX API

Shiftytitan, I envy you that one of these days you’re going to know everything there is to know about computer science…including all of the stupid things that you’re never, ever going to use in your lifetime. What a waste of valuable tuition money. It’s only useful to learn all that you need to in order to do something. I’m assuming you’re in your first year of a CS degree, if not younger than that. Therefore, I don’t blame you if you haven’t realized this yet.

On 12-28-2002 04:35 AM, a Frequent Contributor named SThomas made the following remark:
is it that professional game developers are simply too stupid to see through microsoft’s marketing machine?

The reason why so many game manufacturers use DirectX is either because:

A) They’re stupid.
B) They’ve allowed themselved to be tied up in an exclusionary contract with Microshaft to favor their Windoze-specific crap over someone else’s, which brings us back to reason A again.

On 12-28-2002 04:35 AM, a Frequent Contributor named SThomas made the following remark:
or is it possible that there are in fact some valid reasons to use directx?

Either there are no reasons to use it, or I don’t know of any. If anybody uses DirectX in favor of something else, then let’s hear it, because I haven’t heard one reason so far.

Reason for using DirectX Graphics
drumroll

Once a feature is supported, it behaves the same on every card. Meaning that Pixel Shader 1.1 is Pixel Shader 1.1 is Pixel Shader 1.1. Possibly saves you some time, dunno how much.

You still have to check caps and write multiple codepaths for supporting older cards though, so don’t let people tell you that there is equivalent to ‘extension handling’ in DXG.

I will start learning DX9, because good programmer is working more with ideas than with their translation in some specific language & all that bumpmapping, shading stuff is similiar anyway. It’s nice when you can think about one problem from different points of view. And experienced people says that DX isn’t that bad anyway.
Although theres some huge problems I can allready see about DX.

  1. UNCLEAN, BUGLOVING CODE
  2. DYNAMICALY CHANGING SYNTAX
  3. SDK SIZE (they’re mad or what 200+MEGZ, that’ll kill my 56k modem, at least if I wont get on LAN)

Yeah i’m with M/\dm/\an on this one. It’s not about the languages…it’s about the ideas. I said the syntax was horrible for DirectX…but i don’t believe i said i’m not going to learn it or that it couldn’t do it’s job right. It has some MAJOR advantages over OpenGL in certain areas. But then again so does OpenGL.

Well have a good new years everyone!

  • Halcyon

shiftytitan: I don’t know about you but I’m just starting out with graphics programming(and programming in general,that is I just have a couple of years behind me).The thing that troubles me most is the vast amount of knowledge to be acquired in the process,which seems to become more rather than less as time passes.What I’m talking about is the actual stuff you want to create like graphics,AI,sound etc.(assuming you’re doing games).But in order to implement these you need tools.A compiler is one,DX and OGL are others.Knowing the pros and cons of each and choosing the best for your needs is (IMHO)the wise way but just learning all of them and wasting time you could spend on other stuff, possibly more important(like graphics,AI,sound,history,art,science,…) is (again IMHO) not.Maybe you use every compiler or every programming language out there, because what DX is to OGL is what VC++ is to GCC or C to JAVA.Don’t confuse the love of learning with the tools needed to do it and what’s more don’t flame other people over it(even if their opininons are a little extreme).

Oh and,

and if you have ever noticed anything beyond your bedroom walls, some companies do use Directx over OpenGL for performance and

and if you have ever noticed anything beyond your bedroom walls, crap in this world has a way of ‘selling’ much better than the good stuff,usually because more money can be made out of it.

different applications. if you are wanting to become or be a better programmer, the best is to know ALL! then you’ll be a good programmer.

and if you are wanting to become or be a better programmer, you better start concerning yourself with the tricks of the trade which are the same for every language/API/whatever rather than learning the details of every (equivalent)tool.

btw rpxmaster: fanaticism has never helped anyone.There are bound to be a few details where DX is better than OGL (for some people) and if I’m not mistaken some where brought up in a recent ‘advanced’ thread.

[This message has been edited by zen (edited 12-29-2002).]

Yeah ShiftyTitan, the reason that more game companies use DirectX is because the licensing fees are much cheaper and because the whole API is meant for gaming. OpenGL is meant for graphics alone. And a license to use OpenGL in your games, from what I’ve heard, IS VEERRRRY EXPENSIVE!!!

  • Halcyon

If such a discussion did exist on the advanced board, could somebody provide a link to it? Perhaps I can get more out of that thread than I can out of this entire discussion…and I’m too lazy to look for it myself.

True enough, OpenGL is meant for graphics alone. There are other libraries that exist that complement every other part of DirectX, and usually the case is I can do a lot more with OpenGL + these other librarires than I can with DirectX and WinAPI. When I say this, I’m usually referring to portability by the ways.

I would like to see the licensing for using OpenGL in your games, though. I’ve been looking for this, and so far, the only link I’ve found that said anything about it was:
http://www.opengl.org/developers/license/license.html

If I’m reading it correctly, it states that you don’t need a license to do this, but now that Halcyon has made that comment, I’m thinking differently.

Hey rpxmaster…take a look at the 3rd post in this thread. There is a link to that discussion you requested inside that post.

And about the licencing…I remember reading it in a news article on an online computer magazine. I don’t remember where or exactly what article though. But it is possible they were misinformed and I read it and have acquired false knowledge. I read the licening statement and it doesn’t seem like you need it. But then…i think directx does have a fee (most MS products do). And if that has a fee and opengl doesn’t…then why exactly is directx being used so much???

Oh and i didn’t mean that OpenGL is meant for ONLY graphics…i’m saying that when they were designed they had different purposes. With the addition of OpenAL and such…OpenGL is becoming a viable solution to game programming.

Oh and the advanced forum’s posts…The arguments are much more structured than here and they have VERY good reasons explaining their opinions. I’ve read through most of it…and i think that’s exactly what ure looking for. This thread was started to vent my frustration for the syntax of d3d which i really don’t like…but it kinda got slightly skewed towards opengl vs directx in terms of functionality and one being an MS product…not my intention…but it happened.

Happy New Years!!

  • Halcyon

I wander if Microsoft, would allow their applications to be run under Opengl, rather than DirectX.

i am stupid

I consider myself a OGL coder however I neraly dropped it when Dx8 came out. I was so sick to death of having to test for extention X to see if it worked, and if it did have special case code to make it work. Worse, I could never rely on something working unless I provided a fall back.

For example s3tc is cool. I wanted to store the files precompressed a load them right in to the card, then I learnt that if a card didn’t support the extention I would have to provide a fallback decompresser myself.

I envied some of the DX stuff to code my app with a renderer wrapper. If I ever want to change over I just provide the code under the wrapper for d3d or glide or whatever and I can make a switch. I also liked the idea of using VIPM mesh’s without having to code it myself(I’m lazy like that)

I can’t see the big deal here guys, it’s not like someone will die if you support the wrong api.

It’s just a tool, red hammer or blue hammer.

All in all I stuck with OGL as I was familiar with it, no high an mighty reasoning there.

there’s no licensing fee to develop commercial apps based on opengl or directx.

rpxmaster, your explanation that anyone that uses directx does so because they’re stupid is far too simplistic to explain why so many game companies choose directx over opengl. i hope you’re joking.

but i think referring to microsoft as “microshaft” reveals what your real problem is: you’re fanatically anti-microsoft.

one valid reason to use directx is that through the d3dx library you get tons of useful stuff (font rendering, mesh loading, etc). another reason is all of the other available components besides direct3d (directinput, directsound/music, directplay) that you don’t have in opengl. sure, there are other libraries available to do that stuff, but it’s nice to have everything available within the same sdk. third, the sdk is very well documented, and comes with easy to digest tutorials and lessons to help quickly get you started.

further, directx avoids the extension mess that you have in opengl. because extensions are available in opengl, i think the ARB moves slower in standardizing things. after all, why rush to incorporate a feature into the ARB standard when every card already has support for it through extensions? unfortunately, it’s a nightmare for developers. the ARB needs to standardize features more quickly.

anyway, i prefer opengl myself, so i really don’t see the point in arguing this further. all i’m saying is that directx isn’t entirely without merit, as some people suggest.

Another advantage of DX is that it seems to be better supported (better rivers) than opengl.The funny point is that this is happening because more people are using it(commercially I mean).And more people are using it because there’s better support for it.I wonder how things like this start…
I know it’s not a technical advantage but a very important one especially from a commercial point of view.