Io amo il Java.
Il Java è il linguaggio di programmazione multi-piattaforma per eccellenza, il che significa che tale linguaggio può girare ovunque ci sia una JVM {Java Virtual Machine}
(Windows, Mac, Linux, Android, FreeBSD e molto altro ancora). Ha svariate librerie per il game programming, che sono:
LWJGL: che comprende: OpenGL
(ovviamente... è un wrapper delle OpenGL e non solo), OpenCL e OpenAL. Questa libreria è tra le più basse di livello che ci sono per il Java, quindi le puoi considerare come le più complesse, ma anche le più potenti. Su di esse si basano molte altre librerie e framework che elencherò dopo
(sconsigliata ad un neofita)
LibGDX: questa libreria è eccezionale per lo sviluppo dei giochi per Android ma anche per PC. Ha ottime prestazioni, prestazioni che superano persino le SFML
(scritte in C++ per il C++). Si basa sulle LWJGL.
Slick2D: questa libreria è molto semplice, ti permette da fare molto con poco. Ha prestazioni peggiori delle Libgdx e non è stata progettata per girare su Android ma solo su PC, tuttavia sul forum ufficiale puoi trovare un prting, chiamato: Slick-AE. Si basa sulle LWJGL.
jMonketEngine 3: questo è un framework, che a me non piace, non mi piace perché lo ritengo davvero pessimo in prestazioni, però non badare a questa mia opinione, poiché è molto soggettiva e l'ho tirata dopo pochi minuti di utilizzo.
Poi beh, c'è né sono altre, tipo: jPCT, AndEngine
(per Android), etc.
Un manuale per il Java, in Italiano, lo puoi trovare
QUI e
QUI
Mi raccomando, qualsiasi sia il linguaggio che scegli, studialo per bene e metti in pratica, e dopo prova con il game programming.
P.S: Sconsiglio il C++, poiché è un linguaggio molto complesso e per fare un gioco con esso, ci vogliono minimo 1\2 anni di studi e messe in pratica
(steve che conosce il C++, può confermare o smentire questa cosa, quindi magari attendi anche lui, ma penso che sia cosi), mentre con linguaggi tipo: Java e C#, ci vuole molto meno tempo, ma comunque lo studio e le messe in pratica CI VOGLIONO.