Supporting DirectX version(s)
While learning d3d11, I was wondering.
Would there be any good reason to develop PC (maybe XBox in the future) games supporting multiple directx versions? Reading the latest survey on steam it seems that over 80% of all users have d3d11 support.
http://store.steampowered.com/hwsurvey/videocard/
What surprises me a bit, is the relatively high number of d3d10. I cannot imagine all these users have GPU's from the time between d3d10 was out and d3d11 wasn't yet.
In short; I plan to rebuild my 3d engine using d3d11, and as it looks now, I wont add support also for d3d9.
What would you say/ do?
Pre-DX11 systems should be down-limited by hardware like Intel HD 3000, which explains why there are so much systems still bounded to DX10.
Until you have a real valid reason to target old XP systems, I would not spend resources on such porting. However, if you game is not huge resource demanding, it is better consider to target DX10 GPUs like Intel HD 3000 and Intel HD 2000. Since Windows Vista represents a relatively very small piece of the cake, I would simply target those system via DirectX 11 directly creating a feature level 10.0 rendering path.
EDIT: the increasing of correctly undetected system should be related to Windows 10 and preview or missing driver.
The XBox versions of DirectX are not the same as the PC versions. And if you plan to target the PlayStation you need to target GNM. Mobile devices predominantly use GLES, with Metal also available on iOS and Vulkan soon available for Android. If you plan to target non-Western PC markets then (due to a combination of XP still being dominant and recent hardware being rare) DX9 is still essential.
I cannot imagine all these users have GPU's from the time between d3d10 was out and d3d11 wasn't yet.
Just because the D3D11 API was out, doesn't mean that GPU vendors weren't still shipping D3D_FEATURE_LEVEL_10 devices.
I would definitely support D3D10 hardware via the D3D11 API. Do not bother ever using the D3D10 API though!
You can also support D3D9 hardware via the D3D11 API, but there's not too much point these days... Unless you plan on porting to Microsoft Phone?
If you want to maintain WinXP support, you'd write an actual D3D9 API backend, or an OpenGL backend. I actually do have a D3D9 backend because I'm stupid enough to think that maintaining a WinXP compatible build is a good idea...
You basically have to, if you plan on wide commercial deployment: The XBox versions of DirectX are not the same as the PC versions.Would there be any good reason to develop PC (maybe XBox in the future) games supporting multiple directx versions?
^ That. If you're doing XBox in the future, you'll be supporting a 2nd DirectX version.
A super-portable engine would have D3D9 for XP, D3D11 (FL 10/11) for Vista/7/8, D3D12 for Win10 (if you want to use fancy new features), D3D9.x for Xbox360 and D3D11.x or D3D12.x for XboxOne. That's ~5 D3D back-ends
Let's be realistic here
- he specifically said pc so no playstation and mobile
- it's unlikely that he will be targeting xbox360 if xboxes are a maybe in the future
Seeing web statistics in this are alot better : https://www.netmarketshare.com/operating-system-market-share.aspx?qprid=10&qpcustomd=0 In this case the platforms above windows 7 still make up about 75-80% of all platforms.
Its up to you wheter that 12% of XP users is something you want to target.
I once saw a website with maps and percentages (have not bookmarked it) and those XP users were basically all concentrated in China, IIRC I calculated from that data the rest of the world had maybe 2 to 4%. This makes the decision easier, if you sell there you support it, if not then not.
the non-western market (which is pretty much cis and asia) is a huge decision tree where most of the paths end up in "nobody cares about you game" and "your game has a 100% piracy rate and you gain nothing" if you don't have connections
*cough* we have made over a billion dollars per year from those markets with a single title *cough*
the non-western market (which is pretty much cis and asia) is a huge decision tree where most of the paths end up in "nobody cares about you game" and "your game has a 100% piracy rate and you gain nothing" if you don't have connections
*cough* we have made over a billion dollars per year from those markets with a single title *cough*
as a hobbyist?
I've decided to focus on d3d11, with d3d10 feature level support as a fallback.
@SeanMiddleTech: out of curiosity, what was the title?
Looking at "AAA" studios, my view is that most recent introduced games require d3d11 to run at all. Just throwing some titles/ series out there: Call of Duty, Assassins Creed, Wolfenstein, FarCry, Race Driver Grid, Battlefield