what do you recommend?

6eea91fd69bf4d6a6f7c5586cd77b7b7
0
ale_socc 101 Feb 14, 2003 at 17:08

Hello. I am not sure if I’m at the right place, but this seems to me an excellent forum. Its the best forum I’ve ever seen. I especially like its features, like the PM, organization, speed, and the calender (although its not used).

My question is, I would like to start learn game/graphics programming, and I don’t know which API to use. Should I use DirectX, or OpenGL? Please give me a good and convincing reason to use one API rather than the other.

Thanks

50 Replies

Please log in or register to post a reply.

28309d7779e8eaa5c670a48e8f47b4b7
0
Barbokp69 101 Feb 14, 2003 at 17:14

I recommend that you use DirectX since you are aiming to develop a game. DirectX was designed especially for games, whereas, OpenGL was designed for workstations and graphics in general. OpenGL is not optimized for games.

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 14, 2003 at 17:20

I recommend OpenGL. DirectX is not optimized for gaming, it’s optimized for [accessing hardware in] Miscrosft OSes. OpenGL on the other hand is cross-platform and will work with all OSes. so instead of limiting your game to just windows-users, you can target MAC users, *nix users, BSD users, etc.

0684f9d33f52fa189aad7ac9e8c87510
0
baldurk 101 Feb 14, 2003 at 18:15

well, I won’t vote, but I’ll give you my recommendation.

I assume you run windows, if you run anything else there is no option of directx :).

Reasons for OpenGL:

  • If you want to target multiple platforms or think you might move platform yourself
  • You don’t like COM
  • You don’t like C++, or wish to use C without using those silly vtable things
  • You don’t like hungarian notation
  • You happen to like OpenGL better

Reasons for DirectX:

  • if you don’t really care about other platforms
  • You like COM
  • You like C++
  • You like hungarian notation
  • You happen to like DirectX better
  • Your graphics card supports DX better than OGL

As you can see, most of them are opinion. I recommend you try out both, and see which one fits your needs best. If you have time/patience, learn both. It will be good if you want to get a job in the industry.

btw, generally these posts (because there is no definate one that is *better* at everything for everyone) cause flame wars. Tread carefully.

855b0d863f265e3c14dea094409fa320
0
abcd_z 101 Feb 14, 2003 at 18:17

One thing which proves that DirectX is better is that ALL professional and commercial games (95% to be more accurate) use DirectX to make their games. They never use OpenGL.

0684f9d33f52fa189aad7ac9e8c87510
0
baldurk 101 Feb 14, 2003 at 18:32

I don’t think that proves directx is better anymore than the 90% windows users proves windows is better or the number of AOL subscribers proves that they are superior ;). I guess that the reason for the games using directx is simply compatibility. Most people use windows, and most have good directx drivers.

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 14, 2003 at 18:35

@abcd_z

One thing which proves that DirectX is better is that ALL professional and commercial games (95% to be more accurate) use DirectX to make their games. They never use OpenGL.

that is a false assertion. many of the industry uses DirectX because most of the population uses windows. and believe me, games that only use directx aren’t as popular. i haven’t come across a game that used only directx. I have, however, came across games that only had opengl, mainly because it’s cross-platform. take quake3arena for example.

D491261d0cdbea6f1f04129ba87f4d09
0
void 101 Feb 15, 2003 at 05:29

