Sign in to follow this  
geekalert

It's deprecated. So what?

Recommended Posts

Even though DirectDraw has been deprecated since version 8, does it still exist in version 9? Can a DirectDraw program compile with the DX9 SDK? Thanks for any replies.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by ussnewjersey4
Yes, but why would you want to use it? Its such a pain and everything it can do can be done much more easily in Direct3D.


You could be targetting people who don't have a nuclear plant for a graphics cards, for one thing. That's probably the majority of PC owners and of casual gamers. :-)

Hope this helps.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
You could be targetting people who don't have a nuclear plant for a graphics cards, for one thing. That's probably the majority of PC owners and of casual gamers. :-)

Hope this helps.


If my 500Mhz with 64MB of RAM and raging power of 8MB of shared video memory can run MechWarrior 3, I can pretty much bet that it'll run a 2D game made with Direct3D.

If they're using less than that, well.

Share this post


Link to post
Share on other sites
Well, seeings one of my computers has a card(geforce 2 mx) that is so old that it isn't even officially supported anymore, and yet can still run Direct3D applications fine, I don't see what you're point is. A Geforce 4200 currently can be found for $20, and it would be plenty to run casual games.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
You could be targetting people who don't have a nuclear plant for a graphics cards, for one thing. That's probably the majority of PC owners and of casual gamers. :-)

Hope this helps.




HAHa...

Although I dont think I want anything nuclear thats integrated with Windows... The thought of having to SCRAM my graphics card and constantly perform a Fast Recovery Startup just to play a few hours of HL2 would be very stressful.

Share this post


Link to post
Share on other sites
Most people who actually intend to play games (apart from hearts, solitaire, ect.), will own a computer capable of running DirectX 9. The other reason most people will reccommend you use Direct3D for your 2D work, is because it not only lets you do things that in DirectDraw would have been very difficult (rotating things comes to mind), but it also gets you some practice with Direct3D, which you will appreciate if/when you move onto more complex projects.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by Liam M
[snip] it not only lets you do things that in DirectDraw would have been very difficult (rotating things comes to mind), but it also gets you some practice with Direct3D, which you will appreciate if/when you move onto more complex projects.


If rotating in 2D is difficult, I'm sure you will appreciate the learning experience if/when you move onto more complex projects. Then there's the whole discussion regarding the definition of "complex". :)

