Из личного опыта, далекий и дальний XNA.Возможность - просто использовать вашу фразу - "просто выкинуть код" и быстро собрать все вместе - это огромное преимущество в разработке игр.
Очевидно, я не сторонник того, чтобы весь код "выбрасывался".Но хорошая вещь в C # и XNA состоит в том, что они дают вам опцию , чтобы быть менее осторожным с тем, как вы кодируете, - что вы можете затем использовать в местах, где это уместно.
С C ++и SDL вы вынуждены писать подавляющее большинство вашего кода "тщательно".(Не говоря уже о том, что в какой-то момент вы поймете неправильно, и в C ++ это гораздо более неумолимо.)
Некоторые из упомянутых вами проблем («один файл дляВаша игра ", требующая распространения .NET 3.5) на самом деле не являются проблемами с XNA, как обсуждали Veered и я в комментариях.Кроме того, если вы используете ClickOnce для распространения своих игр, он будет выполнять необходимую загрузку и установку XNA и .NET Framework для вас.
Если вы обнаружили необходимость портировать на Linux и Mac, тоЯ бы по-прежнему выступал за использование C # (через Mono) в качестве языка разработки - даже если вам нужно использовать что-то другое, чем XNA на этих платформах.
И есть еще много хороших вещей о XNA и C # -значительно более быстрое время компиляции, конвейер контента, поддержка / обновления от Microsoft, простота портирования на Xbox 360 и Windows Phone, библиотека хорошо написанных примеров и т. д.