Welche Programmiersprache ist die beste für Spieleentwicklung?

4 Antworten

Eine sich meiner Meinung gut eignende Programmiersprache, um in die Spieleentwicklung einzusteigen, ist JavaScript. In Verbindung mit Libraries wie p5.js lassen sich im Browser schnell Erfolge erzielen und einfache Spiele programmieren und trotzdem führt JavaScript gut in die grundsätzliche Ideen der Programmierung ein, ohne zu kompliziert zu sein, sodass das Lernen von vielen anderen Programmiersprachen nur ein wenig Inhaltliches als mehr das schlichte Lernen neuer Syntax - mit denselben grundlegenden Konzepten - beinhaltet.

Hat man JavaScript ein bisschen durchstiegen und möchte ein wenig tiefer in die Welt der Spieleprogrammierung einsteigen, finde ich eine höhere, objektorientierte Sprache Java sehr passend - das ist sicher auch ein persönlich angehauchter Vorschlag. Java ist zwar nicht so schnell wie C++, aber ein Schritt weit genug in Richtung objektorienterte Spieleprogrammierung mit expliziter Typisierung.

C++ halte ich trotz seiner weiten Verbreitung in der Welt der Spieleprogrammierung weder als Erst-, noch als Zweitsprache für geeignet. Meiner Meinung nach sollte man Programmierung beherrschen, bevor man C++ lernt. Selbst an diesem Punkt wird man noch oft genug an C++ verzweifeln, wenn man merkt, wie viel einem Sprachen wie Java doch implizit abgenommen haben. Aber man muss nicht mehr lernen, wie man programmiert, sondern nur wie man mit C++ programmiert und das vereinfacht das Lernen extrem.

Wer C++ als Sprache verwendet, um damit gleichzeitig programmieren zu lernen, hat sich ein damit ziemlich hartes Ziel gesteckt und wird meiner Erfahrung nach zu spärlich und zu langsam wirkliche Erfolgserlebnisse feiern können. Das macht es schwierig, die Motivation aufrecht zu erhalten, weiter programmieren lernen zu wollen, weil Eigenheiten von C++ die Lernkurve abflachen, deren Sinn und Zweck man womöglich noch nicht einmal verstehen kann. Ich selbst musste im Studium relativ früh einer Pflichtvorlesung wegen mit C++ programmieren und hatte nur die Basics der Programmierung drauf, was mir das Lernen von C++ zusätzlich erschwert hat. Seitdem habe ich mich C++ - mitunter aus Zeitgründen - nicht mehr genähert als ich durch die zwei belegten Vorlesungen gezwungen war und entwickle stattdessen - das hat natürlich auch berufliche Gründe - bis heute so gut wie überall in Java.

Das heißt im Klartext: Eine objektorientierte, höhere und in der heutigen Zeit häufig verwendete Sprache wie Java, C oder C# im Detail zu können, gehört zur Grundausstattung, um irgendwann erfolgreich Spiele programmieren zu können und zumindest die Grundlagen und Eigenheiten einer expliziteren Sprache wie C++ sollte man mal gesehen haben, allein um nur einmal den Horizont des Möglichen und des Existierenden zu kennen.