saying that DX is better because more games use it is stupid. For example, the following TOP games all use OpenGL:

  1. All of the ID games: GLQuake, Quake2, Quake3, and soon to be Doom3 + all Games based on the ID Engines (a shitload of them)
  2. Bioware games such as Baldurs Gate2, Icewind Dale2, and Neverwinter Nights all use OpenGL.
  3. Warcraft 3 uses OpenGL (it is done through an abstraction layer, WC3 was written for BOTh DX and OGL).
  4. Diablo2 uses OpenGL.
  5. All Unreal Games and games based on those engines use OpenGL (same as WC3 an abstraction layer was written, the render code was written for i think 3 APIs.

There are many many other games, but those above are TOP games which i could think of. Also, consider just how many games there are based on the Quake engines and on the Unrel engine.

It is true that OpenGL wasnt designed for games, it was deisgned for encellent graphics, and it doesn this very well. Also, it gives you the flexibility to use any other library for other things such as sound and netweorking, whereas DX basically foces you to use DX exclusively.

Fdbdc4176840d77fe6a8deca457595ab
0
dk 158 Feb 15, 2003 at 07:46

One thing I dislike about directx is the fact that it changes drastically from release to release, making it practically difficult to update a game using an older version of DirectX. That is, if you have made a program/game in DirectX 7.0 and then you would like to use DirectX 9.0, it would be headache and a nightmare to convert. In other words, you’re code for DirectX is in reality is only compatible for a couple of years only. Your code becomes quickly outdated and cannot compile anymore without the old libraries. OpenGL on the other hand is consistent and has used the same API since it was developed in 1991, which answers the question on why you can find lots of references, tutorials and young developers loving it. Even OpenGL 2.0 (whenever it will be released) will be compatible with older versions of OpenGL.

However, if one woud have to speak in terms of power and performance, yes DirectX (especially now) is powerful and there is no difference in performance between OpenGL & DirectX. Nowadays, performance doesn’t depend API anymore, but depends on hardware and drivers.

In industry, you MUST know both to be considered as standard. Knowing one and not the other is not that attractive to potential employers.

0684f9d33f52fa189aad7ac9e8c87510
0
baldurk 101 Feb 15, 2003 at 09:01

void: To be fair, DirectX doesn’t force you to use DX for everything. I quite happily wrote an OpenGL demo which used DirectSound.

apex: Although porting DirectX 7 games to DirectX 9 is a headache, you’ll still be able to run the DirectX 7 game in DirectX 9. Even if you have DirectX 9, you can run games written in DirectX 3

That’s how MS works, they break backwards compatibility, but include the entire old release with the current. That’s why DirectX is so bloated. OpenGL doesn’t, because as they keep backwards compatibility OpenGL 1.4 is OpenGL 1.3 with a bit more, and 1.3 is 1.2 with a bit more, etc.

6ad5f8c742f1e8ec61000e2b0900fc76
0
davepermen 101 Feb 15, 2003 at 12:09

hm.. dx8 to dx9 is no problem to convert really.. mainly adds features, only some stuff changed. but dx8 was a full redesign of the dx api, because microsoft realised dx is messy, not structured, and old style done. dx8 is a great construct, but logically, a full redesign forces to recode old apps if you want to convert to the new versions. the same is currently in plans with opengl with gl2.0, and every extension forces you to recode paths. espencially vendorspecific extensions. take gl code from me, one year old. not runable anymore because i used an nvidia ext. thats why i only use arb exts from now on..

and gl is bloated as well btw.. its just hw vendors “forget” to implement quite a bit of it, because its not doable in (gamers) hw. but gl is big.. ever looked at the specs? :D (okay, nvidia extension specs are bigger than the gl specs.. hehe :D )

anyways. i don’t vote. i know both, and i can suggest both. i prefer personally opengl, espencially in small scale stuff. but both are great currently, both have great features, and are easy to use. if you code in windows, you can choose from both.

actually, dx is much more structured than gl.. code gets quite a bunch cleaner. on the other side, gl code is more “simple” most the time. shorter, and more easy to follow. depends on what you look at..

and currently the ARB is working on a general cleanup of gl.. hehe

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 15, 2003 at 15:40

@baldurk

void: To be fair, DirectX doesn’t force you to use DX for everything. I quite happily wrote an OpenGL demo which used DirectSound.

i don’t think he meant that it forces someone to use DirectX for everything, but speaking with efficiency in mind, if you use DirectX for your graphics API, you might as well use it for input and sound because it’s all in the library, instead of using another API, increasing the size of the executable.

i’m not sure if there are ways to ‘cut the fat out’ – if you can just use DirectSound without Directi3D or what have you.

can you? enlighten me! :yes:

0684f9d33f52fa189aad7ac9e8c87510
0
baldurk 101 Feb 15, 2003 at 15:50

I don’t think so.

B1a6d82c42d3a198cad15a3079a02306
0
WiseElben 101 Feb 16, 2003 at 21:57

You can use DirectX and OpenGL together, just not Direct3d and OpenGL together. :D

6ad5f8c742f1e8ec61000e2b0900fc76
0
davepermen 101 Feb 17, 2003 at 17:39

yes, each component lets itself get initialised individually.

so its

OpenGL or Direct3D
OpenAL or DirectSound
OpenNL or DirectPlay

etc.. sure, there are even more libraries for nongraphics stuff.. for sound for example the bass.dll or others, too.. for network you can use {your operating system here} base network libs. (winsock in my case). etc..

you can even have opengl and direct3d. just not in the same window:D

0684f9d33f52fa189aad7ac9e8c87510
0
baldurk 101 Feb 17, 2003 at 18:12

Well, you could have D3D in the same window, both in different sections.

Now THAT would be interesting :)

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 17, 2003 at 18:16

question:

isn’t Direct3D, DirectSound, DirectInput, DirectPlay, DirectWhatever all bundled into DirectX?

OpenGL is NOT affiliated with OpenAL nor OpenML
they merely have the same interface…

D491261d0cdbea6f1f04129ba87f4d09
0
void 101 Feb 18, 2003 at 04:58

DirectX is the general name given to the colleciton of APIs such as dsound and d3d, it encompasses all the libraries that start with Direct… OpenML is an initiative by a group of companies including big names such as ATi, 3DLabs, and many others, to create a system very much like DirectX, which will include OpenGL, openAL, and other APIs for madia playback and possibly input, i forget.
OpenGL cannot be compared to DirectX since its a graphics only library, but usually on these kind of forums when people say DirectX they really mean Direct3D…

On another note, here is a reason to use OpenGL: John Carmack uses it, and he is a GOD!!! :-) Dont you want to be a god like him? If you do, then use OpenGL…

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 18, 2003 at 11:06

i’m trying to be like john carmack…

49921baa7439fb1e91e02caf0a925cfe
0
DarkLight 101 Feb 18, 2003 at 20:56

First of all, unlike DirectX, OpenGL if free, open-source development
Second: it is easier to learn (at least because of the less functions)
Third: The best games use OpenGL
Forth: Linux becomes more and more popular, but DirectX is only for Windows
Fifth: There are many OpenGL related libraries like GLUT and GLAUX for examle
Sixth: There are many Open-source OpenGL applications (including games)

0684f9d33f52fa189aad7ac9e8c87510
0
baldurk 101 Feb 18, 2003 at 21:17

RE your second point, that’s a matter of opinion
RE your third point, that’s not quite accurate. A lot of good games DO use GL, but some use both, and some like Unreal 2 only DX.
I agree with your other points though

D491261d0cdbea6f1f04129ba87f4d09
0
void 101 Feb 19, 2003 at 05:48

DarkLight, a common misconception with openGL is that it is open source, it isnt, it is however OPEN STANDARD, there is a big difference. If you want OpenSource OpenGL, have a look at the Mesa3D library, its an opengl clone (all the functionality of OGL and the same syntax) and at the same time it is open source.

6ad5f8c742f1e8ec61000e2b0900fc76
0
davepermen 101 Feb 19, 2003 at 13:38

First of all, unlike DirectX, OpenGL if free, open-source development

no, dx and gl are the same, except dx is mostly designed by microsoft, with suggestions from (gaming-)hw vendors, while gl is designed by the ARB, a group built by mostly the same (gaming-)hw vendors, and, too, others, like from workstations and all.
you don’t have opengl on sourceforge, gl is not free, its not opensource, not anything. if you want to code an own opengl implementation, you have to pay to call it opengl. thats why mesa is still named mesa.

Second: it is easier to learn (at least because of the less functions)

