Si solo quiere hacer juegos, entonces debe usar XNA, Unreal, Unity, etc. Si quiere ser un programador de juegos, primero debe aprender C / C ++ y OpenGL / SDL o D3D.
XNA, Unreal, Unity, etc. son geniales para hacer juegos, pero son muy malos para hacer demasiado por ti. Estoy seguro de que la gente no estará de acuerdo conmigo en esto, pero estos básicamente te convierten en un programador perezoso y cuando llegue el momento de aprender cosas como los puntos en C ++, será más difícil porque elegiste primero las opciones más fáciles.
Peronally, nunca sugiero usar otro C / C ++ como primer lenguaje para aprender si quieres ser un programador de juegos. La razón principal es que incluso si vas y aprendes C # / XNA, si realmente te conviertes en un desarrollador de juegos, tendrás que conocer C o C ++ en algún momento porque nadie te contratará de otra manera. Entonces, si se toman en serio la profesión, solo retrasarás el aprendizaje de lo que se espera de ti.