Juegos puedes programar en el lenguaje que quieras, todo depende del nivel técnico que quieras alcanzar en lo que se refiere a gráficos y sonido.
DirectX es popular por que facilita la programación de juegos comerciales, especialmente la parte 3D, en 2D su aporte es modesto (2d no es comercial), pero te deja libertad para optimizar tus algoritmos. Pero en el sentido de facilitar las cosas para 3d OpenGl es mucho mejor que DirectX.
C++ es el lenguaje más extendido en el mundo comercial y por esto es más fácil encontrar ejemplos en C++. Pero el problema es que tendrías que tener un buen nivel en C++ para no terminar frustrando tus espectativas al momento de programar un juego. OJO que las grandes empresas tienen cientos de herramientas listas (clases, funciones, herramientas para los gráficos, sonidos, etc) para no tener que lidiar con detalles de programación tediosos y dedicarse directamente a la esencia del juego.
Sólo ten en cuenta que una cosa es dedicarte profesionalmente a hacer juegos (tendrías que conseguir empleo en una empresa del ramo) o hacerlos en forma independiente como afición/pasatiempo. ¿Cual es tu caso?