Game Design, Programming and running a one-man games business…

Why use Directx7 (and dead links)

My games use directx 7. Not 8, 9 or 10. SEVEN. That is OLD. If you have windows XP and never installed anything, you already have Directx7 (or later, which is fine).

Why do I do this?

Several reasons. Firstly, DX7 is the version I learned when I first wrote a reusable graphics engine for use in multiple games. Re-writing an entire engine can be a slow process. Don’t get me wrong, getting it to WORK, is not a big deal, but getting it stable, bug free and (essential for an engine) FAST is very slow work. I know DX7 very well, I have optimized it to death, and know my way around the API really well.

Secondly, DX7 is all I need. I don’t even do 3D games, let alone ones using bump mapping and pixel and vertex shaders. I don’t stream geometry or use mip maps, or do multithreaded vertex processing or anything clever like that. DX8 and 9 *do* achieve some simplification of code, but don’t add anything I need.

Thirdly, DX7 means everyone who buys the game will have drivers that support the game. I don’t need to package the game with the directx installer or worry about such things. Some people playing indie games on laptops have very low spec cards, and you are best off sticking with DX7 if you can. A LOT of casual games use DX7.

The thing is, Microsoft REALLY don’t like this. Obviously they try and push you to use the newer versions, that’s natural, but it’s almost like they are insulted and annoyed if you want to stick with DX7. It is *impossible* to find a download of the directx7 SDK. Microsoft removed it from their website, including all earlier versions. They want to FORCE you to use the new stuff, even if its just pure hassle with no gain. After all, why would anyone make a game without bump mapping right?  I am rewriting part of my engine in an attempt to speed it up yet again, and I was forced to dig out the CD that came with an old book to find some source code, written by Microsoft that they refuse to let you have any more. It’s mad. I have released a lot better games that ‘Asteroid Miner’, but if you follow a link from a website not updated since 1997 to my homepage (which has moved servers 4 times since then), to an outdated zip file containing the game in the root of my site (before I knew not to do this) that zip file is STILL there. I just think it’s rude to move files people have linked to, for no good reason. Every time I follow a link to a companies website that’s dead, I just think they are LAZY. Web links last a very long time, why encourage inward pointing links to die?


6 thoughts on Why use Directx7 (and dead links)

  1. If your games work fine with DX7 and there is no need to move on to newer versions then why shouldn’t you continue to use earlier software. It’s a good way to maximise compatibility with both new and older machines. A pity Microsoft didn’t consider compatibility before cramming Vista down our throats.

  2. Or you could move to OpenGL and then your game would not have to worry about directx versions or having to find the DX7 sdk.

  3. You make a good point Mr. Harris :)

    I finally found a copy of the DirectX 7 SDK samples in a file named dx7adxf.exe. I had to search a long time to find it. But I can now run all of them in the latest Visual Studio. The .mak files and the code does for the most part work directly after they have been opened and converted in Visual Studio. Some of the .vbp projects work directly after conversion to. I have of course the older versions of Visual Studio and Visual Basic to and can run the projects there to.

    I wish I could find some of the DiretX 1 to 6 SDK samples to. I really like to see old code and remember how it used to work a while back. And as you say the exe’s they produce are probably just as viable as the ones produced with newer versions.

    Best Regards
    JP

  4. I totally agree with this! I have been working on a game in my spare time for awhile now. I had an engine I modified from the book “Windows Game Programming for Dummies” that used the DX7 stuff. It sat on a back burner for awhile, and when I got around to working on it again, DX9 was out. So, over a few months, I basically took the time to trick the direct3D interface into drawing in 2D (since DirectDraw 7 is the latest version), and it’s still not that optimized, full of bugs, and most people have to update their DX to even play it! I have been SERIOUSLY debating going back to a DX7 release, but no one seems to have the old SDK anymore. I’m going to have to see if I can either still use the DX7 interfaces from the DX9 sdk (which has thus far given me many bugs and headaches), or dig up an old copy of the DX7 SDK, or kludge something together from what I can find.

    Anyway, just stumbled across your blog, but I like the way you think man! I want to develop games for the casual market, too. Just because you don’t have the latest 3D card w/ 2gigs of VRAM and pixel shader v 8.7352.94bdcq doesn’t mean you shouldn’t be able to play my random single screen puzzle game in 2D, it’s just obnoxious!

    And I’m with Xio up there; have honestly thought about using OpenGL for my next engine for 2 reasons: No stupid SDK issues w/ Micro$oft, and then I can tap into the Linux market without them having to run my games under Wine.

    Anyways, just some thoughts/rants. Keep up the good work man!

Comments are currently closed.