/ DragonL
(Yes, I'm too lazy to create a forum account.)

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by Liam M
Most people who actually intend to play games (apart from hearts, solitaire, ect.), will own a computer capable of running DirectX 9. The other reason most people will reccommend you use Direct3D for your 2D work, is because it not only lets you do things that in DirectDraw would have been very difficult (rotating things comes to mind), but it also gets you some practice with Direct3D, which you will appreciate if/when you move onto more complex projects.


I was actually thinking of the solitaire/card games players who play on their office break, or even online poker players and the such. That's what I meant with "casual". If it isn't the correct term, I'm sorry. I didn't mean to imply that D3D is "bad", just that programmers should know their target audience.

Hope this helps.

Share this post


Link to post
Share on other sites
The answer is yes. If you want to use directdraw, especially if you are following an old book that deals with it, then go for it. There are other alternatives, but if you are just doing your own project for fun, or learning with directdraw books, it will suit you fine for now.

This is the major failing of gamedev.net. Simple yes or no question, and instead it will generate 2 or 3 pages of this redundant crap, and the user never gets the answer they need.

He didn't ask what you thought.
He didn't ask if it runs on linux.
He didn't ask if DD was all the rage in the latest coder fashion.
He didn't care if there were newer or better things.
He didn't ask for an essay on the evolution of 2D graphics on the windows platform.

He just wants to know if he can compile directdraw with the newest SDK. Why can't you just answer his question, and remove his doubt so he can be on his way?

Share this post


Link to post
Share on other sites
Quote:
Original post by Vampyre_Dark
He didn't care if there were newer or better things.


This is the point that irks me most about that post, heh. This is a beginner's forum; while it certainly is fine to answer a question directly, the additional purpose of this forum is to help people improve. Sure, learning the older methods for the sake of learning is fine, but didn't you ever wish you knew about the much better solutions than what your six year old book taught you?

I'm not much on DirectX so I can't say much for how deprecated DirectDraw is, but I can't say I'd ever recommend using an older system over a newer, better system.

Share this post


Link to post
Share on other sites
Quote:
Original post by tychon
Quote:
Original post by Vampyre_Dark
He didn't care if there were newer or better things.


This is the point that irks me most about that post, heh. This is a beginner's forum; while it certainly is fine to answer a question directly, the additional purpose of this forum is to help people improve. Sure, learning the older methods for the sake of learning is fine, but didn't you ever wish you knew about the much better solutions than what your six year old book taught you?


No. I moved on when I outgrew the language and tools I was using. I certainly didn't wish that ten posts into my thread no one will have answered my questions. Simple questions are too hard a task for most gamedevers, and instead they take the opportunity to change the subject and confuse more than actually helping.

Quote:
I'm not much on DirectX so I can't say much for how deprecated DirectDraw is, but I can't say I'd ever recommend using an older system over a newer, better system.


Then why post?

Quote:
If my 500Mhz with 64MB of RAM and raging power of 8MB of shared video memory can run MechWarrior 3, I can pretty much bet that it'll run a 2D game made with Direct3D.

If they're using less than that, well.
Can you show me how that helped the user answer his 1 question about whether or not He could still use DirectDraw? That certainly didn't help him improve, and I do't see why it's even here at all. This is not a personal attack at all. But he he didn't ask and doesn't care about the power of your shared memory video card.

Share this post


Link to post
Share on other sites
Quote:
Original post by Vampyre_Dark
No. I moved on when I outgrew the language and tools I was using.


You never once solved a problem that had already been solved in a simpler, far more reusable manner without knowing it?

Quote:
Then why post?


Granted, I made a lot of assumptions in it, but usually if someone's posting in For Beginner's they want either the answer or advice that will help them move beyond the problems to what they're asking. People ask about custom vector classes or how to retrieve array size all the time. The answer is still the same: use std::vectors.

Quote:
Can you show me how that helped the user answer his 1 question about whether or not He could still use DirectDraw? That certainly didn't help him improve, and I do't see why it's even here at all. This is not a personal attack at all. But he he didn't ask and doesn't care about the power of your shared memory video card.


True, though that post was directed to the AP's reason, not the OP's post. If the reason is in fact fear of resources or speed, which seems to be the reason for a number of posts in beginner's, then I'd say the answer to move on is still the best one.

Your intent is duly noted and I'll strive to include the direct answer, in addition to opinions. I probably should have read the "So what?" part a little more closely, hm.

Share this post


Link to post
Share on other sites
The answer is use std:vector is certainly the wrong one. It's not an answer, it's taking an opportunity to preach. Not everyone programs to achieve things in the best possible way using the newest technologies.

When you answer something like that, you make uneeded assumptions about their intent, and you just show your own ignorance and your inability to answer simple questions. You realize that using the vector class is good but not when the ulitmate goal of the user is implementing their own vector class. And they don't need to post a justification for doing it.

There are many reasons to re-invent the wheel. One of which is simply because they want to implement their own vector class for FUN. Some people do that you know. It's also an educational thing that has benifits over just using one that's there. Sometimes the entire scope of a project is just to make their own little vector class for fun.

But a user could never ask that on this forum in it's current state, because the thread gets hijacked by a bunch of running around with podium tucked under their arm looking for a place to set it up and start preaching.

A begginer user, 3 days into c programming asks a simple question about the syntax of a c function like printf and it will spawn 45 lectures about multithreading, iostream, oop, multiplatforms, weather or not every compiler under the sun supports printf. What the hell does it matter? They are usually making a console number guessing game or something similar, and they have have to read through 3 or 4 pages of this bs that has nothing to do with what they asked, and in the end never even gets around to giving a straight answer.

Share this post


Link to post
Share on other sites
Quote:
Original post by Vampyre_Dark
The answer is use std:vector is certainly the wrong one. It's not an answer, it's taking an opportunity to preach. Not everyone programs to achieve things in the best possible way using the newest technologies.

It is rather hard to answer a question if you can't even assume that they want to solve it in a *good* way.

So what you're essentially saying is that questions can't be answered, period. No matter what you answer, it will involve making assumptions.

Quote:

When you answer something like that, you make uneeded assumptions about their intent, and you just show your own ignorance and your inability to answer simple questions. You realize that using the vector class is good but not when the ulitmate goal of the user is implementing their own vector class. And they don't need to post a justification for doing it.

But nine times out of ten, their "justification" is that they didn't *know* there was an easier way. Isn't it relevant to point out then?

Quote:

There are many reasons to re-invent the wheel. One of which is simply because they want to implement their own vector class for FUN.

Oh yes, not arguing with that, but sometimes, people don't intend to reinvent the wheel, they just don't know it has been invented already. Shouldn't that be taken into account?

Quote:

But a user could never ask that on this forum in it's current state, because the thread gets hijacked by a bunch of running around with podium tucked under their arm looking for a place to set it up and start preaching.

Umm... Yeah.. And you definitely aren't doing that... [wink]

Quote:

A begginer user, 3 days into c programming asks a simple question about the syntax of a c function like printf and it will spawn 45 lectures about multithreading, iostream, oop, multiplatforms, weather or not every compiler under the sun supports printf. What the hell does it matter? They are usually making a console number guessing game or something similar, and they have have to read through 3 or 4 pages of this bs that has nothing to do with what they asked, and in the end never even gets around to giving a straight answer.

Show me an example of that, please. Usually, they get their answer *and* a recommendation to, say, use cout or something instead, both within the first handful of posts. Is that so bad? Maybe the poor beginner doesn't *mind* learning that there are better/easier ways to achieve the same thing? Of course, I agree, the actual question should certainly be answered too. And, uh, speaking of which, did you look at the start of this thread? Notice what the very first word in the very first reply is? Lemme quote it:

Quote:

Yes

Here, I can even emphasize it:
Quote:
Yes

See? It got answered right away. Of course, *then* people go into a long discussion of the best way to do whatever they think the OP is trying to do. So what? Is it harmful? At worst, the OP can ignore it. At best, he'll learn something new. In either case, he did get his answer. So why all the preaching?

Share this post


Link to post
Share on other sites
Anyways;

- Yes, you can still compile and link against an earlier DX version (even with a DX9 SDK); all you have to do is make sure you include the right .h and .lib.

- However, it gets pretty painfull because MS has surgically removed any actual documentation from MSDN, and removed the SDK/help documents from the download section

- If you want to do 2D only (for many a good reason, specifically if you're targetting the casual market), I healthily recommend SDL. They've already solved a lot of the funny little compatability issues that DX loves to leave you with (operating on weird/obsolete graphics cards/drivers, etc) and provides a well documented layer on top of DD (DX5, I believe, so should be available on everything except WinNT). There's also lots of good tutorials, and utilities for fonts, texture-loading, sound, etc.

- Finally, once you want to start doing 'cooler' things, DX7 or DX8 is a better bet for doing 2D in 3D for the casual market; we discovered the hard way how low the penetration for DX9 is in the casual market, and that casual gamers considers a 'please install DX9' message to be a crash.... :(

Have fun,

Allan

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by wild_pointer
I know what you're bitching about, Vampyre, but you picked the wrong thread to make your stand.


I agree with Vampyre too, however the battle has in turn derailed the OP's post.

Yes, you can still use DirectX 7. I have actually been working on a game for 2 years now using DirectX 7 and the win32 api. Why? Because I simply wanted to learn directdraw.

I have in turn learned many things from taking the backward step. There are still some things that are just easier using DirectDraw (Video Editing, and direct editing of pixels on surfaces comes to mind).

If you intend to work with graphics for a living, there are still many legacy apps being maintained which use Directdraw.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
OP,

johncurranm said it would work in DX9. However, there are 2 things that could happen in a future release of DirectX. 1.) MS will stop supporting it. which is not a huge deal at least it will be included but Video card manufactures may stop releasing hardware to support it and you are dead in the water. 2.) MS may stop releasing Direct Draw in its DX10 11, 12, 13, etc runtimes which may cause more trouble for you when your program will not run anymore.

With all of that in mind. It may be wise to convert over to Direct3D now and use a 2d viewport to save all of the headaches in the future.

Share this post


Link to post
Share on other sites
Quote:
Original post by __ODIN__
- However, it gets pretty painfull because MS has surgically removed any actual documentation from MSDN...


Untrue. Go to the first result of a google search for "site:msdn.microsoft.com directdraw".

Share this post


Link to post
Share on other sites
Quote:
Original post by bakery2k1
Quote:
Original post by __ODIN__
- However, it gets pretty painfull because MS has surgically removed any actual documentation from MSDN...


Untrue. Go to the first result of a google search for "site:msdn.microsoft.com directdraw".


even better: site:msdn.microsoft.com/archive directdraw

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