Targeting older machines

Hi there.

I guess part of this is more of an opinion question.

I want to target older machines that may not have up-to-date graphics cards.

Right now I am using a game engine that gives the developer the option of using DX8, DX9, or its own software driver.

To compile the engine, I naturally need the DirectX SDK. Problem being that the latest realeases don't have DX8 support.

So the question becomes:

Is DX9 a 'safe' way to go for older machines (in which case I will just pitch the DX8 stuff in the engine)

Or should I try and grab an older version of the SDK that includes DX8 support

Thanks.



Answer this question

Targeting older machines

  • Andreas H

    Hey, Thanks for the Replys!

    The "which driver issue" I think is settled for me - DX9 along with the redist for pre-sp2 machines.

    What I meant by "average" was non-gamers, typical household types.
    I know that will severely limit a lot of stuff like particle effects and wicked looking shaders, but that's ok, for what I am doing - I don't need anything too special.

    The application I am making is basically a simple educational game for grade-school kids in an FPS environment. The content is primarily meshes with the textures having been baked. No specular, real time shadows, per pixel shading, etc.

    I guess I am worried that the typical household machine won't even be able to display that much. (depending on the number/size of meshes, of course)

    I suppose I'll give it guess by looking into the major OEMs and trying to see if they have any sales data that shows a breakdown of what they have sold in the past few years - I would think a publiclly traded comapany would have that info available.

    Thanks again.



  • JACK SPADES

    Only d3dx8 headers have been taken out - everything else is there (d3d8.h, dinput8.h, etc). So if it's d3dx only that's indeed causing you trouble, try using d3dx9 instead - it'll work for non-device dependent functionality (e.g. vector and matrix operations) only though.

    As for the benefit of compiling with DX8, or more specifically, D3D8:

    • Some older cards whose drivers DDI < 7 cannot create a D3D9 device at all. With D3D8, you'll be able to support them. Not sure if this is of much benefit, though, as the only cards I've seen like this so far are the S3 Virge (Oh God...) and some old SiS chips. With these, you'd have trouble getting simple things as FPP lighting working in the first place :)
    • Windows XP pre-SP2 comes with DX8.1, and so does Win2K IIRC. Using D3D8 allows you to deploy to these platforms without having to ship the redist or have the user download and install it.



  • Thomas Malbeck

    What I mean, is that the engine I am using needs the d3d8.h, and others that are no longer in the DirectXSDK.

    I am making other changes to the engine so I have to re-compile it.

    When I recompile it, I either need to have those *.h files, or remove anything about DX8 from the engine source.

    I have no problem doing that, (and would rather do so) but I am really just wondering if there is any benefit to compiling with the DX8 that the engine is asking for.

    Not sure if I am still making sense.

    Thanks,


  • William Lowers

    oh, sorry....I meant d3dx8 headers.

    so then:
    If I go with using the DX8 device in my app, then I will need to include the redist for machines XPsp2 and newer, but will probably not be able to do as many things as I would with DX9

    And if I go with DX9, it is really only the much older, on-board SiS chips (and the like) that won't be able to play, but everything else should (at least) be able to create the DX9 device (preformance varying by specific hardware of course)

    It sounds like over all it is time to go ahead and pitch DX8.

    One more thing...is there anywhere any data on what the "average" home machine out there is
    I would guess that it is something along the lines of a dell or hp, celeron or so, maybe 256 megRam and on-board graphics.

    Basically, I am trying to get a better idea of what the general public "target" is, as I wantt to accomodate as many "average" users as possible.

    thanks again



  • Maik Wiege

    As long as the hardware have a driver for at least the D3D7 interface it will work with the D3D9 runtime. AFAIK every driver ever build for Windows XP support D3D7. You could get in trouble with Windows 2000 or even more worse Windows ME/98.

  • Kamaleshwaran

    DirectX is COM-based, and thus is backwards compatible. The latest SDK should support DirectX 8 just fine. Can you provide more details on what you mean by lack of support



  • Kevin Dherman

    I've joined the party a little late here...

    Might not be useful/relevant, but last time I checked you could download the DX 8.1 SDK with an MSDN subscription. Might be worth checking if you have access to that sort of thing and still want the older SDK.

    Regarding "average" user configurations - that sort of market information is like gold dust. The definition of "average" itself is very context sensitive - there are several different types of users (and hence configurations) around so you'll need to be more precise as to whom you're targetting.

    There is the valve survey though. It's got a lot of interesting stats, but unsurprisingly it's going to be a survey of gamers rather than your average home PC thats mostly used for email

    hth
    Jack



  • Bgr

    EDIT: Looks like I left the window open for far too long before replying!

    If I go with using the DX8 device in my app, then I will need to include the redist for machines XPsp2 and newer, but will probably not be able to do as many things as I would with DX9

    If you use D3D8, you won't need to include a redist for Win2K and later. If you use D3D9 you won't need to include a redist for WinXP SP2 and later.

    As for what you can and can't do, it depends on your target anyway. The FFP is nearly unchanged from D3D8 and 9, IIRC. The changes in the programmable pipeline were bigger, but not that much either (Again, IIRC - been a long time ). But you can say that for the latest-and-greatest, not using D3D9 will be a bit limiting, yes.

    One more thing...is there anywhere any data on what the "average" home machine out there is
    I would guess that it is something along the lines of a dell or hp, celeron or so, maybe 256 megRam and on-board graphics.

    This again depends on your definition of average user. There are lots of player types, including FPS fans (with typically powerful rigs), RPG fans, Strategy fans, Casual players, etc. I don't believe there's an accurate statistical study out there that covers the wide range of gamers, but Valve has published one for their Half-Life gamers: Half-Life Gamers' Survery



  • Targeting older machines