somethinglikegames.de

Mein Blog über Spieleentwicklung und das Drumherum


Kategorien


Tags

Wenn man sich in der heutigen Zeit mit Spieleentwicklung beschäftigen möchte, wird man schon direkt zu Beginn mit einem Luxusproblem konfrontiert. Während in den Anfängen der Videospieleentwicklung beinahe für jedes Spiel die genutzten Sound- und Grafikausgaben Inhouse neu entwickelt bzw. überarbeitet wurden, kann man heutzutage aus einer Vielzahl möglicher Werkzeuge auswählen.

Ich habe bislang zwei Computerspiele “veröffentlicht”.
Das erste Spiel war ein 2D Jump’n’Run, welches die Geschichte meiner (mittlerweile) Frau und mir erzählte, was wir als Hochzeitseinladung verwendeten. Das Spiel hatte ich in Java geschrieben, ohne irgendwelche Fremdbibliotheken zu verwenden. Die Level und Spielfiguren bestanden aus nicht animierten Sprites, es gab Hintergrundmusik, und die verschiedenen Level waren in Textdateien abgelegt, deren Inhalt zur Laufzeit als Sprites etc. interpretiert wurden.
Das zweite Spiel war ein kleines Lern-/Denkspiel fürs Kopfrechnen, was ich Kleine Matheakademie getauft und 2015 im Google Play Store veröffentlicht habe. Dabei habe ich mir, im Gegensatz zum Jump’n’Run, das Leben etwas vereinfacht und nicht alles selbst geschrieben, sondern stattdessen libGDX verwendet. Dank libGDX musste ich mir nicht mehr alles selbst ausdenken und umsetzen, sondern konnte mich im Wesentlichen auf das Programmieren der eigentlichen Spielmechaniken konzentrieren. Eine vollständige Spiel-Engine für ein solches Spiel zu nehmen, erschien mir damals als unnötig kompliziert.

Mittlerweile denke ich da anders. Das liegt unter anderem daran, dass ich schon vor Jahren eingesehen habe, dass ich kein Händchen für 2D-Grafik habe und ich bezweifle, dass sich daran jemals etwas ändern wird, sodass ich mir am ehesten im 3D-Bereich zutraue, eigene Assets zu erstellen. 3D-Modellierung ist nochmal eine andere Herausforderung, aber irgendwie habe ich dabei ein leicht besseres Gefühl. Ich habe mir in den vergangenen Jahren immer mal wieder die meiner Meinung nach bekanntesten Vertreter im Bereich der 3D-Engines angesehen, die zugleich eine relativ freizügige Lizenzierung anbieten und mit denen man möglichst unter Linux entwickeln kann. Kurzum, ich habe mich mit der Unreal Engine 5, Unity und der Godot Engine näher befasst.

Unreal Engine 5

Die Unreal Engine 5 stellt für mich das Maximum des aktuell Möglichen im Bereich Echtzeit-3D-Rendering dar. Gerade im Zusammenhang mit der kostenlosen Nutzung von Quixel Megascans ist es verblüffend einfach, visuell beeindruckende Szenerien zu erschaffen. Und dank Lumen und Nanite bekommt man zusätzlich ein überragendes Beleuchtungs- bzw. automatisches LOD-System geliefert. Das im folgenden Video gezeigte habe ich aus fertigen Komponenten in erstaunlich kurzer Zeit erstellt:

Dazu kommt, dass die Lizenz besagt, dass erst nach einem Umsatz von 1 Million US-Dollar Gebühren fällig werden. Etwas, was ich wahrscheinlich nie mit einem Spiel erzielen werde.
Wo Licht ist, da ist auch Schatten. So toll alles wirken kann, so viel Aufwand ist dafür auch nötig. Als einzelne Person ohne Vorerfahrung mit der Unreal Engine ist es (leider) zu viel Aufwand. Noch dazu ist die Entwicklung unter Linux meines Wissens nach zwar möglich, aber deutlich weniger gut unterstützt als unter Windows.

