Hola stevo, hombre, la programación orientada a objetos, hoy en día, es fundamental por eso te vendrá muy bien aprender C++ (sobre todo si quieres probar entornos de creación de juegos como Ogre3d que está basado en C++). XNA por su parte utiliza c# como lenguaje de programación. Creo que c#, ahora mismo, es el lenguaje más popular en el ámbito de la programación. Pero ten en cuenta que al final lo importante no es el lenguaje, sino los conceptos. Sabiendo C++ puedes aprender c#, java, etc y viceversa. En cuanto a OpenGL y DirectX yo la verdad que no controlo prácticamente nada (aunque he hecho alguna cosa) por lo que no es estrictamente necesario para programar en XNA. Eso sí, siempre viene bien conocer la base de la programación 3d y esa base no es otra que OpenGL y DirectX. (aunque también es más difícil de aprender inicialmente).
Ánimo y para cualquier duda que tengas no dudes en preguntarme. Un saludo.