depends from where you come. for starters, programming newbies, yes. for people who developed for some time yet windows applications, say 30 year old dudes starting 3dprogramming as hobby, dx is more easy to get into.
in the end, both are easy today, both are very similar today, its mostly design difference (function against member function). but if you know c++, you should not have problems with one or the other.

Third: The best games use OpenGL

i currently play unreal2 and love it. but i think you ment it as a joke anyways. because you know, the api doesn’t make a game.

Forth: Linux becomes more and more popular, but DirectX is only for Windows

yes. still, dx could possibly come over as managed dx in mono, one day.. we’ll see.. and main target for gamedev is and remains windows for the next years. does not mean you should not try to develop for linux if you have the chance. but its not where the money is (currently) => its not where you will develop in the industry.

Fifth: There are many OpenGL related libraries like GLUT and GLAUX for examle

bether say, there is glut. glaux is buggy, and dead. (even nehe now tries to get rid of it in his tuts:D). and sdl lets you use gl.
on the other hand, dx provides d3dx, wich lets you even load converted 3dsmax meshes, lets you optimize meshes, have lod on the meshes, tesselate them, etc. it has a full math library, it provides additional texture loading features, etc. in short: both have good tools, as both are often used (often used stuff always gets good tools, because we are lazzy:D)

Sixth: There are many Open-source OpenGL applications (including games)

yes, and? well, to learn its great. if you ment that, i agree.

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 19, 2003 at 15:26

“baby won’t you light my fire!” :lol:

alright here we go -
@davepermen

QUOTE
First of all, unlike DirectX, OpenGL if free, open-source development no, dx and gl are the same, except dx is mostly designed by microsoft, with suggestions from (gaming-)hw vendors, while gl is designed by the ARB, a group built by mostly the same (gaming-)hw vendors, and, too, others, like from workstations and all.
you don’t have opengl on sourceforge, gl is not free, its not opensource, not anything. if you want to code an own opengl implementation, you have to pay to call it opengl. thats why mesa is still named mesa.

you have it “backwards” my friend. DirectX IS MAINLY AND EXCLUSIVELY developed my Microsoft. did you know that MS is a member of the ARB [don’t know if they still are, most likely]? so OpenGL get’s some of it’s suggestion from Microsoft… or lack of suggestions from microsoft thereof.

Mesa3D. is open-source but it doesn’t exists because OpenGL isn’t*. Brian Paul [the creator of Mesa3D] made it because he wanted voodoo cards to have at least software-level support OpenGL implementation and over time the project became bigger than he thought. mesa3D is still only software-deep, but it conforms to OpenGL standards. In fact, you can switch from OpenGL to Mesa WITHOUT having to rewrite any of your GL code. still, it was just his personal project that he shared with the world - it’s not there to combat OpenGL’s open-source-ness.

ahh yes, here’s my favorite part. just because oss software isn’t hosted on sourceforge, it doesn’t make it any less open-source!

…and I quote from SGI’s [the creator of OpenGL] OpenGL page:@SGI

The result of this work was the OpenGL API, which was largely based on earlier work on the SGI® IRIS GLTM library. The OpenGL API began as a specification, then SGI produced a sample implementation that hardware vendors could use to develop OpenGL drivers for their hardware. The sample implementation has been released under an open source license.

you were saying?

let me clear any confusion that people may have at this point - just because software is licensed open-source, it doesn’t necessarily mean it’s free - it just means that when you buy the software, you buy the source code with it.

moving on…
@davepermen

QUOTE
Second: it is easier to learn (at least because of the less functions) depends from where you come. for starters, programming newbies, yes. for people who developed for some time yet windows applications, say 30 year old dudes starting 3dprogramming as hobby, dx is more easy to get into.
in the end, both are easy today, both are very similar today, its mostly design difference (function against member function). but if you know c++, you should not have problems with one or the other.

i think you have that backwards too. OpenGL mainly uses C language - you know, just function calls, nothing C++ about it. DirectX, however, uses pointers - a feature in C++ language. so it would be more correct to say that old-school programmers would have an easier time with OpenGL and “new generation” programmers would have an easier time with DirectX.
@davepermen

QUOTE
Third: The best games use OpenGL i currently play unreal2 and love it. but i think you ment it as a joke anyways. because you know, the api doesn’t make a game.

I’ve always admired the unreal series and for the life of me I couldn’t understand why unreal2 was implemented only in DirectX. hence, I never got to play it :no:

anyway, for once, I agree with you - some of the best games I’ve played weren’t implemented in OpenGL either because OpenGL didn’t exist or there was no need for it [because SVGA programming was somewhat a ‘standard’]. games like: Quest For Glory series [the 5th one uses OpenGL!], Mission Force: CyberStorm [svga? directx 3?] Dark Reigh [dx, i know that much]. those were among my favorites while I had a ms box.
@davepermen

QUOTE
Forth: Linux becomes more and more popular, but DirectX is only for Windows yes. still, dx could possibly come over as managed dx in mono, one day.. we’ll see.. and main target for gamedev is and remains windows for the next years. does not mean you should not try to develop for linux if you have the chance. but its not where the money is (currently) => its not where you will develop in the industry.

there is no proof or even a slight rumor that the event of a cross-over agent for dx would ever come to any other os other than an ms one. why not you ask? gee, I could think of one api that’s already cross-platform…

for those who aren’t up to speed today, i’m talking about OpenGL.

another view, it would NOT serve in ms’ best interest to make a DirectX cross-over thingie because that’ll probably make it slower and less appealing, damaging directx’s reputation.
@davepermen

QUOTE
Fifth: There are many OpenGL related libraries like GLUT and GLAUX for examle bether say, there is glut. glaux is buggy, and dead. (even nehe now tries to get rid of it in his tuts:D). and sdl lets you use gl.
on the other hand, dx provides d3dx, wich lets you even load converted 3dsmax meshes, lets you optimize meshes, have lod on the meshes, tesselate them, etc. it has a full math library, it provides additional texture loading features, etc. in short: both have good tools, as both are often used (often used stuff always gets good tools, because we are lazzy:D)

