Это зависит от того, хотите ли вы разработать движок для создания игры, которая будет сделана через три года, один год или шесть месяцев, и от того, думаете ли вы о консольных портах. Будет довольно легко выбросить 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, что, на мой взгляд, было глупо глупо. ,