New project: DirectX 9 VS DirectX 10

Started by
14 comments, last by tokaplan 16 years, 2 months ago
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
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?
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?
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.
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).
NextWar: The Quest for Earth available now for Windows Phone 7.
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?
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
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 :)
"I am a donut! Ask not how many tris/batch, but rather how many batches/frame!" -- Matthias Wloka & Richard Huddy, (GDC, DirectX 9 Performance)

http://www.silvermace.com/ -- My personal website
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.
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.

[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe

This topic is closed to new replies.

Advertisement