Jump to content
  • Advertisement
Sign in to follow this  
d000hg

Getting my VC++ 2005 Express port linked up to DX8

This topic is 3959 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have a C++ game, which is a big set of projects. I was using it on VC++ 6.0 until I got distracteda year ago. I've now got a new PC with VC++ Express 2K5; I have managed to get Win32 working and imported my .dsw... but of course I get loads of errors about D3D8.h, D3DX.h, etc. If it wasn't late, I'd have a play trying to get a bit further. But it is late, so can anyone remind me of the steps I need to take? It's been ages since I did any C++ project setup stuff - I worked on this project for years so all that stuff was done a long time ago - and I've never used VS.net, so while I'm sure I can figure it out you guys can save me some time. Maybe a lot of time - I hate project configuration. I guess my main question is if I have to use a later version of DX, since it is always very hard to find obsolete DX SDKS? If I include D3D9.h or whatever, will things like D3DLight8 still exist - I think I can still use DX8 and D3DX8 from DX9, right? I'm not really interested in porting to DX9/10 tight now, I just want to see if I can get my code to compile/run with as little work as possible. Thanks.

Share this post


Link to post
Share on other sites
Advertisement
d3d8.h is still included in the current SDK, but I couldn't find D3DX, and new SDKs tend to break even old D3DX9 code, so I can't be too hopeful about that.

Depending on the size of the project (and its design) you may be able to port to D3D9 without much trouble. I remember doing that a few years ago, and it took about a day. Though later D3DX changes caused some more headaches, but the conversion should still be not too hard.

Share this post


Link to post
Share on other sites
So is the current DX SDK most people use v9 or v10? Once 9 came out they took 8 away very quickly.

Porting would be a pain. I've not done any low-level D3D stuff for a while (plus I have DSound and DShow being used) but the thing is I've used the D3DX classes quite a lot in my code - I use their vectors a lot instead ofmy own vector class is the main one. I guess I could get the DX9 SDK and then use refactoring tools to replace '8' with '9' all over the place?

Share this post


Link to post
Share on other sites
Quote:
Original post by d000hg
So is the current DX SDK most people use v9 or v10? Once 9 came out they took 8 away very quickly.

Porting would be a pain. I've not done any low-level D3D stuff for a while (plus I have DSound and DShow being used) but the thing is I've used the D3DX classes quite a lot in my code - I use their vectors a lot instead ofmy own vector class is the main one. I guess I could get the DX9 SDK and then use refactoring tools to replace '8' with '9' all over the place?
Most people are still using DX9, because you need a DX10 card (GeForce 8, etc) and Vista to use D3D10 at all, even for delopment.

As far as I know, DSound and DShow shouldn't be a problem, since they haven't changed in DX9. I use DSound still, and I have no problems with the lastest DX9 SDK, and DShow is in the Platform SDK now.

As far as D3DX goes, basic classes are usually fine, it's just things like ID3DXSprite and ID3DXFont that have changed a bit. Even then, it's not huge changes really, just an extra parameter here and there usually.

Share this post


Link to post
Share on other sites
DX9 forms the basis of Vista's UI, and it'd be here for a while longer. It's quite similar to DX8 (*), unlike the differences between 7->8 or 9->10, so converting to it shouldn't be a serious issue. It may be a way for you to re-learn DX, and get up to speed on DX9 at the same time. I know it'd be easier for a start to get DX8 working, but I think it'd be more productive to convert to DX9. Plus you're more likely to be able to get help with DX9, since people don't use DX8 any longer.

* The major difference is the addition of HLSL and advanced shaders, but itstill supports the fixed function pipeline and asm shaders (unlike DX10).

Share this post


Link to post
Share on other sites
Have you lost your VC6 CD ? If not, why can`t you install it and use VC for DX8 and VS2k5 for other projects ?

BTW, DX8 is still great for casual game projects so it`s not dead yet. I still use it for example.

