Hay muchas buenas opciones. (Enseño CS1 y CS2, así como programación de juegos). Primero, por supuesto, aprender a pensar como un informático. No te atasques demasiado en el lenguaje, porque los conceptos son verdaderamente universales.
Java es un lenguaje bastante bueno, pero construir un juego en Java es un poco tedioso. Existen algunos motores interesantes que facilitan un poco el proceso. Desafortunadamente, puede ser un poco doloroso conectar un motor de juego a tu herramienta de edición.
Me gusta el motor FANG (lamentablemente aún no puedo publicar hipervínculos, así que búscalo en Google). Una parte interesante de este proyecto es el editor en línea. Esto significa que puede comenzar de inmediato sin tener que meterse con la configuración del eclipse.
Realmente no soy fanático de Game Maker. La GUI está bien para las personas que no quieren aprender a programar, y es una herramienta de prototipos decente (pero no excelente). Sin embargo, hay dos cosas al respecto que no me gustan. Primero, es comercial. Eso no es algo malo, pero si hay alternativas gratuitas de código abierto que son igual de buenas (y las hay) tal vez debería considerarlas primero. El mayor problema con Game Maker es el lenguaje de secuencias de comandos. Eventualmente, vas a superar la GUI y querrás comenzar a escribir código. El lenguaje de secuencias de comandos en GM es bastante retrospectivo. Como eres un experto en CS, estás (espero) interesado en la reutilización del código, la elegancia, la claridad, la eficiencia y la modularidad. El idioma GM te decepcionará.
Amo Python y Pygame. (De hecho, escribí un libro sobre ellos. Vea todas mis notas y videos en línea en mi sitio si lo desea. Puede acceder a esos recursos, tenga o no el libro). Python es un lenguaje elegante y agradable que no es es demasiado difícil de aprender (especialmente si ya sabe cómo programar). Pygame es un contenedor del popular motor SDL 2D. De hecho, he agregado un segundo contenedor a pygame para que sea tan fácil de trabajar como Flash.
Hablando de Flash, no creo que valga la pena. (Sé que no preguntaste) Es una buena plataforma, pero el costo y la incertidumbre sobre cómo le irá en los dispositivos móviles significa que puede no ser una herramienta de aprendizaje tan buena. (También escribí un libro sobre desarrollo de juegos en Flash, pero ya no enseño Flash).
Aquí hay otras cosas geniales para probar. Obtenga una copia de scratch del MIT:
scratch.mit.edu
Está hecho para niños, pero no deje que eso lo desanime. Es una herramienta de juego y animación absolutamente increíble. La programación utiliza mosaicos, por lo que es fácil comenzar. Te sorprenderá lo que puedes hacer con él.
También puede probar Alice de Carnegie Melon www.alice.org. La última (3ª) edición es en realidad una extensión de Java, que utiliza modelos Sims2.
Tanto Scratch como Alice son libres.
Una gran herramienta más para analizar es Blender
www.blender.org
Es una herramienta de modelado 3D, pero muchas personas no saben que también es un motor de juego completo con una interfaz de programación de arrastrar y soltar. Una vez que haya superado los mosaicos, tiene incorporado el soporte de Python.
Ahora estoy bastante interesado en HTML5 (que apenas es HTML, es realmente HTML, CSS y JavaScript). No está tan bien como entorno de desarrollo de juegos, pero creo que será un gran jugador. Mi próximo libro será sobre desarrollo de juegos en HTML5.
Mucha suerte y avíseme si tiene más preguntas.