1.
Da hast du deine "Teile":
Spieleentwickler ? Wikipedia
2.
Für größere Spiele hauptsächlich C++
3.
Kommt auf das Spiel an.
Minecraft zum Beispiel würde vielleicht schneller laufen, wenn es in C++ geschrieben ist. Ob das so stimmt: Keine Ahnung.
Aber wie C++ und Java haben alle Programmiersprachen Stärken und Schwächen. Wichtig ist daher, die für die Anforderungen am besten geeignete Sprache zu finden.
Um mal auf den Titel "Weg des Programmierers" zurück zu kommen:
Der Begriff "Programmierer" ist ziemlich weit gefasst. Wenn du das konkretisierst, gibts da auch genauere Infos, aber eines bleibt immer gleich:
Jeder Programmierer fängt ganz mikrig klein an und kämpft sich lange und schwer nach oben. Manche stürzen ab und geben auf, andere bleiben auf der Strecke liegen und ein paar wenige schaffen es ganz nach oben.
Und lass dir gesagt sein: In ein paar Jahren kommst du wahrscheinlich nicht zum Ziel.
Aber wie beim Bergsteigen der Fuß des Berges sehr flach beginnt, gilt es auch beim programmieren lernen: Fang klein an!
Wenn du dir gleich die steilste Stelle am Hang suchst und ungesichert hoch kraxeln willst, stürzt du schneller ab, als du gucken kannst.
Nimm dir also ganz kleine Projekte vor. Der Taschenrechner ist meiner Meinung nach ein hervorragendes Ziel. Der ist in der Konsole sehr leicht umgesetzt und benötigt nur die wichtigsten Grundlagen. Wenn der dann läuft, kannst du weiter gehen, den Rechner verschönern, ausbauen, etc. Aber denk dran: Wirklich fertig ist er erst, wenn du alle Bugs behoben hast und selbst dann gibt es mit Sicherheit noch etwas zum besser machen.
Wenn du dich recht gut in der Materie aus kennst, dann kannst du dich mal nach einem Stichwort "Pattern" umschauen. Damit hab ich mich in meiner Ausbildung auch mal auseinander gesetzt und hab innerhalb so kurzer Zeit so viel dazu gelernt. Du lernst nichts sprachspezifisches, aber diese Pattern kann man gut auf andere Sprachen übertragen und wenn du für die jeweilige Situation das richtige Pattern findest, kann das Gold wert sein.
Bis hier hin kann ich gut aus eigener Erfahrung sprechen. Weiter bin ich bisher selber noch nicht, hauptsächlich, weil ich zu früh die Motivation verloren habe.
Ich habe also keine wirkliche Erfahrung, aber eins weiß ich und das wird die bekannt vor kommen: Fang bloß klein an!
Tetris, Snake, was auch immer. Das ist schaffbar und wenn du nicht so perfektionistisch an de Sache heran gehst, wie ich, dann wirst du auch recht schnell erste kleine Erfolge haben, wie z.B. eine Schlange aus Pixeln, die über die Konsole huscht. Klingt klein und unbedeutend, aber wenn du dich da hin gearbeitet hast und dann mit den Pfeiltasten diese Schlange steuern kannst - das macht irre Spaß, das erste eigene Spiel zu spielen. ^^
Ein Tipp aber noch: Versuch es nicht irgendwelchen Leuten zu zeigen. Das hab ich versucht und ich hab fest gestellt: Leute, die sich damit nicht aus kennen, die wissen diesen Erfolg überhaupt nicht zu schätzen.
Darüber hinaus gilt es, dich zu steigern. Eine Idee wäre vielleicht, das absolute Grund-Prinzip von Minecraft nach zu bauen. Ich hab mir sagen lassen, das ist eigentlich ganz einfach und wenn ich so überlege, wie ich das machen würde: Wirklich schwer klingt das nicht.
Also schreibe ein Spiel, wo ein Männchen (Ein Block, das reicht), von dir auf einer platten Welt hin und her gesteuert werden kann. Dann soll es Blöcke hoch hüpfen können. Dann soll es mit anderen Blöcken interagieren können, wie z.B. ihn abbauen oder hin bauen.
Eine eigene Textur für die Figur ist unwichtig, denn das ist gar nicht das schwierigste und wenn du das kleine Spiel von Anfang an richtig strukturiert hast (damit meine ich den Code), dann sollte es kein Problem sein, im Nachhinein eine tolle Figur mit hübschen Animationen einzufügen.
Du könntest ja auch mal komplexere Mods für Minecraft programmieren. Dann siehst du, wie das ungefähr strukturiert ist und kannst dir was ab gucken. Ob Minecraft so gut aufgebaut ist, kann ich dir nicht sagen, da ich bisher nur für Bukkit programmiert habe, aber auf jeden Fall ist das ein Praxis-Beispiel aus dem du lernen kannst - sowohl positiv als auch negativ.
Wenn du nun da angekommen bist, dass du Minecraft im Grundprinzip zu schreiben, dann schätze ich, hast du ungefähr die Hälfte des Weges geschafft und wie es danach weiter geht, weiß ich nicht.
Ich kenne nur so Stichworte wie DirectX (gibt sowohl für C++, als auch C# entsprechende Bibliotheken, oder du greifst direkt auf DirectX zu), XNA (eine Technologie zur Spieleentwicklung von und für Microsoft, in C# wäre das mein erster Anlaufpunkt, wenn ich grafische Spiele entwickeln will) und Engine.
Es gibt einige Game-Engines und bestimmt auch irgendwo welche, die nix kosten und die du so nutzen kannst. Ich denke allerdings, für den Anfang sollte man zumindest einmal eine eigene kleine Engine geschrieben haben. Nix besonderes, aber um zu verstehen, wie es funktioniert.
Das wären meine drei Anlaufpunkte, wonach ich suchen würde. Und dann nur noch dem roten Faden folgen und lernen, lernen, lernen.
ot:
PS:
Ich bin natürlich auch offen für Fragen, wenn du dich dafür entscheiden solltest, C# zu lernen.
Ich hab auch kein Problem damit, dich mehr oder weniger zu begleiten, allerdings möchte ich kein besseres Lexikon sein.
Wenn also Fragen kommen, die mit Google mal eben zu lösen sind, oder du dich davor scheust, dir entsprechende Lektüre durch zu lesen, dann kann ich dir auch nicht helfen.
Denn ich weiß nach nun zwei Jahren aus eigener Erfahrung:
Das Erlernen einer Programmiersprache aus eigener Kraft ist schwer, aber der beste Weg, eine Programmiersprache zu lernen.
Grund: Wenn du es einmal schaffst, dich von Anfang an in so etwas großes rein zu arbeitet, dann schaffst du das ohne Probleme auch ein weiteres mal und ganz schnell sieht das große Ziel gar nicht mehr so groß aus.
Also merk dir: Wenn du die erste Hürde, eine Programmiersprache zu lernen, gemeistert hast, ist das Schwierigste eigentlich schon vorbei.
Wenn du dann noch Spaß dabei hast, dann steht dem eigentlich nicht mehr viel im Weg.