Re: 3D Engine
Posted by Dark_Kilauea on Thu Jun 23rd at 6:43pm 2005
AAHHHHH!! The horror! Your using Direct X!
Here's a tip, you'll be better off using OpenGL. Here are some
reasons. It is run native in most, if not all, graphics cards.
This means that it will run faster. It is very easy to port to
other os's, because Macs and Linux do not have Direct X support.
You can do everything in OpenGL as you can do in Direct X, if not more.
Still, I'm glad to see that you've decided to try something new. Keep it up, and remember, Direct X is not your friend.
Until later...

Dark_Kilauea
member
629 posts
93 snarkmarks
Registered: Apr 15th 2005
Location: USA
Occupation: Fast Food
Re: 3D Engine
Posted by Crono on Fri Jun 24th at 1:14am 2005
Most hardware is oblivious to things like D3D or OGL.
A "D3D 9 Card" means the card has the registers that the D3D team said they needed. Doesn't really matter, since you can use Assembly or CG to use all the registers you want regardless of what they're meant for. A ?DX effect? is a very misleading term as well.
OGL is a far superior 3D API just because it conforms to C/C++ AND THAT'S IT. It is platform independent, it's just libraries with functions you call in C/C++ which tell the graphics card how to draw whatever. Not to mention when you make a game a lot of those graphic effects you have to write on your own (shaders). For basic drawing on a card though, neither is better or worse, because there's limited ways to do it.
I prefer OGL because it isn't tied down to an OS. It doesn't require you to use underhanded programming practices either. (DX requires the use of globals when there is no need amongst other things and is an overall disgusting API)
On top of all this DX REQUIRES that you use a suite. IDEs are generally annoying and under no circumstance should you be required to use one (this goes more into problems with Microsoft's IDE then anything else).
A lot of these things matter. If you're a programmer and think they don't then you're an oxymoron.
A lot of its other problems stem from general Windows development practices.
To each his own. It'd just be a good idea to recognize the world outside of Windows. Ironically, that was Window's original goal: seperate the hardware from the OS. Way to go.
This has no relavence to the thread topic though.

Crono
super admin
6628 posts
633 snarkmarks
Registered: Dec 19th 2003
Location: Oregon, USA
Blame it on Microsoft, God does.
Re: 3D Engine
Posted by ReNo on Fri Jun 24th at 1:43am 2005
As you said this is somewhat off topic, by why do you dislike Visual
Studio so much? What is your IDE of choice, if you use one at all?

ReNo
member
5457 posts
933 snarkmarks
Registered: Aug 22nd 2001
Location: Scotland
Occupation: Level Designer
Re: 3D Engine
Posted by Crono on Fri Jun 24th at 2:19am 2005
I don't use one generally.
But I'd probably use Eclipse (I hear there's a C++ plug in to recognize the syntax). However, that's mainly made to be used with Java (which is just a configuration file).
It isn't so much visual studio as it is Windows its self. Since, Visual Studio is just an IDE, it calls a compiler like any other and analyzes what you type doing whatever effect based on a configuration for whatever language you're using. However, the compiler and its standards are awful. Not to mention, the standards used by the compiler writers are disgusting. There are things that Win compilers let slide and then there are very valid things they refuse to allow. For example, windows compilers don't allow certain types of empty while statements. They can be used for some coding tricks, just to make things easier. I forget what the trick was exactly, but not all empty while loops are infinite and they made the opposite assumption.
This, if you were wondering, line of thinking is reflected throughout many areas of development, especially in software developers.
An easy example is a little survey that was conducted (don't remember the specifics), but basically 5 or so software developers (developing for the general consumer market) were given a problem, (I can't find the exact problem in the book I'm thinking of, so I'll paraphrase) List the test cases for a triangle calculator. I believe the calculator was to calculate the 3rd angle, given the first two. Now, test cases are ALL possible things you need to test for. None of the engineers got all of them. I think, they, generally, got seven of the test cases, when there's actually 14 (or so). What does this mean?
It's just an example of the line of thinking a lot of engineers have. They almost NEVER come up with all obvious cases to test for.
In the compiler case, they may have never heard of the empty loop trick. (That isn't the name) so there is no basis to check for it.
There are other issue that stem from this. I'm sure all this seems unrelated, but I assure you all of it goes hand in hand.
Basically, I don't like Microsoft, or their suite because of their lack of foresight. They made some bad choices in a personal standard (which is always a good thing to have) and in the long run they made many mistakes, they did not go back and fix them, but rather built on top of them creating new ways to bypass old mistakes, creating new problems along the way. (On top of that they pushed their shoddy standards for their shoddy products on other people)
I bet when they started developing Visual Studio, they never thought anyone would make a 3rd party compiler or want one. Either that or, in combination, they wouldn't want anyone to use a 3rd party compiler.
Does this make sense? Is it a little easier to see how this line of thought could be taken through most of their products? I hope so.
And I hope I explained my position well enough.

Crono
super admin
6628 posts
633 snarkmarks
Registered: Dec 19th 2003
Location: Oregon, USA
Blame it on Microsoft, God does.
Re: 3D Engine
Posted by ReNo on Fri Jun 24th at 3:12am 2005
I guess I somewhat understand people's dislike of Microsoft, but I
certainly don't share it. While yes, I'm sure they have built on
mistakes and used workarounds they shouldn't have, its gonna be pretty
damn rare that you come across a company, at least of those as large as
Microsoft, that hasn't. It's all too often people mindlessly bash the
company without good reason and that really does annoy me, but at least
you do have reasons so I'll respect your opinion.
I've used only a few IDE's in my time, but none of them really came
close to the quality and usefulness of Visual Studio (particularly
.net). Even if its compilers are forced on you, losing out on one or
two "neat little tricks" is something I'm more than willing to do in
order to gain all the benefits. I don't think I could imagine
programming without an IDE there to offer some sort of project
management features, shortcuts to function/variable definitions,
integrated dynamic documentation for the language/API, autocompleting
function calls with the necessary parameters, decent debugging tools,
shortcuts from compile error reports to the actual problem code, etc...
These are all tools that really do save time; I can't imagine how much
longer it must take to get by programming in only a text editor.
Out of curiousity what sort of size projects have you programmed without using an IDE?
EDIT: On the issue of their compiler's quality; is it really true that
their's is particularly bad? I can certainly grasp the idea of a bad
compiler as I did a short module which was related to the topic, but
Visual Studio being as popular as it is, you'd think would mean their
compiler, if not the best out there, is at least up to snuff.

ReNo
member
5457 posts
933 snarkmarks
Registered: Aug 22nd 2001
Location: Scotland
Occupation: Level Designer
Re: 3D Engine
Posted by Crono on Fri Jun 24th at 5:00am 2005
The problems with the compiler stem from the problems with their programming habits. However, you must understand they don't see them as problems or flaws.
I didn't, in any way, mean to intend that the only disadvantage in using the win compiler was losing some "tricks". That was simply an example of how they do not follow the ANSI standard. Which, if you are wondering, are the standards for C and C++. Internationally.
I just don't use IDEs all that often. That doesn't imply that I don't use debuggers though and please don't think they're one in the same. For debugging I usually use DDD. In combination with the GNU compilers. There's some things they don't allow either that are in the standard, but they're usually minute (they don't allow the word "class" to be in a hierarchy definition, so you can't say class classname: public class blah, it'll give a compile error because it thinks you're defining a new class that never ends)
Auto completion is in every IDE. Project spaces are in every IDE. However, most other IDEs allow set ups for ANY language as long as you supply a compiler and a configuration for the syntax.(Including a language you make up)
Speaking of DDD, something that is very nice about it is the graphical display. It'll graphically map out your dynamic data so you can plainly see if there are breaks in allocations (segmentation faults, blue screen of death or "send error report" under Windows).
I think that any compiler that ignores standards that have been set by a committee, who knows the language far better then some group of people, is a bad compiler. To be honest, the only reason why Visual Studio is so popular is because it's the main development tool for Windows and Windows is widely used by whatever developers target consumer market. That's it. Granted .NET was the first IDE to do (so called) complete integration. However, that doesn't make it the best.
What I was talking about with the whole "mistakes" speech is that they STILL haven't fixed the problems. It stems from the standards they set for themselves, and inherently, for anyone who programs on their platform.
I've never had time to do a big project, nor the man power. But, pretty much any assignment I've ever done has been using Vi on a Unix machine. (Vi is a text editor for Unix platforms, very very handy. Vim is nice too, it has language recognition, but it also has to be configured). I might be able to start something soon if I can get some people to help out. Sadly I only know a couple other people who're on the same page with me when it comes to C++. (My software engineering class assignment was an online library. Used Vi with PHP and DHTML. Just because I don't want to list all those languages out)
You also have to remember that I don't exactly have a mouse or anything when I do most of this stuff
" SRC="images/smiles/icon_lol.gif">
Typing is much faster then taking your hand away from the keyboard moving the mouse and clicking. If someone says it isn't it's just because they're not used to the environment and they don't know how to use the tool.
Not to mention, in a Unix environment you can hit a key or two and be in a completely different application while having your previous work still running. It's very handy ESPECIALLY for developers. There's a reason why people still use Unix and Unix platforms even though they've been around, practically, un-alerted since the 70s. Thanks AT&T.
I'll be able to whine about compilers more in a few months once I take the compiler courses, lucky for me: they're in Java
" SRC="images/smiles/icon_biggrin.gif">
But, seriously, I could go on about several practices Microsoft and many many other developers. Hell, a lot of authors of programming books teach bad practices. Anyone remember the "pre fix or post fix" argument? It's that type of widespread ignorance about the tools programmers use that is the problem; yes, it is a PROBLEM. Templates are another can of worms.
I know that learning to use the Microsoft suite is much easier (or at least it seems to be
" SRC="images/smiles/icon_wink.gif">) but in the end you'd be less knowledgeable and rather useless as a developer in only being familiar with it. It's like people who goto DeVry or ITT and get a degree just to get a dead end job. Only knowing how to develop on a particular companies software gives that company all the power. Which is never a good thing. You, as the developer, then become dependent on a corporation while the language you use is complete and free to develop for otherwise. This puts you in a very bad situation because you have no control.

Crono
super admin
6628 posts
633 snarkmarks
Registered: Dec 19th 2003
Location: Oregon, USA
Blame it on Microsoft, God does.
Re: 3D Engine
Posted by ReNo on Fri Jun 24th at 6:03pm 2005
OpenGL was certainly the favourite back in those days, but DirectX
seems to have overtaken it in popularity recently. Note though that HL1
could actually use D3D or OpenGL, but it was certainly more optimised
for OpenGL and so its always recommended to run HL1 engine games with
it.

ReNo
member
5457 posts
933 snarkmarks
Registered: Aug 22nd 2001
Location: Scotland
Occupation: Level Designer
Re: 3D Engine
Posted by Dark_Kilauea on Fri Jun 24th at 8:24pm 2005
I still think HL2 should of allowed you to use OpenGL. At least
make it compatable both ways. I would of been able to optimize
HL2 better if it was OpenGL compatable...
Until later...

Dark_Kilauea
member
629 posts
93 snarkmarks
Registered: Apr 15th 2005
Location: USA
Occupation: Fast Food