Welche Vor- oder Nachteile sollte ein Anfänger beachten, wenn er sich für eine 2D-Game-Engine (wie Slick2D / Flixel / FlashPunk) und eine 3D-Engine (wie Unity) für die 2D-Game-Entwicklung entscheidet?
Ich fange gerade erst mit der Entwicklung von Indiespielen an, obwohl ich in der Vergangenheit ein bisschen mit Game Maker, Flash und XNA experimentiert habe. Ich habe viele positive Dinge über Unity gehört und seine plattformübergreifende Natur macht es attraktiv, aber soweit ich weiß, ist es eine 3D-Engine im Kern.
Gibt es für ein strikt 2D-Spiel zwingende Gründe, mit einer 3D-Engine wie Unity zu arbeiten? Oder würde es meiner anfänglichen Lernerfahrung nur unnötige Komplexität hinzufügen?
Antworten:
Es hängt vom Spiel ab, aber zum größten Teil wird es einfacher sein, ein striktes 2D-Spiel mit einer Engine zu erstellen, die speziell für 2D entwickelt wurde.
Nun zu einigen Vor- und Nachteilen (einige davon beziehen sich speziell auf die Einheit, einige sind allgemeiner)
Nachteile
Bei 3D-Engines handelt es sich in der Regel um Spielobjekte, die 3D-Modelle (Polygone und Texturen) sind. Zwar ist es durchaus möglich, ein flaches Flugzeug zu erstellen und es mit einer Textur zu versehen, Sie arbeiten dabei jedoch aktiv gegen den Motor.
Zusätzlich fehlt vielen 3D-Engines die Fähigkeit, Sprite-Sheets (alle Frames der Animation auf einer Textur) zu verarbeiten, da sie erwarten, dass die Animation auf das Modell (obwohl Rigging und andere Methoden) und nicht auf die Textur einwirkt. Auch hier gibt es Möglichkeiten, aber Sie arbeiten aktiv gegen den Motor, um dies zu erreichen.
Komplexität hinzugefügt. Wie in Josh Petries Antwort erwähnt, ist 3D ein großes Stück komplexer als 2D, hauptsächlich in Mathematik und Szenenverwaltung. Das Bewegen von Objekten und der Umgang mit 3D-Raum ist schwierig, und wenn dies eines Ihrer ersten Spiele ist, wird es nur noch schwieriger. Die gute Nachricht: Unity abstrahiert einige dieser Probleme, obwohl es einige Dinge geben wird, mit denen Sie sich noch befassen müssen (und ein Großteil der Abstraktion ist wiederum für 3D-Modelle gedacht, nicht für 2D-Sprites).
Die meisten Bibliotheken, mit denen Unity ausgeliefert wird oder die Sie dafür erhalten können, sind für 3D-Objekte gedacht. Dazu gehören Dinge wie Beleuchtung, Wegfindung, Physik usw. In der Zwischenzeit funktioniert box2d problemlos mit Flash, XNA oder etwas anderem (na ja, vielleicht).
Vorteile
3d Beschleunigung. Grafikkarten können viel besser mit vielen Objekten in einer Szene umgehen als mit einer CPU, und mit Unity können Sie diesen Vorteil ganz einfach erzielen. Auf diese Weise können Sie Tausende von Sprites auf dem Bildschirm anzeigen oder Partikeleffekte ganz einfach einfügen oder lustige Elemente wie Shader hinzufügen, um coole Effekte wie das Verzerren von Raum und Zeit nach Belieben zu unterstützen. Unity hat viele dieser Effekte eingebaut, was es wirklich einfach macht. Beachten Sie, dass viele 2D-Engines hinter den Kulissen OpenGL oder DirectX verwenden und in vielen Fällen auch hardwarebeschleunigt werden können.
Unterstützung für Modelle. Erinnerst du dich an das, was früher ein Problem war? Ja, das kann auch von Vorteil sein. Je nach Spiel kann es von Vorteil sein, rotierende Kugeln oder etwas Cooles wie ein 3D-Objekt in den Hintergrund zu integrieren. Sie können auch ein Spiel aus 3D erstellen, das jedoch einfach in eine 2D-Perspektive gezwungen wird. Auf diese Weise können Sie die Weltgeometrie drehen, ohne dafür jede Menge zusätzliche Grafiken benötigen zu müssen.
3d lernen. Seien wir ehrlich, viele Spiele sind in 3D geschrieben. Wenn Sie lernen, wie man Unity verwendet, können Sie viele dieser Fähigkeiten auf das nächste Spiel anwenden, für das möglicherweise 3D erforderlich ist. Zusätzlich wird vielen Künstlern, die gerade aus der Schule kommen, 3D-Modellierung beigebracht, so dass es "einfacher" ist, einen 3D-Künstler als einen traditionellen 2D-Spielekünstler zu finden (ob diese Künstler gut sind ...).
Fazit
Es gibt viele Nachteile, es gibt auch eine anständige Menge von Vorteilen. Es hängt alles von der Art des Spiels ab, das Sie machen möchten. Es liegt an Ihnen, zu entscheiden, ob es sich lohnt. Flash ist immer noch eine äußerst praktikable Option. Es ist also nichts Falsches daran, mit einer 2D-Engine zu arbeiten, wenn dies besser zu Ihrem Spiel passt.
quelle
Ein großer Nachteil ist die zusätzliche Komplexität: 3D-Engines bieten nicht immer die gleiche erstklassige Unterstützung für 2D-Grafiken wie dedizierte 2D-Engines. Dies bedeutet, dass das Erstellen und Verwalten einer 2D-Szene entweder viel zusätzliche Arbeit erfordert, und / oder dass Sie sich immer noch mit der Komplexität der 3D-Mathematik- und Transformationspipeline befassen müssen. Insbesondere wenn Sie mit den Grundlagen der 3D-Grafiktheorie nicht ganz vertraut sind, können Sie sich verloren und verwirrt fühlen, wenn Ihre Bilder nicht angezeigt werden, und wenn Sie nicht vorsichtig sind, können Sie auf eine "Lösung" stoßen, die Ihre Probleme löst Bilder erscheinen, sind aber nicht unbedingt korrekt (und werden Sie daher später beißen).
Aber abgesehen vom menschlichen Aspekt ist es keine schlechte Idee, eines zu verwenden , solange die 3D-Engine über die Tools verfügt, die Sie zum Erstellen Ihres 2D-Spiels benötigen . Sie sind heutzutage weitaus häufiger anzutreffen und werden tendenziell aggressiver entwickelt. Das ist also ein Plus. Darüber hinaus gibt es wahrscheinlich noch eine Handvoll 2D-fokussierter Engines oder Frameworks, die D3D oder OpenGL nicht im Hintergrund verwenden und daher möglicherweise nicht die Vorteile moderner GPUs nutzen.
In dieser verwandten Frage sehen Sie eine Menge Diskussionen darüber, was 3D schwieriger machen könnte (Sie müssen sich jedoch nur mit einer Teilmenge davon befassen, wenn Sie die 3D-Engine nur für ein 2D-Spiel verwenden).
quelle
Pro: Die Hersteller von Grafikkarten verwenden mehr Aufwand, um ihre 3D-Treiber zu optimieren. Sie sind nicht in 2D für Spezialeffekte oder Fluorishs gefangen. Sie müssen nicht über sich selbst simulieren. Das Wechseln der Ansichtspunkte erfordert keine vollständige Überarbeitung Ihrer gesamten Kunst. Ich werde argumentieren, dass 3D visuell besser skaliert.
Con: Asset-Pipelines müssen wahrscheinlich an Ihre Engine angepasst werden. Einige Operationen, die in 2D einfach sind, sind in 3D komplexer. Bibliotheken verfügen wahrscheinlich über zusätzliche Funktionen, die Sie nie verwenden werden.
quelle
Lerne einfach die Einheit, wenn du kannst. Unity funktioniert sehr gut mit Blender 3D, das Open Source und kostenlos ist. Es gibt eine Menge guter Online-Tutorials zum Modellieren und Animieren von 2D in Blender mit Flugzeugen. Außerdem gibt es eine TONNE Modelle, die Sie normalerweise kostenlos oder günstig online herunterladen können und die Sie als Ausgangspunkte verwenden können.
Dies setzt natürlich voraus, dass Sie nicht in der Lage sind, Ihre eigene Game Engine zu erstellen. Mein aktuelles Lieblings-2D-Spiel ist Super Meat Boy, das in Flash entwickelt wurde und das Programmieren wurde kundenspezifisch durchgeführt. Dies ist der beste Weg, um sich einem solchen Projekt zu nähern, denn es gibt Ihnen viel Freiheit. Das heißt, es braucht viel Arbeit, um diesen Weg zu gehen.
quelle