Ok this is the real deal about game programming. First of all you sound like you are interested in this endeavor for the long run, if this is true then C++ or C is a necessary. Commercial games require its speed and flexibility. It is true, C# is becoming very popular for applications that donít require the most extreme degree of performance. it is also true that C# is nowhere near becoming even a consideration for large scale games. C# and Java are so popular because they have much more strict rules for how code has to be made; making it much harder to make mistakes, thereby increasing development time, but they just dont have what it takes for real games. So you might as well use the real deal if you are serious.
In the words of my professor: "C++ and C are like the wild west, there is an amazing amount of ways to make mistakes, but with training and practice you can create something truly amazing, and not to mention blazingly fast" - Dr. Sunil Prabhakar, Purdue University