Sign in to follow this  
ISDCaptain01

SDL+OpenGL vs DirectX

Recommended Posts

I just cant seem to decide which one. Its either opengl+sdl or DirectX
What I like about OpenGL is that u can use outdated code or techniques and it will still run. So I dont have to keep on constantly keeping up with changes(staying on top of changes is exhausting, especially when programming isn't your income). Also sdl is easier, than again lack of books


Then on the other hand, DirectX has all documentation. All the books I wanna read use DirectX. So that's also a big deal. But DirectX keeps on changing. By the time I get the hang of it, directx12 will be out. If I were to write an engine in dx9, it would one heck of a time to get it to dx11 and add its features.
honestly what would u guys do?

also is sdl + Direct3d(just direct3d, no directsound,input, etc etc) possible Edited by ISDCaptain01

Share this post


Link to post
Share on other sites
D3D may use a different API every major version, but that doesn't mean that you have to. D3D9 is still well-supported and has been very stable for a decade or so now, for example, so if you wanted to learn that then go right ahead - there's nothing forcing you to jump to a higher version.

Share this post


Link to post
Share on other sites
[quote name='PurpleAmethyst' timestamp='1353062456' post='5001497']
IMO, learn OpenGL > 3.2. Everything except the Microsoft systems use OpenGL, better to learn 3D graphics via OpenGL and then learn Direct X when you need to.
[/quote]

While this is in principle true, I generally advise that when you're learning you're better off just [i]forgetting[/i] about portability, at least for the first few programs. Your primary task is to learn, not to be portable, and if you worry over much about being portable then you're taking on a whole slew of additional headache that is just going to detract from the job of learning.

Of course helper frameworks/etc make this issue fade a little into the background, but despite that I believe that the basic core of it still stands - focus on what you're learning, not on whether or not it's portable.

Share this post


Link to post
Share on other sites
[quote name='mhagain' timestamp='1353067771' post='5001510']
I generally advise that when you're learning you're better off just [i]forgetting[/i] about portability, at least for the first few programs. Your primary task is to learn, not to be portable.
[/quote]

++ to that

I wasn't really talking about portability - which is all well and good until you see a horrible attempt to hack a DirectX like interface over OpenGL sent from the US office and that creates even porting more headaches.

I would consider having OpenGL as your most familiar graphics API is better because of wider support and it is easier to get going with in my experience - It is more fun to learn with OpenGL and there are usually less "WTF is going on??" moments.

Share this post


Link to post
Share on other sites
[quote name='PurpleAmethyst' timestamp='1353078738' post='5001551']
I would consider having OpenGL as your most familiar graphics API is better because of wider support and it is easier to get going with in my experience - It is more fun to learn with OpenGL and there are usually less "WTF is going on??" moments.
[/quote]

I'd suggest qualifying this statement a little.

GL has wider support in terms of platform availability for sure, but in terms of driver quality and assuming Windows, D3D is ahead.

Regarding it being easier to get started, that could be said to be true if you're referring to glBegin/glEnd code, which D3D has no equivalent of. However, many people would advise that learning glBegin/glEnd stuff is actually a case of learning the wrong thing, and when you compare glBegin/glEnd to modern OpenGL, the difference between GL and D3D becomes virtually non-existent.

So if you're referring to glBegin/glEnd, then it needs to be made clear that you'll get started for sure, but you'll quickly enough hit a point from which you can't really go forward.

Isolating the discussion to the modern versions of each API (by which I mean we're talking about VBOs, shaders, render to texture and GPU computing), the APIs are equivalent with D3D being slightly stronger with documentation (I'd dock marks for the awful D3D11 documentation) and substantially far ahead for tools/etc.

Share this post


Link to post
Share on other sites
I did say learn OpenGL > 3.2, not the glBegin/glEnd rubbish.

I still, personally, think GL is easier to learn even with the modern way of doing things in GL is easier and clearer.

I'm not going to get into a row about OpenGL vs DirectX. They are both graphics APIs, they do exactly the same job.

Share this post


Link to post
Share on other sites
[quote name='PurpleAmethyst' timestamp='1353095015' post='5001620']
I did say learn OpenGL > 3.2, not the glBegin/glEnd rubbish.

I still, personally, think GL is easier to learn even with the modern way of doing things in GL is easier and clearer.

I'm not going to get into a row about OpenGL vs DirectX. They are both graphics APIs, they do exactly the same job.
[/quote]

True, I grant you that. :)

Share this post


Link to post
Share on other sites
As said, 10 year old DX9 code still works on DX9 today. With OpenGL you can build with new features on old things, but I think it's mostly a bad thing - it's why OpenGL is a terrible mess nowadays if you don't go for the strict core versions that don't have any deprecated features.

In the end there's not that much between them; I'd choose the one that feels more comfortable to program with - try a bit of both and then choose.

Share this post


Link to post
Share on other sites
[quote name='powly k' timestamp='1353167189' post='5001772']
As said, 10 year old DX9 code still works on DX9 today. With OpenGL you can build with new features on old things, but I think it's mostly a bad thing - it's why OpenGL is a terrible mess nowadays if you don't go for the strict core versions that don't have any deprecated features.

In the end there's not that much between them; I'd choose the one that feels more comfortable to program with - try a bit of both and then choose.
[/quote]

are you sure about that? because I want to read jim adam's advanced animations in directx. it uses directx9 but reviews says the code is incompatible with the current directx9.
Its these kind of things that make me angry about updates to APIs. If your gonna update, dont break it in the process Edited by ISDCaptain01

Share this post


Link to post
Share on other sites
you know what? i think im just gonna go with allegro since its easier for a hobbyist like me. I think learning a full fledge 3d api will be more of a pain then pleasure. I might comeback to direct3d/opengl when i feel more confident, and feel like dealing with windows code

Share this post


Link to post
Share on other sites
Captain,


You are the captain of your ship, but if you keep changing ships in mid ocean, then you might find yourself on all the same ships eventually! [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img] Remember the saying, "The grass is always greener on the other side."? The next ship will always be better. [img]http://public.gamedev.net//public/style_emoticons/default/laugh.png[/img]

This time, stick with your decision until you are relatively proficient at in that area. [img]http://public.gamedev.net//public/style_emoticons/default/wink.png[/img]


Clinton

Share this post


Link to post
Share on other sites
[quote name='3Ddreamer' timestamp='1353548125' post='5003091']
Captain,


You are the captain of your ship, but if you keep changing ships in mid ocean, then you might find yourself on all the same ships eventually! [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img] Remember the saying, "The grass is always greener on the other side."? The next ship will always be better. [img]http://public.gamedev.net//public/style_emoticons/default/laugh.png[/img]

This time, stick with your decision until you are relatively proficient at in that area. [img]http://public.gamedev.net//public/style_emoticons/default/wink.png[/img]


Clinton
[/quote]

I havent chosen an api yet, im getting my data structures and algos down first. I wanna be comfortable in c++ first. Just thinking ahead
I havent set sail yet [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img] Edited by ISDCaptain01

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this