Unity

Unity ist gefühlt der Platzhirsch unter den Spiel-Engines bei kleinen Studios und Einzelpersonen. Es gibt unzählige Tutorials im Internet zur Spieleentwicklung mit Unity, sowohl kostenlose als auch kostenpflichtige. Auch in meiner “Game Design + Development”-Vorlesung, während meines Masters, wurde Unity für die praktischen Beispiele genutzt. Das Unternehmen dahinter zeigt zudem immer wieder mit imposanten Videos, was mit Unity so möglich ist. Aber irgendwie kommt es mir so vor, als ob der Lauf der Zeit bei Unity dafür sorgt, dass es immer mehr zu einem Flickwerk wird. Das folgende Video versucht den aktuellen Zustand zusammenzufassen:

Ich selbst habe in den vergangenen Jahren auch immer mal wieder versucht, mich mit Unity anzufreunden, aber aus irgendeinem Grund ist es mir nie gelungen. Ich hatte auch diverse Probleme mit dem Unity Hub unter Linux, was dazu führte, dass ich einige Zeit lang die Entwicklungsumgebung gar nicht mehr starten konnte.
Aber spätestens als Mitte 2022 hunderte Angestellte entlassen wurden, hat das Unternehmen und dadurch auch die Engine seine Sympathien bei mir vollends verspielt.

Godot Engine

Die Godot Engine ist wohl bei diesem Vergleich the new kid on the block, auch wenn sie eigentlich auch schon einige Zeit existiert. Mir ist sie erst seit gut 1,5 Jahren ein Begriff, aber sie ist meiner Meinung nach aktuell die interessanteste OpenSource Spiel-Engine. Dank komplett neu geschriebenem Vulkan-Renderer macht Godot mit der kommenden Version 4 große Schritte, was zeitgemäßes 3D-Rendering angeht. Ein paar Eindrücke davon kann man unter anderem auf dem YouTube-Kanal von devmar gewinnen, der schon durch Optimierung mit Godot 3.4 wirklich überzeugende Ergebnisse gezeigt hat:

Nach allem, was ich so gelesen habe, ist Godot im 2D-Bereich ein wirklicher starker Konkurrent im Rennen. Dazu kommt, dass die Entwicklungsumgebung der Engine, übrigens ebenfalls eine Godot-Anwendung, nur aus einer einzelnen Datei besteht, die direkt alles Notwendige ohne Installation enthält. Im Gegensatz zur Unreal Engine oder zu Unity ist kein Account zur Nutzung notwendig. Jeglicher erzielte Gewinn gehört einem selbst, wobei ich der Meinung bin, dass man spätestens bei Erzielung von Gewinnen durch die Verwendung von OpenSource-Software den verwendeten Projekten auch etwas zurückgeben sollte. Es muss keine Gewinnbeteiligung oder Spende sein, aber zumindest aktives Engagement in der Community sollte es in irgendeiner Form schon sein.
Programmiert werden kann von Hause aus entweder mit der eigenen Skriptsprache GDScript oder C#, aber es gibt auch Erweiterungen, um bspw. Rust verwenden zu können. Mir persönlich reicht GDScript bislang, dank optionaler statischer Typisierung, vollkommen aus. Mit Godot 4 wird bzw. wurde auch GDScript 2.0 eingeführt, welches unter anderem Performancevorteile bei Verwendung der optionalen Typisierung bietet.

Alles in Allem gefällt mir persönlich Godot wirklich sehr gut, auch wenn ich noch lange nicht weiß, was es alles an Möglichkeiten noch bereithält. Der Funktionsumfang sollte für eine Einzelperson und auch für kleinere Teams wahrscheinlich einige Zeit vollkommen ausreichen.
Sollte man Teil eines ambitionierten Teams sein, kann man sich auch die Unreal Engine näher ansehen, da man dadurch die Chance auf eine finanzielle Förderung durch Epic MegaGrants hat.