Jump to content
  • Advertisement
Sign in to follow this  
tokaplan

New project: DirectX 9 VS DirectX 10

This topic is 3757 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

Hi everyone, I'm starting a new game project; DirectX 10 sounds amazing, but I'm a little concerned about Windows XP users who wouldn't be able to run the application. Which API do newly-launched projects use these days? Thank you

Share this post


Link to post
Share on other sites
Advertisement
Make it platform agnostic. It's never a good idea to tie anything with a specific implementation. How about Linux/Mac users, or alternative platforms like game consoles?

Share this post


Link to post
Share on other sites
Well, you can't make everyone happy, but you have to do your best. It's much more work to implement both DirectX 9 and DirectX 10 renderers, which is exactly why I'm asking: what's the common approach to this question today?

Share this post


Link to post
Share on other sites
Well, let's think about it.... What did the last Steam hardware survey show? Something like 10% of gamers had Vista *and* a DX10 GPU.

So it's up to you, really. Do you want 10 or 100% of the Windows userbase to be able to play your game? [wink]

(hint: There's absolutely no point in targeting DX10 *exclusively*. You might do it *in addition* to DX9 support if you're feeling generous, but it'll be another couple of years or five, before it makes sense to ditch DX9 support.)

Quote:
Make it platform agnostic. It's never a good idea to tie anything with a specific implementation.

Sure it's a good idea. If you don't want to triple your workload, it's a very good idea to pick one target platform.

Share this post


Link to post
Share on other sites
Quote:
Original post by Sijmen
Make it platform agnostic. It's never a good idea to tie anything with a specific implementation. How about Linux/Mac users, or alternative platforms like game consoles?

I disagree. Targetting a specific platform is a good idea if you don't have oodles of time to spend on compatibility between separate platforms. In most cases, targetting D3D9 on Windows exclusively will net you the vast majority of the game market already. Linux/Mac compatibility is nice, but to be realistic it's just a small blip on the radar.

It depends on how long you're going to spend developing your game. I expect DX10 to become mainstream in a few years' time, at around the time of DX11 release. If your game isn't going to take that long to develop, you may as well make it DX9 (unless there's some specific reason to use DX10).

Share this post


Link to post
Share on other sites
What you should do is the following:

Create a directx9 dynamic linking library and create a directx10 dynamic library, then create a static library class wrapper for them containing the same functions. However, everytime you're calling the function from withing the game code, you call the function from the dll you loaded. Isn't that funky?

Share this post


Link to post
Share on other sites
Hello,

I would prefer DX 9, you will reach 90% of the market.
The approach with the different DLLs would be perfect, but only if you have enough time to develop, support and maintain two different implementations ... You will also need to limit yourself to the "lowest" and oldest API - DX9 in this case - or, to avoid this, your DLL interface would need to be that high-level that it would be easier to write two different applications ...

Also a very important consideration would be: Do I need features that are only available in DX10? I assume you don't.

Best regards
Porthos

Share this post


Link to post
Share on other sites
Quote:
Original post by MadMax1992
What you should do is the following:

Create a directx9 dynamic linking library and create a directx10 dynamic library, then create a static library class wrapper for them containing the same functions. However, everytime you're calling the function from withing the game code, you call the function from the dll you loaded. Isn't that funky?


It's really not as simple as that, for example if you use Geometry shaders in DX10, you simply cant run them in DX9 mode, similarly, if you use features intended for performance such as steam output, falling back to system bus transfers is going to be noticeable, even on a full link width PCIe card.

It's a long shot, but you could use OpenGL to expose most DX10 functionality in WindowsXP, but like I said, long shot.

IMO stick with DX9 if you're planning some kind of release, but if this is just for your own personal experience, maybe DX10 :)

Share this post


Link to post
Share on other sites
When do you expect the project to be finished, and what's the main thing you want to gain from it?

The farther into the future the publication date is, the more people you can expect to have DX10 capable hardware and OS.

As for the goal, is your main interest creating a game with the widest possible audience, or is it more of a way to learn an API and techniques relating to gaming?

As for the common approach, that'd also depend on the type of game. Games with advanced graphics tend to support both 9 and 10 these days. Casual games often don't use DX at all. I don't think any games use just DX10, but it's possible that some games with a release date in 2010 or further intend to use DX10 only.

Share this post


Link to post
Share on other sites
Quote:
Original post by Spoonbender
Well, let's think about it.... What did the last Steam hardware survey show? Something like 10% of gamers had Vista *and* a DX10 GPU.

So it's up to you, really. Do you want 10 or 100% of the Windows userbase to be able to play your game? [wink]

(hint: There's absolutely no point in targeting DX10 *exclusively*. You might do it *in addition* to DX9 support if you're feeling generous, but it'll be another couple of years or five, before it makes sense to ditch DX9 support.)

Quote:
Make it platform agnostic. It's never a good idea to tie anything with a specific implementation.

Sure it's a good idea. If you don't want to triple your workload, it's a very good idea to pick one target platform.

Yup this is also from Andre Lamothe's game programming rule #1:
Write your games for the most popular OS or something like that.

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!