New project: DirectX 9 VS DirectX 10

Started by
14 comments, last by tokaplan 16 years, 2 months ago
Personally, I'd say forget making something that's DX9 AND DX10. You have to worry about cross compatibility between the two, implement the same feature on both of them, and constrain yourself to the lesser of the two, screwing you out of some of D3D10's features. I honestly don't see the point in making a D3D10 renderer if you've already got a D3D9 renderer, and vice versa will just be an extraordinary PITA.

I'd go for D3D9 if and only if you want compatibility. D3D10 is faster, and from what I've seen, much easier to work with because the API is so much cleaner. Plus, knowing that you can implement any feature in D3D10 and it just works would also be useful, I'm sure.

My choice would be dependant on the ETC of the project. If you're looking at a year or more, I would choose D3D10. Else, D3D9.
Advertisement
Sure I don't mind if you just make a game for windows, but you don't have to be a cock about it.

It looks like about 10% of gamedev is not on Windows.

If you want your game to last 5-10 years into the future, then you should make it easy to port by abstracting the API away some if the library itself is not portable.

Right now there are many games I like that do 320x240 fullscreen in Windows, but my monitor doesn't support it. In linux I could still fully enjoy the games with Compiz.

It's good to stay on top of the technology wave, but you don't have to straight away jump to Vista/2008/D3D10 (I thought there wasn't a DirectX 10). Remember some people are still using DirectDraw (wish they wouldn't) or D3D7.
DX9 is supported by 100% of Vista users on the PC, not sure about mac? And DX 9 is easily installable for all other XP users in your setup program. I can't see a reason to use DX10 on the lower hobbyist level. I don't see a reason to use DX10 ever (at this level). 9 is a good baseline right now because it's built into Vista. But the time The next version of windows comes out, who knows what will be supported and where.

A lot of PCs to this day are still shipping with 6100 or equivalent integrated cards. They can run any sane basic DX scenes fairly well, as long as you don't get into heavy shader use or after effects.

That's your audience.

No need to use a multi-api dll. You're writing games, not a rendering middleware package. It will become a big project on it's own, and having a dx10 renderer certainly won't make your game any better. Focus on content, not multiple APIs.
Bah, if you really want both, just use OpenGL, end of story. You will be able to support Linux/Mac/Win95-Vista with DX10 features. Cant believe noone on this board is suggesting the most obvious answer, unless you've got something against GL or have a very good reason to stick with DX.
Quote:Original post by GamerSg
Bah, if you really want both, just use OpenGL, end of story. You will be able to support Linux/Mac/Win95-Vista with DX10 features. Cant believe noone on this board is suggesting the most obvious answer, unless you've got something against GL or have a very good reason to stick with DX.
Because it's not the most obvious answer. OpenGL comes with it's own set of problems, which include the huge amount of problems casual users have with finding out if they have it, and installing it. I have lived through a few nightmares trying to pass my programs on to my friends.

Many intel users have nothing but problems with OpenGL apps because of crappy drivers. I once updated an intel card to the newest 1.2 drivers, and they couldn't support multitexturing still. On a few OpenGL app forums I frequent, there is a nonstop stream of intel users posting all kinds of strange problems all the time. Intel users are a huge chunk of the casual game market.

I like OpenGL, don't get me wrong, but it's not a trouble free solution. Also, if you use OpenGL to use the DX10 features, you still need to write a fallback for the DX9 cards anyways.

DX9 works out of the box on Vista, and easily enough on XP if you need to silently install it. If someone isn't sure, it's as easy as typing dxdiag and finding out their info. Not so much with GL.
Thanks a lot, you guys are great

This topic is closed to new replies.

Advertisement