the examples of GLUT AND GLAUX weren’t good. I admit that - they’re old and dying, if not already dead. but it doesn’t make DirectX any more glamourous. ok D3D supports 3dsmax meshes and it has all this bloated stuff on it - what good is it if you don’t use 3D studio? what good is it if you have your own mesh-library or your won texture-loader library? using your own “devices” with DirectX makes your executable fatter and bloated - sloppy. OpenGL is just a graphics API, nothing more – it’s what makes it precise and crisp. you want “fatty” features that only some people will use, then DirectX is your choice.
@davepermen

QUOTE
Sixth: There are many Open-source OpenGL applications (including games) yes, and? well, to learn its great. if you ment that, i agree.

are you insinuating that DirectX is not great to learn?

man… I’m exhausted! this is pretty lengthy! :yes:

6ad5f8c742f1e8ec61000e2b0900fc76
0
davepermen 101 Feb 19, 2003 at 15:43

just to the opensource gl, and the dx from microsoft

both ati and nvidia, but as well matrox etc, had made big parts of dx. nvidia created, together with microsoft, the idea of vertexshaders, available on their gf3. pixelshader2 was together with ati, dispacementmapping with matrox. etc. vendors _DO_ work together with microsoft. they just don’t define the api interface. but the dx features, they define.

in opengl, every vendor is free to do what ever they want, resulting in the lovely extension mess. then there is the ARB, collecting those ideas and fitting them in a good way into opengl core.

it looks like its different, but in fact, its mainly the same. just compare the apis. they have the same feature sets. they just fit around hw.

but yes, microsoft defines the final look of dx.

and opengl is not free. read your own quote again. they have an “OPEN SOURCE SAMPLE IMPLEMENTATION”. thats all, what is open source. a useless, old sample implementation. but opengl is an api, not a program. as such it can’t be open source, but only have open documented specs, it can be an open standard. and that is it.

but its not open source. there was a huge discussion about this, _WITH_ hw vendors, _WITH_ arb members, etc. there is not much difference between gl and dx actually.

and, the autor of mesa states that, he would have to pay to call its thing really opengl. prooves its not really open source, say free. you’re not free to implement something called opengl. what he did is implementing something following the (open) gl specs. and when you rename his files to opengl32.dll, yes, then it works perfectly.

so, in short:

  • both in gl and in dx, vendors have more or less the same to say. difference: in gl they are free to implement vendor specific extensions
  • gl is not open source, but an open standard. gl is not a program, every vendor has an own source in the drivers. open source does not make sence, its that simple

on to the rest:D

6ad5f8c742f1e8ec61000e2b0900fc76
0
davepermen 101 Feb 19, 2003 at 15:48

@donBerto

i think you have that backwards too. OpenGL mainly uses C language - you know, just function calls, nothing C++ about it. DirectX, however, uses pointers - a feature in C++ language. so it would be more correct to say that old-school programmers would have an easier time with OpenGL and “new generation” programmers would have an easier time with DirectX.

C++ has pointers? coooooooool:D (hint, guess what int* thing in c means:D)

opengl is c-style, only using constants, and functions. thus making it very easy to understand the syntax for newbies. dx has more stuff, pointers, objects, all the fun. makes it harder for newbies of the language. thats what i said.

then i said old school dudes, working with windows, programming for it since years. well, first. sure they need to know c++, else dx is rather messy (ever tried in c, its fun:D). but, most todays programmers only work in c++. they use mfc to generate their applications, they use c++ everywhere. mainly only c with classes, but so what. important is, they know how to program, they know pointers, they do automatically things like “when i create something here, i need to destroy it later, say ->Release() in dx case”, and much more.

you can use opengl at a time where you have even problems setting up a for-loop. you can’t do that with dx.

but anyone knowing c++, mainly knowing c with classes (no templates, inheritance, rtti, casting, overloading, etc needed to know), can use dx as well. and thats true for most programmers who get paied for their job:D (at least, i hope it:D)

6ad5f8c742f1e8ec61000e2b0900fc76
0
davepermen 101 Feb 19, 2003 at 15:59

there is no proof or even a slight rumor that the event of a cross-over agent for dx would ever come to any other os other than an ms one. why not you ask? gee, I could think of one api that’s already cross-platform…

for those who aren’t up to speed today, i’m talking about OpenGL.

another view, it would NOT serve in ms’ best interest to make a DirectX cross-over thingie because that’ll probably make it slower and less appealing, damaging directx’s reputation.

well, ther is quite some rumor that m$ wants that .NET runs everywhere, even where there is no m$ platform yet. sort of an m$ platform on other stuff. and, well, managed dx _could_ get ported then, and would be cool.

but dx itself will not move, no.

the examples of GLUT AND GLAUX weren’t good. I admit that - they’re old and dying, if not already dead. but it doesn’t make DirectX any more glamourous. ok D3D supports 3dsmax meshes and it has all this bloated stuff on it - what good is it if you don’t use 3D studio? what good is it if you have your own mesh-library or your won texture-loader library? using your own “devices” with DirectX makes your executable fatter and bloated - sloppy. OpenGL is just a graphics API, nothing more – it’s what makes it precise and crisp. you want “fatty” features that only some people will use, then DirectX is your choice.

well, if you would be a gamedev, and you would do it for money, and you would have short time, and high pressure, and all, you would know that about everyone in business just uses together fitting complete tools, because its the cheapest way to do. thats why all gamedev use eighter maya, or 3dsmax, or possibly something else. most at least do so.
gamedev, is like any other business, about money. for homedev, yes, you don’t need 3dsmax, but for gamedev, you need. you need artists and don’t want to train them months in a buggy mini program you code yourself. instead you pay artists wich know yet how to work with 3dsmax, and they can start stright from the first day on.

and dx does not get bloated because of that. its all in d3dx and can get manually linked. and i told its a converter, a program, to create .x meshes, wich converts from .3ds meshes. does not bloat your exe as well. its part of the dev process only.

