Zunächst einmal: Herzlichen Glückwunsch zur Idee, Programmieren zu lernen. Privat Spiele programmieren macht Spass, kann aber manchmal auch kompliziert sein. Ich habe dadurch das Programmieren gelernt. Allerdings habe ich nicht mit komplizierten Grafiken angefangen, sondern mit einfachen Textuellen Spielen, die ich dann nach und nach mit Grafiken angereichert habe. Hier ein Link auf ein Projekt, was momentan offensichtlich stockt, was allerdings versucht, ein RPG mit Java und 3d umzusetzen (Englisch) http://jcrpg.blogspot.com/
Die Frage allein nach der Programmiersprache ist zu einfach. Zunächst einmal nehme ich an, Sie möchten für den PC programmieren. Sollte dies nicht so sein, erübrigt sich die Frage nach der Sprache schon, dann hängt es nämlich von der Hardware ab, und was dort unterstützt wird.
Die Frage allein nach der Programmiersprache ist auch wiederum die falsche, weil in den Definitionen von Java und C++ keine Handhabung von irgendwelchen Grafiken definiert ist. Unreal kenne ich nicht. Vielmehr müsste man nach einer Bibliothek fragen, die diese Zwecke erfüllt.
3d wird normalerweise von OpenGL unterstützt. Beides wird sowohl in C++ als auch in Java unterstützt. Es gibt dann mit Sicherheit noch Bibliotheken, die diese Funktionalität erweitern, um bestimmte Dateiformate zu unterstützen (das verlinkte Projekt verwendet auch eine bestimmte Bibliothek dafür).
Wenn Sie jetzt noch keine Programmiersprache sprechen, dann ist es ein weiter Weg dorthin, und je jünger Sie sind, desto einfacher wird es.
In der (Spiele)Industrie wird in C++ programmiert, allerdings sind bestimmt einige Ansätze nicht frei verwendbar, sondern kosten Lizenzgebühren. Das fängt bei der IDE an (eclipse ist eine freie Version, ursprünglich für Java, aber mittlerweile gibt es auch C++ downloads dafür- allerdings habe ich C++ bis jetzt nur mit Microsoft Visual C++ programmiert). Welche Bibliotheken man hier benutzt, um ihr Problem zu lösen, müssen Sie herausfinden, dass kann ich Ihnen nicht sagen. Für Spielekonsolen braucht man auch meist für jede Plattform einen teuren SDK, den sich normalsterbliche nicht leisten können. Dieser bringt dann allerdings schon Lösungsansätze für viele Problemstellungen mit.
Java wird für Spiele meist die eher 2te Wahl sein, da die Sprache möglicherweise nicht auf allen Plattformen ausführbar ist (Playstation, Nintendo Wii etc.), bietet aber bei möglichen zur Laufzeit auftauchenden Fehlern die meiste Hilfe (sog. stacktrace).
Je nachdem, wo man bei dieser Aufgabenstellung langfristig hin will (Professionell und breit vermarkten oder lieber Spass und nicht auf Konsolen) wird man sich für das eine oder andere entscheiden.
Gruß und viel Spass,
Michael