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?
game-design
cstack
quelle
quelle
Antworten:
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:
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
quelle
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?
quelle
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:
quelle
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.
quelle
Sie müssen genau beschreiben, was Sie unter "komplex" verstehen. Eine gute Game-Engine kümmert sich um Folgendes:
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?
quelle
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.
quelle