Was sind die Vor- und Nachteile einer Game Engine? [geschlossen]

28

Woher weiß ich, ob ich eine Game-Engine verwenden soll oder nicht? Ich möchte ein relativ komplexes 2D-Spiel für Android machen. Welche Faktoren sollte ich abwägen, um zu entscheiden, ob ich eine Game-Engine finden, installieren und erlernen oder einfach alles manuell ausführen möchte?

cstack
quelle
Ich bin mir nicht sicher, ob das Game-Design das beste ist. aber Motor wurde auf die schwarze Liste gesetzt. Diese Frage sollte wahrscheinlich nur gelöscht werden.
Gnemlock

Antworten:

25

Vorteile:

  • Die meisten, wenn nicht alle Codierungen für Sie vorgenommen werden, müssen Sie sich also nur um Inhalt, Ebenenlayout usw. kümmern.

  • In diesem Sinne wurden Speicherverwaltung, Laden von Ressourcen, Beleuchtung (in komplexen Engines) usw. (hoffentlich) gründlich entwickelt und getestet.

  • Wie weiter unten erwähnt, müssen Sie, wenn die Engine plattformübergreifend ist, nur wenig bis gar nichts tun, um Ihr Spiel zu portieren.

Nachteile:

  • Wenn Sie etwas ändern, müssen Sie sich jetzt mit einer neuen Codebasis vertraut machen.
  • Wenn es einen Fehler in der Engine gibt, können Sie ihn nicht beheben, es sei denn, es handelt sich um Open Source.
  • Die Engine wurde nicht speziell für Ihr Spiel entwickelt, daher ist sie möglicherweise weniger effizient als der Code, den Sie speziell für Ihr Spiel schreiben.
  • Game Engines sind in der Regel nicht kostenlos.
  • Wenn ein Spiel klein ist, lohnt sich der Aufwand für die Verwendung einer Engine möglicherweise nicht, um selbst Code zu schreiben.
  • Wenn Ihre Spiel-Engine auch über Editoren oder Tools verfügt, müssen Sie diese ebenfalls erstellen und testen, bevor Sie sie Künstlern überlassen oder sich auf sie verlassen.

Lassen Sie sich nicht die Tatsache entgehen, dass die Liste der Nachteile länger ist: Wenn der Zeitaufwand für das Codieren und Testen aller benötigten Systeme für Ihren Produktionszyklus zu lang ist oder wenn Sie mehr Kunst als Code beherrschen, verwenden Sie eine Game-Engine auf jeden fall eine gute idee.

Ein Vergleich der Game-Engines ist in dieser Frage in Arbeit: Vor- und Nachteile der verschiedenen 3D-Game-Engines

Sean James
quelle
3
Dies ist insgesamt eine ziemlich gute Antwort, aber ich runzelte gleich im ersten Satz die Stirn. Ich würde dringend empfehlen, "Die meisten, wenn nicht alle Codierungen für Sie vorgenommen werden" in "Die meisten Codierungen auf niedriger Ebene werden für Sie vorgenommen" umzuformulieren. Es ist irreführend, den Mythos "Mach ein Spiel ohne Kodierung!" zu verewigen.
jhocking
Darüber hinaus kann die Engine Ihre Möglichkeiten einschränken - zum Beispiel unterstützen nur einige von ihnen kein von Minecraft oder Zwergenfestungen modifiziertes Gelände. Das ist in Ordnung für Spiele, die es nicht brauchen, aber viel Glück beim Erstellen eines Minecraft-Klons mit einem.
user253751
15

In meinem Fall habe ich viel Zeit (Monate) damit verbracht, nichts wegen Game Engines zu erledigen. Ich vermeide sie jetzt normalerweise wie die Pest, obwohl ich verstehe, dass sie mit Bedacht und in Maßen verwendet werden sollten.

Für mich würde ich über alle Möglichkeiten besessen sein ! Wenn man sich eine lange Liste von Funktionen in Engine X ansieht, sieht es so aus: "Wow, ich könnte das alles schaffen! Mein Spiel könnte großartig sein!" Also lade ich es herunter, führe die Demos aus und lasse mich von diesen Funktionen in Aktion verblüffen. Dann erstelle ich ein neues Projekt in meiner IDE und weiß nicht, wo ich anfangen soll. Ich würde einen Code schreiben, den ich vielleicht aus den Demo-Projekten lernen und aufbauen könnte, aber das waren nur Demos.

Ich wusste nicht, wie ich aus dem Nichts anfangen und etwas machen sollte. Ich wusste den ersten Schritt nicht. Ich mochte die Idee eines Motors, sie hat mich beeindruckt und motiviert, etwas zu machen, aber mein Wissen über die tatsächliche Entwicklung war so begrenzt, dass ich selbst wusste, wie man den Motor zum Erstellungspfad hinzufügt und vielleicht ein paar Zeilen zum Starten schreibt den Motor abstellen und dann wieder abstellen, darüber hinaus habe ich nie etwas Sinnvolles gemacht.

Ich bin viel eher ein Baby-Step-Typ. Ich würde mein Spiel lieber Schritt für Schritt selbst entwickeln, nützliche Funktionen überarbeiten und diese Funktionen in einer Bibliothek sammeln, die ich eines Tages als "Engine" bezeichnen könnte. Im Moment vermeide ich also den Motorhype und halte mich nur an das Low-Level-Zeug.

