C++ verleitet eben mit seinen Geschwindigkeitsvorteilen schnell. Aber C++ ist auch schwerer als die "durchschnittliche" Programmiersprache. Meinen Einstieg in Videospiele habe ich mit D gemacht, da es dieselbe Effizienz wie C++ bietet, dafür aber auf (komplizierte) Kompatibilität auf C verzichtet. D-Code sieht halbwegs so aus wie Quellcode in Java, wird aber in nativen Maschinencode übersetzt.
Was die Arbeitsteilung von Code/Grafik handelt: Ich programmiere derzeit mit einem meiner Freunde in der Freizeit ein 2D-Strategiespiel (in Java/Scala). Der eine kümmert sich um den Code, der andere um Grafiken. Nach einiger Zeit übernimmt der jeweils Andere sein Aufgabengebiet für eine gewisse Zeit. Und es funktioniert super bis jetzt.
Als guten Einstieg in Java OpenGL (lwjgl.org) empfehle ich dir die Videoreihe von thebennybox ( http://www.youtube.com/playlist?list=PLEETnX-uPtBXP_B2yupUKlflXBznWIlL5 ), bei dem du Schritt für Schritt eine 3D-Engine erstellst (du brauchst dafür aber jede Menge Matrizen und Trigonometrie :/ )
Für 2D-Spiele reicht Java meiner Meinung nach vollständig aus.
Ich hoffe ich konnte dir behilflich sein :)
SomeOtherGuy