then again, who cares about bloaty? if you want 64kb demo, yes, else, nobody.

insinuating

what the ****? cracy word:D

what i ment, is, gl is a great way to learn programming. even while you have no clue about programming, you can copy paste together stuff from nehe, and have some stuff on screen. step by step you learn faults and faults and evolve to what i am today:D (thats the way i learned programming:D)

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 19, 2003 at 16:04

@davepermen

and opengl is not free. read your own quote again. they have an “OPEN SOURCE SAMPLE IMPLEMENTATION”. thats all, what is open source. a useless, old sample implementation. but opengl is an api, not a program. as such it can’t be open source, but only have open documented specs, it can be an open standard. and that is it.

yeah - read my quote again – I said that open-source DOES NOT mean it’s free.

OpenGL is an open API. Application Programming Interface. that means that there is an implementation. that means that there’s code [in one way or another] there. and guess what, it’s open-source. not free, but open-source. open source != free.

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 19, 2003 at 16:43

@davepermen

well, ther is quite some rumor that m$ wants that .NET runs everywhere, even where there is no m$ platform yet. sort of an m$ platform on other stuff. and, well, managed dx _could_ get ported then, and would be cool. but dx itself will not move, no.

is there rumor about .NET plotting to take over the world? of course :D

would it be beneficial for DirectX to get a “cross-platform controller”, no. it would make DirectX weak. it’s strongest on MS OSes. it’ll be extremely weak anywhere else. that was the point of my earlier post.
@daverpermen

well, if you would be a gamedev, and you would do it for money, and you would have short time, and high pressure, and all, you would know that about everyone in business just uses together fitting complete tools, because its the cheapest way to do. thats why all gamedev use eighter maya, or 3dsmax, or possibly something else. most at least do so.
gamedev, is like any other business, about money. for homedev, yes, you don’t need 3dsmax, but for gamedev, you need. you need artists and don’t want to train them months in a buggy mini program you code yourself. instead you pay artists wich know yet how to work with 3dsmax, and they can start stright from the first day on.

and dx does not get bloated because of that. its all in d3dx and can get manually linked. and i told its a converter, a program, to create .x meshes, wich converts from .3ds meshes. does not bloat your exe as well. its part of the dev process only.

then again, who cares about bloaty? if you want 64kb demo, yes, else, nobody.

in the first part of this quote, I respect it but I don’t agree. there are people [including me] that want to make things for the sole benefit of knowledge. no strings [or money] attached. and if I were to share something I thought everybody should have free access to, I’m not going to bloat it up and make it look sloppy. the last thing I want to do is cast a bad example on the rest of the world.

[edit]
I have plans to start my own gamedev company later in life and I’ll tell you what - whether in my own company or working for somebody else, I’d rather get fired asking to postpone a release date than release anything I thought was incomplete, simply because I’m running out of time. there’s nothing I hate more than playing a game that is incomplete and then bombared you with “patch releases”.

using [commercial] already-built tools saves a whole lot of time but it sure does waste money [IP royalties, rights, “taxes”]. writing/building your own tools doesn’t have to be buggy. in fact, I think people are better off writing their own tools because you can guarantee that there’s no bugs. of course, you’ll have to know what you’re doing and do it right.
[/edit]

about the 3ds meshes: if you meant that the converter is a separate tool outside of DirectX, then I stand corrected. and if that is the case, then no - it wouldn’t bloat the executable.

about size: if I can get a 10MB demo to be 9.5MB by cutting out “fat”, I would. I suggest everybody does - it’s just clean and ethical to do so. you wouldn’t buy a car with an extra door that serves no purpose would you?

about the c/c++ thing: int* c is a pointer. yes. but does the original C let you have pointers? [asking, not being a jerk]. do tell me. I do know that OOP and inheritance are a C++ feature and Objective/Procedural programming is C legacy [that’s why i referred to OpenGL as a “C” language-pro]. most compilers today blur the line of C/C++ - letting you do both in the same compilation… granted, C serves as a “base class” for C++… but i’m getting off topic. but please do tell me about the pointer thing.

anyway, about the insinuation [“suggestion”] that OpenGL is great to learn, it is. guess what, DirectX is great to learn, too! :o i’m sure you [[b]davepermen[/b]] agrees. It’s powerful and it’s [currently] a step above all other APIs. I just don’t like the interface :lol:

6ad5f8c742f1e8ec61000e2b0900fc76
0
davepermen 101 Feb 19, 2003 at 16:57

@donBerto

@davepermen

and opengl is not free. read your own quote again. they have an “OPEN SOURCE SAMPLE IMPLEMENTATION”. thats all, what is open source. a useless, old sample implementation. but opengl is an api, not a program. as such it can’t be open source, but only have open documented specs, it can be an open standard. and that is it.

yeah - read my quote again – I said that open-source DOES NOT mean it’s free.

OpenGL is an open API. Application Programming Interface. that means that there is an implementation. that means that there’s code [in one way or another] there. and guess what, it’s open-source. not free, but open-source. open source != free.

open source == free source code. there is only a free spec (and a free sourcecode of an implementation)

and dx is as “open source” if you wanna call it that way. its fully documented, it has an api, and its documented what each function has to do.

6ad5f8c742f1e8ec61000e2b0900fc76
0
davepermen 101 Feb 19, 2003 at 17:06

is there rumor about .NET plotting to take over the world? of course :D would it be beneficial for DirectX to get a “cross-platform controller”, no. it would make DirectX weak. it’s strongest on MS OSes. it’ll be extremely weak anywhere else. that was the point of my earlier post.
if .NET wants to be crossplatform, “Managed DX” (NOT DX!!), has to get crossplatform, too, as it is part of .NET.. one day or the other.

