3D Engine
Post Reply
Quote
Re: 3D Engine
Posted by Damic on Thu Jun 23rd at 2:42pm 2005


mmh I was bored and needed todo something so I've creaded my first simple 3d Engine.

Currently its full rendered on Direct Draw smiley maybe ill change that to Direct 3D (more easyer options)

Example: http://home.scarlet.be/~guido456/cd-pc/tmp/enginetest.rar (I get +4000FPS) <img src=" SRC="images/smiles/icon_smile.gif">

What do you guys think of it <img src=" SRC="images/smiles/icon_biggrin.gif">



Thx in advantage



Quote
Re: 3D Engine
Posted by Madedog on Thu Jun 23rd at 2:53pm 2005


Hmm... I get 700 fps :P
But hey - it's cool that you made something on your own. Hopefully we can see something cool made on it <img src=" SRC="images/smiles/icon_smile.gif">



HL2 tutorials 'n' stuff: http://madedog.pri.ee
217.159.236.34:27050 - CSS Server - Clean | koffer.ee



Quote
Re: 3D Engine
Posted by Damic on Thu Jun 23rd at 3:28pm 2005


I gona crete a Reaction Tester on it

Car (hud) + (static)traffic light + "moving" road



Thx in advantage



Quote
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
DVS Administration
http://www.dvstudio-production.com/



Quote
Re: 3D Engine
Posted by Damic on Thu Jun 23rd at 6:49pm 2005


Lol, If you find a tutorial of opengl for VB6, past the link here, until then I use DX <img src=" SRC="images/smiles/sad.gif">

Sorry dude <img src=" SRC="images/smiles/sad.gif"> i'm not a C++'er <img src=" SRC="images/smiles/sad.gif">



Thx in advantage



Quote
Re: 3D Engine
Posted by Dark_Kilauea on Thu Jun 23rd at 6:57pm 2005


Heh, try this place, it's where I first learned to use OpenGL.

http://nehe.gamedev.net/lesson.asp?index=01

Also the best place I've found on the net.

Until Later...



Dark_Kilauea
DVS Administration
http://www.dvstudio-production.com/



Quote
Re: 3D Engine
Posted by ReNo on Thu Jun 23rd at 8:42pm 2005


I don't think its fair to say OpenGL is "better" than DirectX, nor that people should definately learn one over the other. DirectX is more widely used than OpenGL these days and so learning it probably has more advantages, learning wise, in the long term. It also has awesome documentation, what with being a Microsoft endeavour, compared to OpenGL. OpenGL might be easier as far as many people are concerned, though personally I haven't really found one to be particularly more user friendly than the other and on most fronts they have equivelant ways of doing things. Oh and to be honest, these days graphics cards are optimised for use with both API's, not just OpenGL. If that weren't the case, why are almost all of the "big" engines these days DirectX based (with the exception of Doom3)? I'm not trying to bad mouth OpenGL here at all and I'm not advanced enough with either to really have my word count for much; I just don't think its correct to just say one is "better" than the other.

Nehe is a great tutorial set to follow through, and its what I used to get started. I also thoroughly recommend it for learning OpenGL - its the best I've seen and everybody seems to suggest it.

My main advice is that if you are seriously interested in game programming, get started on C++. VB just doesn't cut it I'm afraid <img src=" SRC="images/smiles/sad.gif">






Quote
Re: 3D Engine
Posted by Dark_Kilauea on Thu Jun 23rd at 10:55pm 2005


The reason that Direct X is used more frequently resently is because Microsoft has been pushing it. Even to the point of paying game manufactuers to use Direct X instead of OpenGL.

OpenGL also has great Documentation. You just have to google for it. <img src=" SRC="images/smiles/icon_smile.gif">

Inly the most resent cards are optimized for Direct X. Some of them acually just change the Direct X to OpenGL in the hardware. He he he...

Well, anyways, this is just my opinion.



Dark_Kilauea
DVS Administration
http://www.dvstudio-production.com/



Quote
Re: 3D Engine
Posted by ReNo on Fri Jun 24th at 12:27am 2005


Another reason why DirectX is so widely used is that it is an API that encapsulates most of the backbone functionality of a game - 2D/3D graphics, music and sound effects, input, networking, etc... OpenGL is purely graphics based, leaving a fair bit more work for the developer on these other aspects.

Show me something as complete, concise, and well managed as MSDN (particularly when its all integrated with Visual Studio...so handy), and then I'll admit it has great documentation :P

? quote:
Some of them actually just change the Direct X to OpenGL in the hardware


Are you sure about this? Doesn't sound likely to me (though I'm in no real position to argue against it), but if you have any proof or backup I would be very interested in reading about it.

PS. Took a look at the program, and its a neat start. I dunno if I'd quite call it a "game engine" as of yet (seems more like a textured model loader/renderer), but then as its only a .exe I can't exactly see what is going on behind the scenes. I suppose it partially comes down to what a "game engine" is defined as - I 've written games before, and written some 3D test programs and what have you, but I wouldn't ever describe them as game engines. Anyway, keep it up and I hope you are enjoying it <img src=" SRC="images/smiles/icon_smile.gif">






Quote
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.



Blame it on Microsoft, God does.



Quote
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?






Quote
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.



Blame it on Microsoft, God does.



Quote
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.






Quote
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 <img src=" 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 <img src=" 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 <img src=" 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.



Blame it on Microsoft, God does.



Quote
Re: 3D Engine
Posted by Damic on Fri Jun 24th at 2:28pm 2005


Ok thx for all the replys

thx Dark_Kilauea for the link it has some VB6 code to <img src=" SRC="images/smiles/icon_biggrin.gif">

Reno: it's just a start, I can enable the keyboard and then you can control anything <img src=" SRC="images/smiles/icon_biggrin.gif">

Mmmh damn I was using Direct Draw instead of Direct 3D :o lousy M$ :@



Thx in advantage



Quote
Re: 3D Engine
Posted by ReNo on Fri Jun 24th at 4:25pm 2005


I'm much too lazy to reply in much depth to that one Crono (a few tangents in there man <img src=" SRC="images/smiles/icon_biggrin.gif">), but I have read it. I'm aware of ANSI standards, and I guess it doesn't really come as a surprise that MS haven't stuck by such standards (just look at IE). I have used a number of IDE's and I'm aware that many of the features of VS are seen in them (hence why I said I wouldn't care to program without an IDE, not without VS). I've no doubt there are other great ones out there, and maybe Visual Studio ISN'T the "best", but for me, a run of the mill programmer who doesn't really plan on programming as a career, its damn useful. I wouldn't say I'm a programmer who is only familiar with one suite or one company's software. I can use OpenGL or DirectX, Java, C/C++, and having worked in a number of IDE's I think I'd be fairly comfortable picking up others. It just so happens that, for me, working in Visual Studio is the best way to do most of it.






Quote
Re: 3D Engine
Posted by Dark_Kilauea on Fri Jun 24th at 4:38pm 2005


Ok, OpenGL Documentation:

http://www.talisman.org/opengl-1.1/Reference.html

http://www.opengl.org/documentation/

And of course, if you were on linux, there is always man.

Until later...



Dark_Kilauea
DVS Administration
http://www.dvstudio-production.com/



Quote
Re: 3D Engine
Posted by Damic on Fri Jun 24th at 5:17pm 2005


Thx Dark_kilauea for the links, mmmh hl2 is allso DX(9) smiley hl1 is OpenGl, wa the change <img src=" SRC="images/smiles/sad.gif">



Thx in advantage



Quote
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.






Quote
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
DVS Administration
http://www.dvstudio-production.com/




Post Reply