Cela dépend si vous voulez ou non concevoir un moteur pour produire un jeu à faire dans trois ans, ou un an ou six mois, et si vous pensez ou non aux ports de console. Il sera relativement facile de lancer un port 360 de votre jeu depuis Direct3D9, mais vous devrez en faire beaucoup plus depuis D3D11. N'oubliez pas que D3D11 verrouille tous les utilisateurs XP, sinon nécessairement tout le matériel D3D9.
L'enquête Steam la plus récente suggère qu'environ 16% des personnes utilisent toujours Windows XP. Pouvez-vous vous permettre de les supprimer? Au moment où votre jeu est terminé, comment cela aura-t-il changé? Allez-vous utiliser des fonctionnalités qui dépendent de l'API de niveau supérieur? Ce sont des questions auxquelles vous devrez répondre vous-même.
Direct3D 9 est sacrément accessible et vous pouvez atteindre beaucoup de gens avec un jeu D3D9, mais ses jours sont comptés, en particulier sur le PC. Si vous ne souhaitez pas cibler ces personnes, cela ne sert à rien.
Oh, et ne vous embêtez pas avec DX10. Il n'y a aucune raison de l'utiliser sur DX11. Sauf si vous souhaitez utiliser D2D / DirectWrite, ce qui n'est pas déraisonnable.
Bien sûr, il convient de mentionner que dans DX11, il n'y a pas de remplacement pour les classes que, en tant que amateur moi-même, j'ai trouvé extrêmement utile dans DX9. Tels que ID3DXMesh, ID3DXSprite, ID3DXFont, doivent compiler ID3DXEffect à partir de la source, etc. Microsoft recommande DirectWrite pour remplacer ID3DXFont, mais bien sûr, ils ont oublié de réellement rendre DX11 compatible avec les nouveaux systèmes Direct2D / DirectWrite, ce qui à mon avis était aveuglément stupide .