Und Motoren haben ihren Platz. Wenn Sie einen Motor finden und sich denken: "Genau das würde ich schreiben. Sie haben die Arbeit bereits für mich erledigt. Ich muss das Rad nicht neu erfinden und weiß genau, wie ich es in das Spiel einbinden kann dass ich schon angefangen habe [oder zumindest vollständig geplant und bereit bin anzufangen] "dann ist es wahrscheinlich eine gute Passform. Sie werden genau wissen, wie man es benutzt und wie man eigenen Code schreibt, um mit der Engine etwas Nützliches zu erstellen. Aber wenn du einen Motor bekommst, nur weil er alles außer dem Spülbecken hat und du denkst, du stehst auf den Schultern von Riesen, dann liegst du sehr falsch. Sie haben einen Riesen vor sich und müssen auf die Schultern klettern.

Also der große Nachteil für mich: Lassen Sie sich nicht auf alles ein, was Sie tun können. Welchen Motor Sie auch wählen mögen, er hat ein enormes Potenzial. Aber wenn Sie nicht wissen, wie Sie das Potenzial tatsächlich nutzen können, wenn es Ihr Leben nicht einfacher macht oder Sie bei der Erledigung Ihrer Arbeit unterstützt, warum nutzen Sie es dann?

Ricket
quelle
4

Der größte Nachteil einer Game-Engine ist, dass Sie es lernen müssen. Wenn Sie sich mit Programmieren im Allgemeinen noch nicht auskennen, ist dies möglicherweise noch schneller als das Erlernen des Programmierens, um alle Aufgaben zu erledigen, die eine Engine für Sie erledigt. Wenn Sie jedoch Erfahrung haben, kostet es Sie keine Zeit, sich hinzusetzen runter und loscodieren, aber ziemlich viel Zeit im Voraus, um sich in einem unbekannten Motor zurechtzufinden.

Das Wichtigste, worauf Sie achten müssen, ist die Unterstützung, da Game Engines nicht perfekt sind und Ihre Gedanken nicht lesen und Sie irgendwann auf ETWAS stecken bleiben. So:

  • Gibt es Unterlagen?
  • Ist die Dokumentation überhaupt gut?
  • Gibt es technischen Support (im Allgemeinen nicht, es sei denn, Sie zahlen dafür)? Wie spät ist es?
  • Gibt es Community-Foren, in denen Sie Fragen stellen und echte Antworten erhalten können?
  • Gibt es Tutorials, die Ihnen zeigen, wie Sie den Motor starten? Ist ein Beispiel-Quellcode enthalten? Wie nützlich finden Sie diese, um auf dem Laufenden zu bleiben?
Ian Schreiber
quelle
2
+1, um die Dokumentation in den Vordergrund zu
rücken
3

Als jemand, der viel Erfahrung in der Softwareentwicklung hat und erst kürzlich wirklich versucht hat, ein Spiel von Grund auf neu zu entwickeln, hier meine 2 Cent.

Die bisherigen Antworten haben eine lange Liste von Vor- und Nachteilen geliefert. Ich gebe an, was für mich der wichtigste Grund ist, KEINE Spiel-Engine zu verwenden. Als ich mich an die Aufgabe machte, ein Spiel zu lernen, das nur als Herausforderung und Belohnung gedacht war, entschloss ich mich, es von Grund auf ohne Engine zu machen, nur mit OpenGL und SDL, weil ich lernen wolltealles über dieser Abstraktionsebene. Ich habe diese Entscheidung zu keinem Zeitpunkt bereut. Mein Spiel ist eine schöne scrollende Version von 2D Asteroids, einfach, aber flüssig. Ich versuche nicht, mit überlegenen Spielen zu konkurrieren, aber ich verteile mein Spiel und die Leute haben es genossen, es zu spielen. Ich werde den gleichen Ansatz verfolgen, um das Spiel für mehrere Spieler zu gestalten. Dies ist eine enorme Herausforderung, und die Verwendung von Bibliotheken macht es möglicherweise einfacher, aber ich habe das Ziel, es nicht einfach zu machen. Mein Ziel ist es zu lernen, und für mich ist es eine Teilzeitbeschäftigung, daher habe ich nicht viel Zeit und Fortschritte sind langsam. Aber ich habe meine Gründe für diesen Ansatz. Nennen Sie es "höheres Lernen".

Beantworten Sie also Ihre eigene Frage: Möchten Sie lernen, wie Sie die Dinge tun, die die Game Engine für Sie erledigt, um die Vorteile dieses Lernens zu nutzen? Verwenden Sie in diesem Fall keine Game-Engine.

Ciaran
quelle
2

Sie müssen genau beschreiben, was Sie unter "komplex" verstehen. Eine gute Game-Engine kümmert sich um Folgendes:

  • Rendering mit stabiler Framerate
  • Eingabehandhabung
  • Benutzeroberfläche
  • Töne / Musik
  • Ressourcenverwaltung (Bilder, Ton, Datendateien)
  • Spiel speichern / laden
  • Physik (2D oder 3D)

Denken Sie an sich selbst, weiß ich, wie ich jedes dieser Elemente codieren kann? Wie lange werde ich brauchen, um die einzelnen Funktionen zu programmieren, und wie lange werde ich brauchen, um zu lernen, wie ein Motor diese Funktionen ausführt?

Zaratustra
quelle
1

Der größte Vorteil: Vieles wird für Sie erledigt. Sie müssen das Rad nicht immer wieder neu erfinden.

Ein weiterer Vorteil: Die Game-Engine kann auch plattformübergreifend sein (Unity).

Nachteile? Steuerung? Die Engine kümmert sich um einige Dinge (wie das Rendern). Wenn es also Fehler oder Leistungsprobleme gibt, können Sie diese nicht einfach selbst beheben.

Bryan Denny
quelle