Vergiss Java. Java ist zur Entwickung von Spielen eigentlich ungeeignet. Minecraft braucht zum Besipiel 2GB Ram im Hauptmenü. Die Speicherverwaltung von C++ ist viel besser und generell ist C++ Anpassungsfähiger.
Ich denke gerade Minecraft widerlegt dein Argument sehr deutlich. Wenn sich ein Spiel über 15 Millionen Mal verkauft, dann zeigt das, dass es eben überhaupt nicht darauf ankommt, in welcher Sprache man entwickelt. Man sollte die Sprache verwenden, die man beherrscht. Die Speicherverwaltung von C++ ist auch nicht besser als in Java. In C++ ist sie nur dem Nutzer überlassen, der es natürlich besser machen kann als Java. Aber gerade bei Programmieranfängern ist eben die Speicherverwaltung in C++ der Grund der meisten Probleme. Ich bin auch kein großer Freund von Java (allerdings habe ich jetzt mehr als 3 Jahre damit gearbeitet und Performance war wirklich selten ein schwerwiegendes Problem). Gerade in der mobilen Entwicklung für Android ist Java auch wieder interessant. Zwar kann man mit dem NDK auch mit C++ entwickeln, aber ganz um Java kommt man auch da nicht rum und gerade einem Anfänger würde ich nicht unbedingt das NDK empfehlen.
ich wollte mir bücher kaufen für c++ und was zur spieleentwiklung dazu gehört.
C++ ist gerade für Anfänger sehr schwierig zu lernen. Ich bin zwar nach wie vor der Meinung, dass es sinnvoll ist, C++ auch durchaus am Anfang zu lernen, weil wer einmal Pointer und Referenzen verstanden hat, der wird in anderen Sprache damit keine Probleme mehr haben. Jedoch bedeutet das lernen von C++ erstmal für längere Zeit überhaupt nicht über GameEngines nachzudenken, denn das Lernen einer Programmiersprache geht nicht von heute auf Morgen, sondern dauert mehrere Monate (bis man die Grundlagen erlernt hat - man lernt eigentlich nie aus).
Wenn du daher wirklich schnell Spiele entwickeln willst, würde ich dir eher einen GameMaker empfehlen, bei dem man auch ohne große Programmierkenntnisse erste Ergebnisse erzielen kann. Oder du beschäftigst dich mit Unity, da C# in meinen Augen etwas leichter zu erlernen ist als C++ (und man gerade für C# und Unity auch viele Einführungstutorials findet, die einem die Sprache sehr spielorientiert nahe bringen). Bei C++ wirst du dich erst einmal für längere Zeit mit trockenerem Stoff auseinandersetzen müssen, was aber auch nicht verkehrt ist. Wenn dich das Programmieren wirklich interessiert, dann lohnt es sich auf jeden Fall auch viel Zeit ins Lernen zu investieren. Möchtest du erst einmal herausfinden, ob die Spieleentwicklung wirklich so interessant und unterhaltsam ist, wie du sie dir vorstellst, dann würde ich nicht damit beginnen C++ zu lernen.
Schade die cryengine hat mir nämlich am besten gefallen, also rein optisch.
Die Optik einer Engine ist eigentlich zweitrangig. Was du siehst, lässt sich oft auch in gleicher oder ähnlicherweise mit anderen Engines umsetzen, da diese oft über sehr ähnliche Techniken verfügen. Nur weil Crytek also das, in deinen Augen, hübschere Demo-Material zur Verfügung stellt, heißt das nicht, dass das mit anderen Engines nicht möglich wäre. Ferner wirst du an diese Optik sowieso erstmal nicht herankommen. Derartig gute Grafik hängt sehr starkt von den detaillierten Modellen und den verwendeten Texturen ab. Graphisch anspruchsvolle Szenen, wirst du ohne Grafikkenntnisse also kaum umsetzen können. Als Programmierer bist du für die Spiellogik verantwortlich. Das Resultat kann dann oftmals auch eher hässlich sein
. Denn es ist auch kein Kunststück mit der besten Engine, das hässlichste Spiel zu entwickeln
.