and still, even a slower implementation of managed dx on linux would be good for dx, good for .NET, good for microsoft, even for linux. why?
dx apps can run everywhere (managed dx ones). but on microsoft platforms, they run best. good for microsoft, as its their own product. runs everywhere, but only on their optimal. that is optimal to expand target platforms.
good for dx, because it can get support on linux and other platforms, too
good for microsoft, because of the above, World Domination™
good for linux, as they can be part of the World Domination™, dominate as well.

it would not make dx weak.

about your company, good luck. but you will have nearly no chance in gamedev with your mentology (while its a great one, and i actually do have the same one, guess why i’m _not_ in gamedev myself). i know enough that work in gamedev. and they all work the same: target platform: xbox/ps2/gc/pc. artists: 3dsmax. programmers mission: get renderware working (for consoles), get 3dsmax model converter/importer working, implement physics engine, havoc for example (unreal2), or other one. get a simple playSound(filename) working, some other stuff, done. and that in about 10% of the time you need to do it.

gamedev biz is hard, dirty, and only about making most money of least amount of work. that means using tools when they are there. and dx provides a complete set there, making it great. and you get great support by microsoft, you get direct integrations to 3dsmax and similar, etc. what carmack does, can only carmack do. no other company could let a simple small programmer do that stuff for a graphics engine. you eighter do it for free, or not at all.

thats why i do my stuff for free as well. i have all the time i want, i can do what i want, and have no stress.

and yes, it is a converter, a program. dx is not bloated.

and for real games, we’re not talking about 8mb or so. we’re talking about 1 or 2 cd’s, or more. then, 500kb don’t bother you.

btw, the dx interface is the one i use in my whole engine. best to organize and split your code into pieces (modularize).

and yes, c has pointers. they where actually _the_ feature of c:D

0684f9d33f52fa189aad7ac9e8c87510
0
baldurk 101 Feb 19, 2003 at 20:05

@davepermen

then again, who cares about bloaty? if you want 64kb demo, yes, else, nobody.

me.

6ad5f8c742f1e8ec61000e2b0900fc76
0
davepermen 101 Feb 19, 2003 at 20:51

@baldurk

@davepermen

then again, who cares about bloaty? if you want 64kb demo, yes, else, nobody.

me.

you needed to edit for a .. 2char word? :D great:D

well, you’re a modem user, i understand you.

btw, if you would ask, i would send you my stuff pre mail, burned on a cd. if it would be too bloaty..

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 19, 2003 at 20:54

@davepermen

and still, even a slower implementation of managed dx on linux would be good for dx, good for .NET, good for microsoft, even for linux. why?
dx apps can run everywhere (managed dx ones). but on microsoft platforms, they run best. good for microsoft, as its their own product. runs everywhere, but only on their optimal. that is optimal to expand target platforms.
good for dx, because it can get support on linux and other platforms, too
good for microsoft, because of the above, World Domination™
good for linux, as they can be part of the World Domination™, dominate as well. it would not make dx weak.

if .NET goes linux [or if MONO get’s going] - then yes, world domination is inevitable :D

“managed dx” would still be weak. not in terms of what it can/can’t do [cuz it can do a lot], but in terms of choices: the choice between using OpenGL or a “managed dx”, I think people are going to pick OpenGL over (managed)DX because it’s already there. it’s sort of like the question “why use C# when there’s already JAVA?” [oh boy, another flame war]
@davepermen

about your company, good luck. but you will have nearly no chance in gamedev with your mentology (while its a great one, and i actually do have the same one, guess why i’m _not_ in gamedev myself). i know enough that work in gamedev. and they all work the same: target platform: xbox/ps2/gc/pc. artists: 3dsmax. programmers mission: get renderware working (for consoles), get 3dsmax model converter/importer working, implement physics engine, havoc for example (unreal2), or other one. get a simple playSound(filename) working, some other stuff, done. and that in about 10% of the time you need to do it.

it is my fault - i failed to mention that I would share knowledge for free, not give my gamedev company away for free. if I work for gamedev, it would be for profit but I still wouldn’t whore myself to unethical, business models and practices.

as far as using existing tools, yes - that’s very economical and wise. but certain tools overlive its use, it’s effectiveness and a new tool must rise to take it’s place. if you can make that new tool instead of licensing its use from another company, i suggest you make it. same ideology goes for people who have no funds to purchase tools and thus must make their own. all at the price of time.

about open source: no open source is not free source. you can sell if you wanted to, as long as the source is included. now, i would agree with you that DX is as open sourced as OGL but for one small detail.
@DirectX 8.x SDK EULA - partial

SOFTWARE PRODUCT. You may install and use the enclosed SOFTWARE PRODUCT to design, develop, and test software application products for use with Microsoft operating system products including Windows 95 and Windows NT and subsequent releases thereto (“Application”). You may install and use copies of the SOFTWARE PRODUCT on up to ten (10) computers provided that you are the only individual using the SOFTWARE PRODUCT on each single computer. If you are an entity, Microsoft grants you the right to designate one individual within your organization to have the right to use the SOFTWARE PRODUCT in the manner provided above.

open source prohibits ‘discrimination against persons or groups’. I highlighted above the “discriminating” factor in the license, effectively making DirectX a closed-source SDK
@MSDN

PERSONAL AND NON-COMMERCIAL USE LIMITATION.
Unless otherwise specified, the Services are for your personal and non-commercial use. You may not modify, copy, distribute, transmit, display, perform, reproduce, publish, license, create derivative works from, transfer, or sell any information, software, products or services obtained from the Services.

this makes both the SDK AND the API closed-source.

you’re right - OpenGL has no singular body of code. that doesn not mean the OpenGL API cannot be open source.

that aside :D thanks for the C clarification. I’m enlightened. :yes:

0684f9d33f52fa189aad7ac9e8c87510
0
baldurk 101 Feb 19, 2003 at 20:58

I needed to edit because the quote was messed up because of this board’s weird way of quoting.

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 19, 2003 at 20:59

with that last quote, is that why there aren’t many non-ms DirectX tutorials?

hmm :unsure:

Fdbdc4176840d77fe6a8deca457595ab
0
dk 158 Feb 19, 2003 at 21:51

