Це залежить від того, чи хочете ви створити двигун для виробництва гри, яка повинна бути виконана через три роки, або через рік чи шість місяців, і ви думаєте про консольні порти чи ні. Викинути 360 порт вашої гри з Direct3D9 буде порівняно просто, але вам потрібно буде зробити набагато більше, походить з D3D11. Пам'ятайте, що D3D11 блокує всіх користувачів XP, якщо не обов'язково все обладнання D3D9.
Останнє опитування Steam свідчить про те, що близько 16% людей все ще використовують Windows XP. Ви можете собі дозволити вирізати їх? До моменту, коли ваша гра буде зроблена, як це зміниться? Чи збираєтесь ви використовувати функції, які залежать від API вищого рівня? Це питання, на які вам потрібно буде відповісти самостійно.
Direct3D 9 досить чортово доступний, і ви можете охопити багатьох людей за допомогою гри D3D9, але дні пронумеровані, особливо на ПК. Якщо ви не зацікавлені в націлюванні на цих людей, то це мало сенсу.
О, і не турбуйтеся з DX10. Немає жодної причини використовувати його над DX11. Якщо ви не хочете використовувати D2D / DirectWrite, що не є розумним.
Звичайно, варто згадати, що в DX11 немає заміни класів, які, як сам хобіст, я вважав надзвичайно корисним у DX9. Такі, як ID3DXMesh, ID3DXSprite, ID3DXFont, повинні компілювати ID3DXEffect з джерела тощо. Microsoft рекомендує DirectWrite замінити ID3DXFont, але, звичайно, вони забули насправді зробити DX11 сумісним з новими системами Direct2D / DirectWrite, що, на мою думку, було сліпо дурним .