Sign in to follow this  
xelanoimis

support both old and new video cards

Recommended Posts

Hi, What would be the best approach for a render engine to support both old and new video cards. I know vertex and pixel shaders are now a standard in recent cards, but the casual market still develops for DX7 and say it's worth it in sales. And who knows when one wants to write a casual 3D game. So, I'll be developing the engine with DX9 in mind, with programmable shaders and everything, but I wonder how to support the old video cards as well if needed. In the same time I don't want to limit the DX9 features, just to match old cards caps. One idea is to have a different render.dll (or even game.exe) and different sets of data. DX9 meshes might need additional vertex components, and I can use effects for shaders. For old cards support, I can have other render class, loading other shader files, with states and what's needed for fixed pipeline, or even other meshes (with less geometry,etc). But this idea would grow the game's download size. And would double the render development time. Another idea, not very common, is to have separate the downloads for old cards and new cards, like Mac and Windows, but probably people won't know what they have to download. Anyway, how do you support old video cards in your render modules? And does DX9 support effect files running fine on fixed pipeline (with software vx processing and no pixel shaders)? Can this be an option, to only have different effect files or different techniques for old cards? Does anyone use this in their games?

Share this post


Link to post
Share on other sites
DX9 is a good choice here as it gives a good blend of old and new.

Quote:
does DX9 support effect files running fine on fixed pipeline (with software vx processing and no pixel shaders)? Can this be an option, to only have different effect files or different techniques for old cards?
Yes.

I'd personally go for an Effect-driven architecture because you can still embed old-style fixed-function rendering into techniques. This way you can make a lot of the old-versus-new a purely data-driven/configuration issue which is about as good as you'll get.

Bare in mind that you're not just scaling on the feature axis, but also the performance axis. The Geforce 1/2/4mx are wholly different beasts when stacked up against a GeForce 9 - at a guess you could be scaling ten-fold on performance, which puts a strain on your assets as well as your technology.

Have a dig around for the older Source Engine documents from Valve. If memory serves then they supported the full extreme from FF through to SM3, so you may glean some tidbits of information from their presentations as to how they did it.

hth
Jack

Share this post


Link to post
Share on other sites
Usually you'd pick a card you want as your minimum requirements, and then just aim to make the game run on that hardware. Very few games will support both fixed function and shaders because of the added complexity.

Share this post


Link to post
Share on other sites
Thanks for the answer.

Quote:
Original post by Evil Steve
Usually you'd pick a card you want as your minimum requirements, and then just aim to make the game run on that hardware. Very few games will support both fixed function and shaders because of the added complexity.


Yeah, but I just want the game to run on older cards too, no matter how slow (playable) or ugly (single texture, or so).

Share this post


Link to post
Share on other sites
Quote:
Original post by xelanoimis
I just want the game to run on older cards too, no matter how slow (playable) or ugly (single texture, or so).
Well if you take away one thing make sure its that you don't underestimate how complex this could be [wink]

Another thing to consider is the business angle, obviously assuming you're trying to sell this into the casual market that is...

Writing a regular SM2/D3D9 app might get you access to 10% of the market - those with new Windows Vista machines capable of running the AERO interface for example. Then you roll it back to have D3D9+FF fallbacks, ok for some high-end pre-shader or SM1 hardware. Now you've got access to 80% of the market.

Then you spend a huge amount of time and effort cutting it back to handle the original D3D7-IM+T&L hardware circa 1999-2001. You now have access to 85% of the market.

The short of it that you could put a disproportionate amount of your time into getting a very small segment of the market. Is there not something better to invest your development time in? Something that might improve the experience for the dominant customer base?


It is this sort of thought process that leads to Steve's comment about picking a minimum hardware level and working up from there. Picking that level comes from deciding which segment of the market is worth targetting and what specification hardware are they likely to have?


hth
Jack

Share this post


Link to post
Share on other sites
Indeed, I'm not to waste dev time for an very small percent of the market, though that percent depends on the game's style. Somehow I think that in casual market it is much higher than 5%.

Does anyone have recent statistics?

Share this post


Link to post
Share on other sites
Quote:
Original post by xelanoimis
Indeed, I'm not to waste dev time for an very small percent of the market, though that percent depends on the game's style. Somehow I think that in casual market it is much higher than 5%. Does anyone have recent statistics?
Valve's recent Steam Hardware Survey shows that 80% of their users support SM 2.0 or better. I realise that the casual market is probably a little different, especially with all those anaemic GMA 950's kicking around.

Edit: I just noticed that the 950's all ended up in the SM 2.0 section. I guess they do better than I would have expected on steam.

[Edited by - swiftcoder on September 18, 2008 3:37:17 PM]

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