@davepermen

open source == free source code. there is only a free spec (and a free sourcecode of an implementation)

I disagree to the fact that open source == free source. Take the engine “Torque” as an example. You get the full source, but not only after you pay. There are many people/companies who sell source code for a particular project, but that doesn’t make it free.

6ad5f8c742f1e8ec61000e2b0900fc76
0
davepermen 101 Feb 20, 2003 at 16:21

@apex

I disagree to the fact that open source == free source. Take the engine “Torque” as an example. You get the full source, but not only after you pay. There are many people/companies who sell source code for a particular project, but that doesn’t make it free.

well, yes. anyways, gl is not open source. the main point..

and the opensource that would be interesting (not in gl, but in applications) is actually free source code, means open accessible to the world. but yes, there are things as well, wich you can buy with sourcecode. does that really get named open source as well? dunno.. i wouldn’t call it like that.. else every program would be open as well. still its illegal to get most programs for free.

open source as i learned it is free to read, but not always free to use. but free, namely open to read for everyone interested.

gl can’t be open source as gl is not an application. doesn’t have source.

6ad5f8c742f1e8ec61000e2b0900fc76
0
davepermen 101 Feb 20, 2003 at 16:27

@donBerto

you’re right - OpenGL has no singular body of code. that doesn not mean the OpenGL API cannot be open source.

uhm, yes, exactly thats what it means..

is my toaster open source? i mean, there is no real sourcecode around, but i could write a pc implementation in c controlling my toaster, this is not forbidden. so its an open source toaster.

actually, its simple. its exactly defined what the open of opengl means in the opengl specs. namely the specs are open, its exactly defined and available to anyone, how opengl looks like, how it behaves. and you’re free to add stuff to it, and propose it as future gl feature, etc. and its free to use opengl.

its not free to implement opengl, as far as i know. mesa3d hoped that he get e special gift from sgi, means the official “this is an opengl implementation” on his project, for free. but he never got. but actually, he can call it mesa 3d, a free opengl implementation.. so they don’t really bother about it. :D

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 21, 2003 at 00:16

QUOTE (donBerto @ Feb 19 2003, 03:54 PM)
you’re right - OpenGL has no singular body of code. that doesn not mean the OpenGL API cannot be open source. uhm, yes, exactly thats what it means..

good! :yes: does that mean you agree?
@davepermen

is my toaster open source? i mean, there is no real sourcecode around, but i could write a pc implementation in c controlling my toaster, this is not forbidden. so its an open source toaster.

is your toaster open source? i don’t know. i don’t care. you can make your own toaster open source and release it and that will be cool. the good thing is, if you wanted to, you can sell it to me - instead of you just giving it to me for free.
@davepermen

actually, its simple. its exactly defined what the open of opengl means in the opengl specs. namely the specs are open, its exactly defined and available to anyone, how opengl looks like, how it behaves. and you’re free to add stuff to it, and propose it as future gl feature, etc. and its free to use opengl.

:yes: you agree again? cool.
@davepermen

its not free to implement opengl, as far as i know. mesa3d hoped that he get e special gift from sgi, means the official “this is an opengl implementation” on his project, for free. but he never got. but actually, he can call it mesa 3d, a free opengl implementation.. so they don’t really bother about it.

that’s not entirely true. [please don’t shoot the messenger]. it IS free to implement OpenGL. the initiative was started so that there was a standard on how graphics would be supported via hardware – and that it would be free, so all people will take to the standard, instead of shy away from it because there are strings attached [like certain API i know of].
@”from sgi

SGI funding and engineering advice to open source developers at Precision Insight, who integrated GLX with XFree86 and with the Mesa project (an open source software implementation of the OpenGL API) in 1998 and 1999.

Brian Paul implemented mesa3d free of charge - the only exception was that he couldn’t call it mesaGL. not because of the license, but because of a business aspect called “reputational liability”. mesaGL would confuse people who used MesaGL with openGL and since it wasn’t directly supported by SGI. anyway, it’s a business thing that i don’t know enough about.

D491261d0cdbea6f1f04129ba87f4d09
0
void 101 Feb 21, 2003 at 05:12

Id just like to point out to all the people who are praising DX for having all these ‘“helper” libs that load 3DMAX meshes and stuff. This is useless in most cases, hardly any games use the 3DMAX format, why? because it is a bloated format which has features no game will ever need in its model format. Sure, the artists use max for modelling, but then a script comverts the max format to a proprietary internal format for the game, such as MD2 or MD3 for quake games.
Also, it is wrong to say that bloatedness doesnt matter for any1 unless your making a 64kb demo. That is the same kind of attitude some programmers say when rferring to efficience, “who cares if i use bubble sort instead of quick sort, the processors nowadays are so fast and getting faster it doesnt matte”, oops, WRONG. Same with bloatedness, bloatedness eventually leads to more bugs, slower execution speeds, and general shitiness.
my 2c.

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 21, 2003 at 15:15

amen brother :yes:

6ad5f8c742f1e8ec61000e2b0900fc76
0
davepermen 101 Feb 21, 2003 at 16:29

donBerto. 2 things:
no, i don’t agree. opengl is not a source, so it cannot be open source. its an open spec. you can’t just call it open source because its open and something on pc.
and no, you are _NOT_ allowed to implement an own gl version on your own and call it opengl. you are NOT allowed to do this. you ARE allowed to USE opengl for free. this is the way it goes, at least it was the way a year ago when i read about it. dunno if that changed (but i think i would have seen those news).

about the rest: the max format is only to store, and then convert, and then to use. if you directly use a script, or save as .3ds and run a converter to the .x format, doesn’t mather. .x format is useful, and has some nice features. isn’t that bloated.

why people use the quake models all the time? just because they think its cool to do so. not because the formats are rather useful, but because you can copy paste and get a result. same is for .x meshes actually, so what?

