Spieleprogrammierung (Welche Sprache ist die Beste?)

7 Antworten

Die Frage hatte ich mir 1988 auch gestellt. Da es damals lediglich die Auswahl zwischen C, BASIC und Modula II gab, entschied ich mich, eine eigene Sprache zu schreiben.

Das hat den Vorteil, dass Du nur diejenigen Befehle entwickelst, die Du effektiv benötigst.

Wenn Du dann auf Grafikkarten etc zugreifen willst, ist es von Vorteil, Deine Sprache in C oder sonstwie Maschinennah zu programmieren, damit Deine eigenen Befehle auch rasch auf die Maschine zugreifen können. Ich hatte damals noch Assembler-Routinen entwickelt, um Hintergrundbilder besser komprimieren zu können als GIF und JPG.

Java hat zusätzlich den Vorteil, dass es auf allen gängigen Plattformen läuft. Wenn Du die Sprache z. B. als Interpret schreibst, empfehle ich Java oder gerade Javascript, damit Dein Spiel auch im Browser laufen kann.

Ein Spiele Programmierer würde dir jetzt C++ antworten , kann man sicher auch als Anfänger so durchziehen, es gibt ja auch leichtere Bücher wie "C++ für Spiele Programmierer" . C++ hat den Ruf recht schwer zu sein und ich würde da sogar zustimmen (mehr oder weniger) , dadurch hat man aber auch riesig viele Möglichkeiten . Als Anfänger solltest du trotzdem die Finger davon lassen . Generell ist Python zwar nicht so toll, der Interpreter ist aber recht dankbar , daher würde auch ich zu Python raten , vor allem kann man damit auch schon kleinere Spiele entwickeln . Am besten liest du ein Buch , sollte es aber wirklich ein Kurs sein und dein Englisch ist recht gut , dann solltest du auf coursera.org einen Blick auf den Python Kurs der Rice University werfen . Das ist zwar ein Anfängerkurs , aber die Projekte die man umsetzen muss sind kleinere Acradespiele wie zum Beispiel Pong oder Asteroids

Nun das ist doch von weiteren Faktoren abhängig. Reden wir von einem nativen Spiel für Android Devices, dann wäre die Antwort Java. Reden wir von nativen IPhone/IPad Spielen dann wäre es Objective-C.

Wollen wir platformübergreifend Mobile Devices und den PC treffen, dann bietet sich HTML5 an.

Reden wir von regulären PC Spielen, dann ist wohl C++ das Werkzeug der Wahl. Weiter kommt es natürlich auf das Spiel an. Kleine Arcarde Games wirst du auch Problemlos in Pyhton, Java oder C# umsetzen können. Reden wir von aufwändigen Games, dann spielt C++ eben seine Geschwindigkeit als Vorteil klar aus.

Neben der Sprache gibt es aber noch viele weitere Elemente. Sei es Basics der Spieleprogrammierung wie die Gameloop, das Erstellen von Grafiken und Sounds, die müssen ja auch woher kommen, Techniken wie Tilemapping, Tilescrolling, Raycasting und co. Dann sollten natürlich die Mathekenntnisse entsprechend sein. Gleichungen und Trigometrie, als auch das Arbeiten von Vektoren sind da nunmal der Hauptbestandteil.

Weiter stellt sich dann die Frage ob du auf einer Engine aufsetzt oder dir selbst eine schreibst. Alles von Grund auf zu machen mag möglich sein bei einen 2D Platformer ala Mario aber selbst sowas wird als gute Umsetzung mehre Monate bis Jahre dauern. Du solltest also nicht davon träumen im Alleingang das nächste Battlefield zu programmieren, an so Games sitzen 200-300 Mann starke Teams über Jahre und das sind welche der besten ihres Faches.

Soll das ganze Netzwerkfähig sein usw. kommen natürlich nochmal etliche Kenntnisse über Protokolle und Datenübertragung dazu. Methoden um das Spiel trotz "Lücken" flüssig erscheinen zu lassen (Interpolation) usw.

Auch wird heutzutage nicht alles wirklich in einer Sprache reingecodes, sondern es werden eigene Tools dafür erstellt. Bei einfachen Games sind dies z.B. die Mapeditoren, für komplexere Sachen reden wir von sowas wie dem Unreal Development Kit.

Also wenn du dir von "ein wirkliches gutes Spiel" mehr versprichst als ein 2D Platformer, dann darfst du schon einige Jahre an Arbeit investieren und selbst dann darfst du dich eher an Indiespiele orientieren, nicht an Triple A Titeln, so einen wirst du während deiner kurzen Verweilzeit auf diesen Planeten nicht fertigstellen können, abgesehen davon dass die Technik bei der Fertigstellung einige hundert Jahre alt wäre und dies keiner mehr als "wirklich gutes Spiel" betiteln würde.

Was möchtest Du wissen?