Rien d'autre, dans l'absolu. Sauf que ça implique de coder toi même le moteur graphique (charger et décoder des images, les transformer en tableaux de pixel, les envoyer a la surface d'affichage) et le reste, chose qui a déja été faite par des millions de gens avant et qui ont fourni leur travail, souvent gratuitement. Donc, il te faut un moteur.
Le C# est plus "productif" que le C++. on arrive plus vite a un résultat satisfaisant et il y a moins de problématiques de gestion de mémoire qui se posent (le langage s'en occupe tout seul). Mais il y a quelque contraintes comme les performances qui poseront problème, le fait que le C# est un langage assez limité en dehors de windows, etc.