and 500kb on a full cd is 1%. i don’t care about 1% efficiency in space, really not. if i copy that on harddrive, chance is big that in the actual chunks on the harddrive, it doesn’t mather, as smallest filesize on about all normal harddrives is 512kb anyways.

and you don’t rewrite your code to get the last % out full in asm. be wise, and use logic.

i do btw honor and support your opinions. its just, they are not the way its done in gamedev biz. simply no. its just another capitalistic biz, built up like any other capitalistic biz. dirty, evil, quick solutions. we can sell it? lets sell it. no mather if its good or not.

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 21, 2003 at 19:58

hopefully, this will be the post to end all posts [on this thread].

I carefully read this entire thread. and for your [davepermen] sake, I’d like to apologize. I stated that OpenGL is open source. THIS. IS. NOT TRUE. what I meant was that OpenGL’s API is open and you CAN implement your own GL (graphics library). and do it free of charge.
@davepermen

no, i don’t agree. opengl is not a source, so it cannot be open source. its an open spec. you can’t just call it open source because its open and something on pc.
and no, you are _NOT_ allowed to implement an own gl version on your own and call it opengl. you are NOT allowed to do this. you ARE allowed to USE opengl for free. this is the way it goes, at least it was the way a year ago when i read about it. dunno if that changed (but i think i would have seen those news).

I _never_ said you could make your own implementation of gl and call it OpenGL.
@davepermen

why people use the quake models all the time? just because they think its cool to do so. not because the formats are rather useful, but because you can copy paste and get a result. same is for .x meshes actually, so what?

that’s a little hard to understand. we don’t know what .x is. copy and paste… what do you mean?

why do people use quake models? cuz john carmack [and/or his team at Id software] create these filetypes. carmack and his team always produced clean, crisp code/formats and so I trust his creations. md2 served a great purpose but it was lacking - hence the birth of md3 and md4 formats. [from what i quickly found on the ‘net, md4 never took flight - integrated into md3, correct me if I’m wrong]. and because ‘everybody’ uses them, it wouldn’t hurt to use that popular type. games, CADs and whatever else type of application still using md2 will find itself quickly rejected. I mean exclusively using md2 only. even still, programs still supporting md2 files will be able to look back on their/others’ md2 files but if they ever made their own models, they’d export them to md3 or make it straight from md3. basically, the old will die, the young will survive if it’s robust, clean and precise. only the strong survives. everthing else is bloated.
@davepermen

and 500kb on a full cd is 1%. i don’t care about 1% efficiency in space, really not. if i copy that on harddrive, chance is big that in the actual chunks on the harddrive, it doesn’t mather, as smallest filesize on about all normal harddrives is 512kb anyways. and you don’t rewrite your code to get the last % out full in asm. be wise, and use logic.

you may not care - but the rest of us do. it’s that kind of attitude and practice that people do not tolerate. wasting resources in any form is bad and irresponsible.

if you had 10 CDs, that’s a whopping 5MB. if you had 100 CDs, that’s 50MB. do you know how much space that is? I don’t know if the smallest file on most normal HD are as big as half a MB. on a win32 box, i imagine the average file is a .ini and the smallest i’ve seen is barely 1k. but that’s not the point - the point is those files, no matter how small, are essential. not wasted bits/bytes.

about this thread:
the question to this post was best answered by apex on the 9th post of this thread. which api do we recommend? well, that depends on the target platform. you can see that some of us prefer OpenGL, as others prefer DirectX. the APIs today, comparatively behave the same way. in terms of deciding which to learn, you really must learn both if one is to succeed in this field.
all this is on the 9th post of this thread (by apex)

:yes:

(( keeping the original post so baldurk’s post will make sense :lol: ))


original post:

coming soon!

0684f9d33f52fa189aad7ac9e8c87510
0
baldurk 101 Feb 21, 2003 at 20:58

lol

D491261d0cdbea6f1f04129ba87f4d09
0
void 101 Feb 23, 2003 at 03:19

Optimising everything to hell with asm is pretty stupid, but blatantly wasting space and speed is also stupid. Using the 3dmax format instead of say md3 is dumb, because the files are maybe 2x the size, the loader is 3x as complex, and you wouldnt lose anything if you used the md3 format instead.
Blatant inefficeincy is just as bad as ove optimisation and easly optimissation. i mean, you might as well go and use the ASE format instead, and all youll get is 5minute loading times…

Fdbdc4176840d77fe6a8deca457595ab
0
dk 158 Feb 23, 2003 at 07:36

Or you could make your own format and include in it exactly what you need for your game. That is how most games do it. Of course, then you will have to make a utility to convert between the modeler program (3dmax for example) and your own format.
But there is no problem with sticking to md2/md3 files or any other formats.

0684f9d33f52fa189aad7ac9e8c87510
0
baldurk 101 Feb 23, 2003 at 11:19

well, I’ve always thought that custom formats are better than anything else. It allows you to include ONLY what you need, and you don’t need to include anything you don’t need.

Also, you can get loading times down really low, because you can prepare the format for your program, so that it loads as fast as is possible.

C24eb7e6aaefba78b94c831ddc7b4d0b
0
donBerto 101 Feb 23, 2003 at 16:20

I agree - there’s nothing faster than making your own format, granted that it’s clean and efficient. when I said “everything else is bloated”, I meant supporting [commercial] products that are old and bloated isn’t wise. not only does it make the package bigger, loading times are affected. making it an overall bad experience.

:yes:

590e8bdac8129bd87b188df15e62d0e5
0
CyraX 101 Mar 15, 2003 at 08:01

I would not really suggest making YOUR own format without taking a look @ what other formats support.
For example you could strip down those parts of the MD3 model that support the Shaders (I did because Riva TNT does not support it).
Creating ur own file format might just be a long process and often would end up making the format itself very cumbersome.

0684f9d33f52fa189aad7ac9e8c87510
0
baldurk 101 Mar 15, 2003 at 08:18

I guess it all depends on how well you create your format, and just how much you can gain by creating your own format. If your format is going to end up almost exactly like MD3, there’s no point.