Hola y bienvenido.
En la web de este foro hay
libros a la venta para iniciarse y también
distintos cursos gratuitos.
Si tu objetivo es crear juegos, hay que decir que ello conlleva dominar varias disciplinas, no solo programación.
Pero sí, la programación será necesaria.
Lo recomendable primero es practicar con pseudocódigo, para aprender los conceptos básicos de la lógica de la programación, sin tener que pelearse al mismo tiempo por dominar un lenguaje de programación en concreto.
Para pseudocódigo no se necesita ningún programa especial, porque no es un lenguaje real. Se puede hacer con el bloc de notas, o con papel y lápiz... porque no son programas que se puedan ejecutar.
Son ejercicios escritos, usando unas palabras en nuestro idioma que simulan las instrucciones de un lenguaje, pero todo más simplificado como digo, para centrarnos en aprender lógica y no un lenguaje.
Al principio puede ser aburrido, porque todos queremos hacer programas que se ejecuten y el ordenador haga lo que le hemos pedido.
Pero es un paso necesario, que de hecho cada vez menos gente lo hace
Veo en los foros gente que ha aprendido las instrucciones de un lenguaje, ya sea Java, C, Python... pero no sabe que hacer con ellas. No sabe como aplicarlas, porque no ha aprendido lógica de la programación, ni algoritmia, ni nada...
Cuando ya se esta familiarizado con esos conceptos básicos: qué es una variable, una expresión, un condicional, un bucle...
es cuando podemos elegir un lenguaje para reafirmar estos conceptos aprendidos y seguir avanzando.
Sobre elegir lenguaje de programación, pues bueno, eso va un poco a gustos.
A mi me gusta Java para aprender, es potente, orientado a objetos y sin las complicaciones que otros lenguajes tienen, lenguajes más potentes sí, pero es una potencia que para la programación más habitual no vamos a necesitar.
Tiene una documentación muy buena y un montón de librerías estandarizadas. Da igual que sistema operativo y/o programa compilador se utilice, las instrucciones Java serán las mismas en todos los casos.
Además, si luego quisieras programar para Android, sabiendo Java ya tendrías la base ideal.
Sin embargo, si tu objetivo es hacer videojuegos, quizás te interesen más otros lenguajes como C++ o C#, este último está muy ligado a Unity, un motor para crear videojuegos de corte profesional de forma relativamente sencilla.
De todos modos, C++, C# y Java comparten una sintaxis muy parecida (son primos hermanos) así que aprendiendo uno, luego es muy fácil familiarizarse con los otros.
C++ es quizás un poco más "rústico" para intentar dominarlo desde un principio.
Yo escogería entre Java y C#...y cuando ya seas nivel pro
comenzaría a tantear C++