Also bei der Wahl der Sprache hängt es auch davon ab, was so dein Ziel ist. Wenn dein Ziel wirklich die Android App/Spiele Programmierung ist, ist Java genau das richtige für dich. Auch weil Java Plattformunabhängig ist und du auch mit dem Wissen auch Spiele für den PC Entwickeln kannst. C++ ist glaub ich mehr für Computerspiele geeignet.
Zum Thema Engine. Wenn du wirklich Kommerziell etwas erreichen willst, würde ich dir eine Engine wie z.B die bereits erwähnte Unity Engine ans Herz legen, mit der sich auch Android Spiele entwickeln lassen. Weil wenn du alles "von Hand" Programmierst, dann muss alles selbst gemacht werden, Programmierung, Grafiken, Musik, Netzwerk e.t.c was da alles dazu gehört. Also wenn du nicht zufällig ein 100 Mann starkes Team hast, dann wird das ohne Engine meiner Erfahrung nach am Anfang sehr schwer, etwas ordentliches auf die Beine zu stellen.
Die Unity Engine nimmt dir und dein Team da am Anfang sehr viel Arbeit ab, und es ist auf jeden fall mit Unity weniger Aufwand, was ordentliches auf die Beine zu stellen, weil halt sehr viel von der Engine abgenommen wird, z.B Level Design. Während du mit Hunderten von Zeilen dein eigenes Level schreiben musst, hast du in Unity direkt einen Level Editor, wo du nur die Objekte platzierst und die Engine nimmt dir alles weitere ab. Sie nimmt die Scripts, Level, Modelle und fügt alles Automatisch zu einen gesamten Spiel zusammen. Ihr müsst euch also nur für die Skripts, für die Modellierung, fürs Leveldesign, Sounddesign e.t.c konzentrieren ohne immer drauf zu achten, dass alles auch richtig Implementiert wird, also bei einem größeren Projekt müsst ihr euch quasi erst eure eigene Engine schreiben, die alles miteinander verbindet, bevor es richtig losgehen kann und bei Unity habt ihr einen Großteil der Arbeit direkt erledigt. Also für den Anfang ist so eine Engine ala. Unity genau das richtige, aber wenn man immer erfahrener wird, und ein ordentlich großes Team im Nacken hat, kann man auch versuchen, selbst was auf die Beine zu stellen, weil man dann keinerlei Einschränkungen hat. Nochmal zusammengefasst:
Engine : Viel leichter, viel schnelleres Ergebnis,
Weniger Freiheit (Engine hat Grenzen)
Selbst Prog. Viel Komplizierter (Da Editoren und alles fehlen, du musst alles selbst zu einer Einheit zusammenfügen), es dauert lange, bis man ein Ergebnis hat, Unlimitierte Freiheit (Man hat quasi keine Grenzen)
Also als absoluter Anfänger solltest du mit einer Engine anfangen und gleichzeitig an so ganz kleinen selbstgeschrieben Klonen wie Pong, Tetris e.t.c zur Übung und Erfahrungssammlung arbeiten und als Hobby Entwicklerteam ist eine Engine genau das richtige. Gibt ja mehrere gute. Sprich "Man muss das Rad nicht immer neu erfinden
"