Ich finde C# sehr angenehm. Viele Stolpersteine und unnötige Schwierigkeiten, die es in C++ gibt, gibt es in C# nicht. Es nimmt einem einfach Zeit und Arbeit ab.
XNA ist keine Game-Engine, weit davon entfernt. Es ist ein Framework, vor allem dafür gemacht, jedem Entwickler eine Schnittstelle zu geben, ein eigenes Spiel auf die Xbox360 zu bringen - und mal ehrlich, ist das nicht ziemlich geil? Wo sonst kann man mit so wenig Aufwand ein eigenes Spiel so vielen Leuten anbieten und tatsächlich auch noch Geld damit verdienen?
Und als Framework ist XNA mmn. großartig (ein paar Dinge mehr könnten zwar noch nativ unterstützt werden, wie z.b. skinned animation, aber für nahezu jedes Vorhaben gibt es Beispielprojekte und "Starter Kits" zum Runterladen, in denen erklärt wird, wie es gemacht wird). Wenn man sich einmal eingefunden hat, ist es super easy etwas funktionierendes auf die Beine zu stellen. Weiß nicht was ihr mit dynamischen Ressourcen meint? Es stimmt jedenfalls nicht, dass man mit XNA nur statische unveränderte Meshes oder Texturen benutzen kann (im Gegenteil).
Zum Installieren für Windows: Man kann ohne weiteres das Spiel in einen Installer verpacken, der .NET und XNA mit installiert.
Und schließlich noch zur Plattformunabhängigkeit: Es gibt ein Sprichwort:
Saying that Java is good because it works on all platforms is like saying anal sex is good because it works on all genders.
Das will sagen: Normalerweise sucht man sich sowieso die Plattform aus die für ein bestimmtes Vorhaben am Besten geeignet ist. Für ein kleines Spiel, das möglichst vielen Leuten zugänglich gemacht werden und sich vielleicht noch ein zwei mal verkaufen soll, ist das wohl in erster Linie Windows. Das muss aber jeder selber wissen, wie wichtig die Portierbarkeit ist.