Материал Xna Game Studio ориентирован на решение проблем, связанных с игрой, хотя я бы задал вопрос любому постеру, который говорит, что производительность материала Xna Game Studio несколько хуже, чем у управляемого direct x, без каких-либо приличных показателей.
Независимая группа за пределами MS создала проект под названием SlimDx - http://slimdx.mdxinfo.com/
Если вы пишете приложение, а не игру (что, я полагаю, вас не интересуют другие вопросы), то это стоит рассмотреть.
В отрасли по-прежнему широко используется C ++ для игр, но были успешные выпуски игр, написанных в полностью управляемом коде с использованием XNA Game Studio, в разделе игр сообщества XBox live и выпущенных на самой XBox Arcade. Вскоре должны появиться некоторые интересные статистические данные о том, сколько людей заработало на общественных играх.
Многие игры с полной ценой используют C ++ для некоторых, но что-то вроде Lua для реальной игровой логики ... а Lua не славится невероятной скоростью!
C # имеет хорошую кривую обучения и используется программистами в отрасли - это был бы полезный язык для вас. C ++ был бы отличным языком, но он требует большей дисциплины для создания функционального кода - и дает кому-то новому гораздо больше возможностей для подвешивания. C # может динамически изменяться и выполнять такие вещи, как развертывание циклов во время выполнения, а не во время компиляции - хороший C # может быть таким же быстрым или быстрым, как хороший читаемый C ++ - но вы должны знать, как его использовать. В действительно тесных циклах C ++ и Assembler могут выиграть при определенных обстоятельствах. Часто в играх, использующих C ++, пользовательские распределители создаются со своими собственными стратегиями памяти, чтобы попытаться помочь фрагментации, вызванной обычными распределителями ... с такими вещами занимается CLR в .Net / C # и до тех пор, пока вы программируете на сильные стороны сборщиков мусора (то же самое, что вы должны делать с собственной реализацией C ++), тогда вам не нужно беспокоиться о таких низкоуровневых деталях реализации в .Net.
Если вы хотите заняться разработкой игр и выбрать язык (который, по-видимому, читается между строк, когда вы идете с этой линией вопросов), то лучший язык для использования - тот, где вы готовый проект, который нужно показать в конце, будь то C ++, цель C, C #, Flash, Silverlight и т. д. По мере того, как языки меняются и пользуются популярностью, рекрутеры часто ищут проверенное владение различными языками - что может смягчить, не зная того, что они используют в настоящее время - и портфель выполненных работ сделает это.