GFx Card Capabilities

Started by
12 comments, last by Krohm 11 years, 6 months ago
I've been wanting to start learning DirectX recently but my question is to learn dx10 or dx11. I just recently discovered my card DOES support dx11 but I'm wondering...say I made a basic little 3d games in C++ and DirectX and compiled it and distributed it. What if the user doesn't have a card that supports DirectX11? Will they be able to play, it'l just force the latest version of DirectX supported for their card? Will they not be able to play?
Advertisement
If I were you I would learn directx9.0 . And here's why.

It includes functions for loading .x mesh files. 10-11 do not.

It includes the fixed function pipeline which is far easier to learn for a beginner. 10-11 do not. 10-11 force you to use shaders.

It does also have shader support as 10-11 do to.

It is most widely supported on video cards.

The added features in 10-11 are not something that you will learn and/or implement easily anyway.

Did you know most games are dx9.0c still? My point is learn 3dmaths and things using fixed function in dx9, then when you're good at that step up to writing shaders in dx9. Then when you are master of that you can step up to dx10 but you will have to do more of the work using that api, a lot of studios don't think its worth it either.

If this post or signature was helpful and/or constructive please give rep.

// C++ Video tutorials

http://www.youtube.com/watch?v=Wo60USYV9Ik

// Easy to learn 2D Game Library c++

SFML2.2 Download http://www.sfml-dev.org/download.php

SFML2.2 Tutorials http://www.sfml-dev.org/tutorials/2.2/

// Excellent 2d physics library Box2D

http://box2d.org/about/

// SFML 2 book

http://www.amazon.com/gp/product/1849696845/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1849696845&linkCode=as2&tag=gamer2creator-20

probably getting ahead of myself again. but is it possible to code something in DirectX9, DirectX10, AND DirectX11?

I'm just asking this because I'm wondering how pro game dev teams create games that could be run under Windows XP, Windows Vista, and Windows 7, and that can be run under DirectX 9, 10, and 11?

I'm curious how this fits together because I've heard such like if you program something in like DirectX11, it cannot be used by Windows XP users, but if you're on Windows 7 you have to use 11, etc. and im just not sure what is true and what is not, so let me put it this way.

I wanna learn the API that could be used whether you are on XP, Vista, or 7, and no matter what DirectX version you are on...if possible?
Dx9 runs on all of those. dx10-11 don't run on xp.

You could code a game to use all of them, but that means writing the code for each api and using interface classes and/or inheritance within your code base, so you can swap out specific api objects.

If this post or signature was helpful and/or constructive please give rep.

// C++ Video tutorials

http://www.youtube.com/watch?v=Wo60USYV9Ik

// Easy to learn 2D Game Library c++

SFML2.2 Download http://www.sfml-dev.org/download.php

SFML2.2 Tutorials http://www.sfml-dev.org/tutorials/2.2/

// Excellent 2d physics library Box2D

http://box2d.org/about/

// SFML 2 book

http://www.amazon.com/gp/product/1849696845/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1849696845&linkCode=as2&tag=gamer2creator-20

i figured it'd be done somehow like that. So I think I'm going to stick with dx9 for now ;p

probably getting ahead of myself again. but is it possible to code something in DirectX9, DirectX10, AND DirectX11?

I'm just asking this because I'm wondering how pro game dev teams create games that could be run under Windows XP, Windows Vista, and Windows 7, and that can be run under DirectX 9, 10, and 11?

I'm curious how this fits together because I've heard such like if you program something in like DirectX11, it cannot be used by Windows XP users, but if you're on Windows 7 you have to use 11, etc. and im just not sure what is true and what is not, so let me put it this way.

I wanna learn the API that could be used whether you are on XP, Vista, or 7, and no matter what DirectX version you are on...if possible?

I choosed DX11. In the future (1, 2 ... years later since now) many people will use Directx 11. If you like it or not you will have to change your version of DX. DX9 is going to be older and older. You should go with the technological progress. If Directx 12, 13 will came out, a big studios will bring to 11, 12 version etc.

My point is learn 3dmaths and things using fixed function in dx9, then when you're good at that step up to writing shaders in dx9. Then when you are master of that you can step up to dx10 but you will have to do more of the work using that api, a lot of studios don't think its worth it either.[/quote]
Get to a master level, will take him a few years, then DX11 will be more popular than DX9. Learn a DX11 will take him a next month (or years). So, his skill with DX9 won't be useful anymore.
Here's what I managed to find myself when I encountered same issue:

  1. According to Steam statistics over 40% have DX11, and another 40% has DX10. I don't think you'll have any problems. By the time you finish your game most of people will have DX11 hardware.
  2. If you're not going to use DX11 or DX10 features, then hardware can be DX9, DX11 API is able to run on DX9 hardware just as long as you don't use any features above DX9. Therefore you're only limited to OS your target audience is running (it must be at least Vista).
  3. According to W3School over 50% have Windows 7, once you finish your game it'll be higher.
  4. DirectX SDK has samples how to use DX9 and DX11 API in the same program, however they differ a lot, so I wouldn't suggest going this way, it's like making game twice.
  5. If someone's computer isn't powerful enough to run Windows 7 it's definitely not powerful enough to run a game. Supporting WinXP users is like supporting IE6 or VC++ 6.0. Just let it die already.
According to Steam statistics
Note that Steam users are not typical users. They are high end users when it comes to hardware.


If someone's computer isn't powerful enough to run Windows 7
There is some percentage of players that use legal OS, which means they might have WinXP (cheaper, they have it already, etc) even on hardware that could run Win7 without problems :) For me, I'm definitely not going to pay M$ once again just so I can play some game while my current XP works just fine. Also note those with legal OS are also more likely to actaully buy your game instead of pirating it.


Supporting WinXP users is like supporting IE6 or VC++ 6.0. Just let it die already.
The last time I checked WinXP userbase was higher than Mac+Linux users together. You can't compare it, even remotely, to IE6.

Stellar Monarch (4X, turn based, released): GDN forum topic - Twitter - Facebook - YouTube

Its simpler than people are making out --

If you want to support Windows XP, learn DirectX 9.0c -- If you don't need to support XP, then learn the latest API (DX11) and limit yourself to using the appropriate feature level. If you want to make a game that supports older 9.0c graphics cards, but also takes advantage of newer hardware where it is available, then you need multiple rendering code paths to target different feature levels -- games have been doing this for ages, its not transparent, but its not any more difficult in DX 10 or 11 than its ever been, in fact it's probably simpler.

Decide whether you want to support Windows XP, then you have your answer.

Personally, if I'm targetting the kind of gamers who aren't your mom or little kids with hand-me-down computers, then I'd just target DX11 as an API and provide rendering paths for D3D10 and D3D11.

throw table_exception("(? ???)? ? ???");

Pick DX 11 it is capable of handling all GPUs from DX9.0 through to DX11, DX11 supports something called feature levels. I would defenitly not start with DX9.0c now as DX10 and 11 are extremely different and DX11 can deal with all hardware anyway with one API.
DX9.0 is only interresting if you want to support winXP, but if this is just a hobby project I'd say go for DX11 and don't worry about DX9.0

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion

This topic is closed to new replies.

Advertisement