How to determine requirements

Started by
11 comments, last by BlueMonk 17 years, 2 months ago
Quote:Original post by BlueMonk
Quote:Original post by Todo
DirectX10 is AFAIK an essential part of Vista, and doesn't work with any previous version of the OS (because of its model), so you shouldn't have to bundle any part of DirectX with your game/application. In fact, I'm not sure it's possible (e.a. will there be anything like an end-user runtime distro?)
I downloaded the DirectX 10 SDK, and it came with redist components. Also, I don't expect the people using my software to be running Vista. (Not that I'm ruling it out, I just expect the majority to be using Windows XP.)


You don't have a choice in that regard: D3D10 is available exclusively for Windows Vista, because of underlying changes in the hardware driver model. You can run D3D9 apps on Windows Vista, but not D3D10 apps on Windows XP. Or has this changed yet again recently? Mind you, this has nothing to do with the availability of the SDK (although I didn't know of the bundled redist, thanks for that info).

Quote:Original post by BlueMonk
Quote:Original post by Todo
Incidentally, that's how developers take care of things. You anticipate compatibility issues (amongst others) and handle them accordingly (=> scalability). How far you wish to go ultimately determines how many people you will amount to.
Yes, I anticipated compatibility issues with different systems supporting different display modes. But DirectX is much more complicated to scale than other things because there are so many variables to check. So I tried only to deal with scalability only at the simplest level (I don't have the resources to go into it too deeply with this being a project I'm working on alone in my free time), but I'm having unexpected problems (I'm sure you know, not every issue can be anticipated). So now I'm trying to work out just what requirements/variables there are that I didn't catch. The strange thing is that this is just a new version of a product I've already made (albeit a rewrite in a new language with a new version of DirectX) and I didn't have these kinds of problems with the first version. I think I just went about enumerating display modes wrong, so I'm working on fixing that, and hopefully that will eliminate some of my problems.


Nobody expects you to anticipate all problems :-). Plus, you're an indie, so it's cool. I know very well of the problems that can arise during play testing on different machinery, as it happened to us more than once during college projects.

Quote:Original post by BlueMonk
Quote:Original post by Todo
I don't know what ScissorRectangle is in this context, but if you mean the scissor test, then no, it won't. Both operate on independent primitives. Unless you mean that the result of a transformation may place the scene outside the scissor rectangle, but that's trivial.
Well, I use ScissorRectangle to clip some pieces of the output, but depending on what type of output it is, I might want to clip it before the transformation instead of after, and I doubt scissor testing supports that. Maybe I should be using something else for 2D clipping, but this is the best/only thing I found that works.


The scissor test rejects pixels at one of the last stages in the fragment pipeline, thus after any transformation on vertices. If you want clipping to happen earlier on, you should use clipping planes or play with the frustum.

Cheers.
Advertisement
Quote:Original post by jollyjeffers
Designing to be resolution-independent is well worth the effort. I'm using a 1600x1200 20.1" display right now, if I run it at 640x480 it looks fugly - really fugly!

Hi Jack,
Of course this advice is spot on. I have been doing this for a while now and it's quite rewarding when everything scales nicely and shows more detail when it's available, etc.

My question is, how do you plan to accomodate the increasing percentage of displays whose ASPECT RATIO is not 4:3? For instance, some of my games designed for 1024x768 look like crap on my friends' widescreen LCDs. Any idea how the industry plans to react to this? Its one thing to design a game for any 4:3 resolution, but when the aspect ratio varies it seems to me impossible to plan in advance how to place sprites, etc. on the screen without distortion, or without basically designing several different products for each possible display.

Quote:Original post by Todo
Quote:Original post by BlueMonk
I downloaded the DirectX 10 SDK, and it came with redist components. Also, I don't expect the people using my software to be running Vista. (Not that I'm ruling it out, I just expect the majority to be using Windows XP.)


You don't have a choice in that regard: D3D10 is available exclusively for Windows Vista, because of underlying changes in the hardware driver model. You can run D3D9 apps on Windows Vista, but not D3D10 apps on Windows XP. Or has this changed yet again recently? Mind you, this has nothing to do with the availability of the SDK (although I didn't know of the bundled redist, thanks for that info).
Oh, well all I can say is that I downloaded the latest DirectX SDK (which I thought was 10, but maybe that was just a logo I saw on the page where I downloaded it, and it was actually 9), and was running it on a laptop in Windows 2003 to test the limited hardware capabilities of the laptop. So I don't know if I was running DirectX 10 or not. I looked at some of the components and was confused by the use of version number 9, but then I did also find documentation on the new interface mentioned above for accessing the debug info in DirectX 10. I suspect it was DirectX 10, but the managed components haven't been upgraded yet... pure conjecture.

For my part, however, I've ended up sticking with DirectX 9 because that's what I have on my main development system, and I managed to get "everything" working there finally. Well, it always was working there, but I mean I got the program compiled in that environment to work in environments where it was failing before. Apparently my main problem was requesting hardware vertex processing, and the system(s) in question didn't support that, and DirectX didn't degrade gracefully like I thought it might (I thought it might because there's also a PureDevice flag which I thought one might use to force hardware usage, while I thought HardwareVertexProcessing would just "request" it without forcing it or something). The other thing that misled me is that there seems to be no way to determine whether the hardware supports hardware vertex processing (overall) or not, so I figured that issue must be irrelevant somehow, and that I should just pass what I want and it'll figure out the rest. I see a VertexProcessing member of the DirectX Caps structure, but it appears to be specific to individual subsets of vertex processing, and not the overall capability. I don't think I use vertex processing (unless D3DSprite uses it behind the scenes), but it looked like I had to pick some option since every possible option for vertex processing was a member of the enum, and every piece of device creation sample code I found was supplying that info. So I picked what the sample code did, expecting it to work. I still don't know how the code is supposed to determine what to pass for CreateFlags.
"All you need to do to learn circular logic is learn circular logic"

This topic is closed to new replies.

Advertisement