Meine Empfehlung: Kauf dir ein Buch zum Programmieren lernen mit JavaScript (kostenlose Online-Kurse wie auf YouTube gehen leider kaum in die erforderliche Tiefe, um wirklich zu verstehen), idealerweise mit direktem Fokus auf Spieleentwicklung in Verbindung mit einem Framework oder einer Library wie p5.js. Damit wirst relativ schnell auch schon komplexere Spiele programmieren können. Wenn du die Basics des Programmierens beherrscht, solltest du aber relativ schnell auf eine der höheren Sprachen wie Java (oder - je nach persönlicher Präferenz - alternativ auch beispielsweise C oder C#) umsteigen.

Wenn du damit wirklich das Programmieren in der Tiefe gelernt hast und Java (bzw. C oder C#) im Detail beherrscht, kannst du auf komplexere Sprachen wie C++ umsteigen und lernen, mit welchen Paradigmen und Sprachen viele "echte" Spieleprogrammierer Spiele entwickeln - und nur um kurz eine grobe Orientierung dafür zu geben, was mit "im Detail beherrschen" bei einer Sprache wie Java gemeint ist: Ich spreche hier von einem tiefgehenden Verständnis der Sprache, für das locker 1-2 Jahre Beschäftigung mit der Sprache notwendig sind.

Eine gute Alternative zum blanken Umstieg auf eine Sprache wie C++ ist, sich mit modernen in der Spieleentwicklung verwendeten Engines wie Unity/Unity 3D (mit JavaScript und C#), der Unreal Engine (mit C++) oder der Cry Engine (C, C++ und LUA) zu befassen. Sie bieten einen anwendungsorientierten Einstieg in andere Programmiersprachen und es lassen sich damit auch schneller sichtbare Erfolge erzielen als mit dem nackten Lernen einer neuen Programmiersprache. Zudem sammelst du Erfahrung mit in der Spieleentwicklung verwendeten Technologien.

Bereits intrinsisch komplexere Sprachen wie C++ zu früh anzugreifen, halte ich für wenig erfolgversprechend, es sei denn man hat wirklich eiserne Nerven und eine extreme Motivation, wirklich nach jedem Hinfallen wieder Aufzustehen und durchzuhalten und sich durch vieles durchzubeißen. Will man immer wieder Erfolge schaffen und neue Motivation sammeln, eignet sich der Weg des Programmieren Lernens über andere, durch weniger notwendige Explizität und mehr "einfach funktionierende" implizite Funktionalitäten einfacher zu lernende Sprachen wie Java, C oder C# in meinen Augen besser. In Verbindung mit Frameworks oder Engines wird man zudem schneller sichtbare Erfolge verbuchen können, weil man nicht bei Adam und Eva anfangen muss, sondern auf bestehende Funktionalität aufbauen kann (wobei bei Adam und Eva anzufangen eine zwar nicht so steile, aber breitere Lernkurve erzeugt, d.h. mehr dahinterliegendes Verständnis garantiert - auch eine wichtige Erfahrung).

Bis zum wirklich Spiele programmieren können ist es aber ein weiter Weg - und holprig wird es. Nicht ohne Grund sind Software und Game Engineer keine schlecht bezahlten Berufe, erst recht privat gesammelte Programmier-Erfahrung, mit der man sich von anderen abhebt und intrinsische Motivation zeigt, zahlt sich hier - meiner Meinung nach sogar noch mehr als ein Abschluss - wortwörtlich aus.

Du wirst relativ schnell die Erfahrung mache, dass Code zwar eigentlich völlig logisch und deterministisch funktioniert, es aber oft einige Zeit benötigt, den Durchblick zu finden und zu verstehen, warum der Code tut was er tut. Aber am Ende des Tages lohnt sich der Aufwand, denn jedes Ergebnis eines funktionierenden Codes oder behobenen Bugs ist wie Musik in den Ohren - und schlussendlich ist dann doch alles ganz logisch und jeder Bug sonnenklar, auch wenn man manchmal vorher Stunden über angeblich falsches, unverständliches Verhalten des Codes grübeln musste ;-) aber das gehört dazu. Viel Erfolg!

Woher ich das weiß:Berufserfahrung – Software-Entwicklung

Kommt drauf an was du genau machen willst
Browserspiele Javascript, PHP
Handyspiele Android: Kotlin, Java, iOS: Swift, Objective C
PC Spiele: C++, C#, Java(eher richtung Geräteübergreifende Spiele wie Minecraft)

MrAmazing2  20.02.2023, 23:39

Wobei Minecraft Java nichtmal geräteübergreifend ist, also eher schlechtes Beispiel haha

Minecraft Bedrock Edition, die geräteübergreifend ist, wurde mit C++ gemacht.

0
MrAmazing2  19.03.2023, 14:20
@jakob960198

Habe ich das jemals behauptet?

Habe doch gesagt es ist nicht geräteübergreifend sondern nur für PC

0

An sich C++ oder C#.
C++ kann aber bisschen komplex sein für einen Anfänger.

C# und C++

Es kommt voll drauf an welche Game Engine du nutzen wirst. Am besten ist meiner Meinung nach aber C#. Für die Game Engine "Unity" kannst du C# nutzen.

Woher ich das weiß:Hobby – Programmierer seit mehreren Jahren