EDIT : It seems you don`t have DX SDK for DX 8.1 - if that`s the issue, I could upload it for you. PM me if you want that.

Share this post


Link to post
Share on other sites
Quote:
Original post by VladR
Have you lost your VC6 CD ? If not, why can`t you install it and use VC for DX8 and VS2k5 for other projects ?
Please tell me you're joking... VC6 is NOT a C++ compiler, it's over a decade old, has some serious bugs in it that prevent fairly simple, legal C++ code from compiling at all, is far from optimal, and hasn't been supported for several years.

The old reason you'd want to install VC6 is if you had a 486 machine with Windows 98 and were isolated on the North pole with no Internet connection to download VC2005.

Share this post


Link to post
Share on other sites
No, I`m not joking. As I said, I`ve got VC2k5 installed on my PC, but I find it slow,bloated and hardly usable due to several UI flaws. Therefore, I still develop my games under the old VC6. Despite the claims all over the net, I don`t have a problem running the games I code in 200-500 fps (and their not even set to "Optimized for speed" setting), so it`s definitely not slow for me. I doubt that VC2k5 would produce that much different code that it would it double my performance. Maybe 10%, but 10% (if that at all) is nothing.

PLUS, last time I had to install VC2k5 because of one company, I spent 3 days just installing all patches/updates. One particular patch took over 9 hrs on my PC to install !!!

Besides, VC6 and its UI is pretty fast under Core2Duo, which can`t be said about VC2k5.

I`m going to port my engine to DX9 this autumn, but until VC2k5 becomes actually usable and stops crashing all the time (this happens extremely rarely with VC6), I`m sticking to 10yrs old VC6, probably for next 2-5 yrs and my next 2-4 PC games. In worst case, I`ll still have one disk with XP and another with Vista.

Share this post


Link to post
Share on other sites
Hmm, weird. I've had no problems whatsoever with VC2005 (Express and Professional). There's only one service pack for it, and that took 5 minutes to install (Plus one hour to download). I haven't noticed any problems with responsiveness on 3 seperate PCs (Core 2 Due, AMD X2, AMD Athlon - admittedly, each with at least 1GB RAM).

The compiler bugs with VC6 are mainly template and STL related, but there's also the problem with the scope for variables declared in for() loops, and likely other bugs I don't know about.
While it might not be particularly slow, I'd expect you to get a reasonable speed boost from upgrading to VC2005, although I doubt it'd be much more than 10% (Which is still a pretty big jump), and it obviously depends on your code and how much you use stuff like the STL.

Share this post


Link to post
Share on other sites
Well, any advantages of STL are immediatelly wiped out by inability to see the contents of the array. Yeah, you can type those "_First,_Last,_whatever" suffixes to each array variable in Watch window, but that`s totally killing any time saved by using STL in the first place. Plus, you have to retype them in watch window each time you run the program again.
And AFAIK, it`s impossible to see contents of whole STL array at once in the watch window, while regular dynamic arrays created on heap are browsable.

Besides, writing new code takes maybe 20% of the total time (at most). The rest is spent designing/tweaking/debugging/testing.

Also, after 6 yrs of C++, I learnt to code any new array type with automatic initialization/self-allocating/de-allocating features and it takes like 5 minutes each time I create new class. I also don`t remember having a Cx0000005 exception for around 3 yrs although I`m always catching/logging them, so pointers/memory leaks aren`t a problem either.

The issue with local loop variable isn`t even an issue at all. Occasionally, it does happen to me, but it`s like once per month, and it takes less than a minute to fix it, so no big deal either.

Also, when you need other projects opened, starting another instance of VC takes less than a second, which is absolutely stunning (compared to loading/switching another project under VS2k5).
It`s gonna take 10 yrs and 3 major upgrades until VS2k5 shall load under 1 second (if ever).

There are a few other quirks with VC++6, but that`s an order of magnitude less compared to, say, Eclipse and Java :-)

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!