PDA

View Full Version : DirectX's goal: Make Programmers pull their hair out



Halcyon
12-25-2002, 07:31 PM
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! http://www.opengl.org/discussion_boards/ubb/biggrin.gif

GL RULES!

- Halcyon

PigeonRat
12-26-2002, 03:03 PM
Yeah, I prefer OpenGL to DirectX http://www.opengl.org/discussion_boards/ubb/smile.gif 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.

SThomas
12-26-2002, 03:21 PM
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 (http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/008185.html) 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.

rpxmaster
12-27-2002, 09:26 PM
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.

Shiftytitan
12-28-2002, 01:52 AM
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.

Jan
12-28-2002, 03:07 AM
Originally posted by Shiftytitan:

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


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.

SThomas
12-28-2002, 03:35 AM
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.

zeckensack
12-28-2002, 04:57 AM
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.

rpxmaster
12-28-2002, 08:58 PM
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:

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.

zeckensack
12-29-2002, 12:01 AM
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.

M/\dm/\n
12-29-2002, 01:45 AM
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 http://www.opengl.org/discussion_boards/ubb/frown.gif
2) DYNAMICALY CHANGING SYNTAX http://www.opengl.org/discussion_boards/ubb/frown.gif
3) SDK SIZE (they're mad or what 200+MEGZ, that'll kill my 56k modem, at least if I wont get on LAN) http://www.opengl.org/discussion_boards/ubb/frown.gif

Halcyon
12-29-2002, 04:47 PM
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

zen
12-29-2002, 05:33 PM
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).]

Halcyon
12-29-2002, 05:58 PM
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

rpxmaster
12-29-2002, 09:38 PM
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.

Halcyon
12-29-2002, 10:28 PM
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

Whack_Smack
12-29-2002, 10:53 PM
I wander if Microsoft, would allow their applications to be run under Opengl, rather than DirectX.

i am stupid

gimp
12-29-2002, 11:52 PM
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.

SThomas
12-30-2002, 12:19 AM
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.

zen
12-30-2002, 02:01 AM
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.

John Jenkins
12-30-2002, 07:27 AM
I just got DirectX 9 and it looks way easier than previous versions. We are going from VS 6 to .Net and I can't get the opengl examples working well from csgl.

azcoder
12-31-2002, 12:59 PM
A few more comments:

I originally learned Direct3d back in version 3. Then I tried OpenGL and I like it alot better. It just seems like a more elegant and clean API. D3d is definitely getting more OpenGL like, but the early stuff was really bad.

Anyway, I have heard it is easier for a video card manufacturer to build a DX driver than a full blown OpenGL ICD implementation. That may be why there is more vender support.

But in addition to being a more elegant API - OpenGL is cross-platform! This is has huge implications. I don't think DX will ever run natively in Linux or Mac or Playstation...

Happy Coding :-)

John Jenkins
01-02-2003, 05:12 AM
Cross platform is an advantage, however, I have never even seen a company that uses something other than Microsoft. We and all of our customers use Windows. The university and the big companies in Tulsa use unix. Just try using the VI editor or the unix email and you will appreciate VS .net alot more. I say give directx 9 a try. If enough people do, then maybe a newer version of OpenGL will come out. I left DirectX 8 because it sucked big time. At first glance directx 9 looks alot easier.

Outlander
01-04-2003, 04:22 AM
I PREFER Quick Draw 3D RAVE (Let the spamming begin) hehehe.. my way of saying "Hi, I'm new" :P

M/\dm/\n
01-05-2003, 11:21 PM
Downloaded DX9 few days ago & it seems to be WERY hard written SDK. Just the CD has 5k files http://www.opengl.org/discussion_boards/ubb/smile.gif Will get to learning as soon as possible, in meanwhile took a quick shot at some samples & I feel impressed, some though things can be done in just few lines & utility support seems to be at its heights http://www.opengl.org/discussion_boards/ubb/smile.gif
After all those threads devoted to DX I was waiting monster, but I can see only powerfull&peaceloving cat http://www.opengl.org/discussion_boards/ubb/biggrin.gif
I'm not saying that OpenGL fights a loosing battle especialy till 2.0 isn't out, but I'm impressed with DX now, although things like vertex buffer are nice things to get additional bugZ.

BTW, where can I find sites like NeHe or gametutorials(OGL part) about DX.

Sorry for DX advertising, but I understood that I must learn both APIs.

[This message has been edited by M/\dm/\n (edited 01-06-2003).]

John Jenkins
01-06-2003, 05:51 AM
The only Direct X 9 site I know of is www.directx4vb.com (http://www.directx4vb.com) of course it is written in vb, which is the easiest language I have ever seen. Don't worry about whether to go to C++ C# or VB .Net , they are all identical. The code for all looks exactly the same. It looks like a morph of c++ vb and Java. Anyway back to the web site. It is the best site I know for simple examples that only highlite certain features.

Halcyon
01-06-2003, 10:03 AM
There is also NeXe (http://nexe.gamedev.net) . It is meant to be the counterpart of the NeHe site, but i don't know it is all that good. Check out Andy Pike's site (http://www.andypike.com) . That's a REALLY good site for DirectX. But in terms of just DirectX 9, I have no idea. The link in the above post sounds good.

-Halcyon

Edit: The hyperlink to Andy Pike's site had a stray period in it http://www.opengl.org/discussion_boards/ubb/biggrin.gif.

[This message has been edited by Halcyon (edited 01-06-2003).]

BanksySan
01-07-2003, 06:31 AM
OK You war mongers. This seems to be the place to fire my blunderbuss. I have just completed an MCP in VB and have my first job as a proper programming bod. Am I scared? Yes! I am bricking it. Now, here's the thing.

I am writing the front end of an app, it need to display a graph of data (or some similar thing) and this graph must be 3D with all the features which are assocciated with 3D technology (zoom, rotate etc.).

My (furure) boss has seen a demo CD of OpenGL and wants it to be used. I am thinking DX is better because it if far better integrated with VB. I have no experiance of either, or of any other 3D modelling language other than half and hour with VRML.

Discuss! I do actually whan to know what to say. (Though MS is evil isn't much help as they are providing me with my entry into the IT world!)

Cheers guys & keep it above the belt!

zeckensack
01-07-2003, 06:37 AM
In that case, OpenGL is bound to give you working results earlier. Check out Nehe's first few tuts, get some sphere drawing code (rip it from glut perhaps), draw a few lines in between and you should be all set.

(prolly not what you wanted to hear ...)

[This message has been edited by zeckensack (edited 01-07-2003).]

BanksySan
01-07-2003, 07:03 AM
Indeed, I had a play with OGL & found it a bit taxing on the old grey matter. Mainly because trying to find support for OGL with VB (rather than VC++) is damn near impossible (NeHe isn't bad though). However, I did find the site mentioned above (http://www.directx4vb.com/) really quite good.

Could you recoment a newbie's guide to 3D moddelling. Not a proggramming book but just something to learn basic terms from? like 'Bump-Mapping' and 'Raster' (which I had previously thought of as a pot smoking Jamaican).

Still, 1 vote to OGL!

Cheers man

M/\dm/\n
01-07-2003, 01:13 PM
Look for redbook link in these forums