Soll ich die 2D-Spieleentwicklung vor 3d lernen? [geschlossen]


14

Ich bin ein iPhone App Entwickler. Ich möchte in das iOS-Gaming einsteigen. Die Frage ist: Soll ich mit dem Erlernen von 2D wie Cocos 2D oder Corona SDK beginnen, bevor ich 3D-Spiele wie Unity lerne? Ich interessiere mich mehr für 3D-Spiele, aber denken Sie, dass 2D-Spiele eine Grundvoraussetzung für das Erlernen der 3D-Entwicklung sind?



Tut mir leid, ich denke, die gegebene Frage ist wahrscheinlich kein Betrug von der, die ich verlinkt habe. Die Antworten decken zwar vieles auf dem gleichen Gebiet ab.
Bummzack

Antworten:


11

Es hängt davon ab, wie gut Sie mit Mathematik und 3D-Spielprogrammierkonzepten umgehen können .

2D erhalten Sie, indem Sie nur Konzepte von x-, y-Positionen und -geschwindigkeiten (und deren Addition und Subtraktion - im Grunde Vektoren) und 2D-Boxkollisionen verwenden.

In 3D müssen Sie sich um viel mehr Mathe kümmern: Projektionsmatrizen, Ansichtsmatrizen, Frusta ..

Darüber hinaus müssen Sie über die Zeichnungs-API, die Sie verwenden, mit einem viel umfangreicheren Funktionsumfang interagieren (nur aufgrund der Tatsache, dass Sie 3D ausführen, müssen Sie viel mehr Funktionen erlernen, die sich mit 3D befassen ).

Microsoft XNA bietet hervorragende Unterstützung für den Start in 2D und vereinfacht das Rendern mit SpriteBatch . Sobald Sie sich in 3D wagen, müssen Sie automatisch VertexBuffer oder Model lernen , und dann kommen ModelBones und alles andere, was dazu gehört.

Am besten starten Sie 2D, nur weil die Konzepte, die Sie verstehen müssen, geringer sind (2D-Sprites? Ein Cakewalk!). Nachdem Sie einige Erfahrungen gesammelt haben, sollten Sie in 3D gut zurechtkommen.


9

Der einzige grundlegende Unterschied zwischen 2D- und 3D-Spieleentwicklung besteht darin, ob Sie die 3. Achse verwenden oder nicht. Wenn Sie eine Engine wie Unity verwenden, können Sie genauso einfach 2D-Spiele wie 3D-Spiele erstellen, indem Sie einfach eine orthografische Kamera-Projektion und Sprites anstelle von Modellen verwenden.

Davon abgesehen ist es viel schwieriger, wenn Sie keinen Motor verwenden, der einen Großteil des 3D-Schwergut für Sie erledigt. Sehen Sie sich die Antwort auf diese Frage an: Was ist zu beachten, wenn Sie sich für ein Spiel zwischen 2D und 3D entscheiden?

Was Sie tun sollten, ist zu entscheiden, welches Spiel Sie machen möchten, und die Kunst und das Design werden Ihnen sagen, ob es 2D oder 3D sein muss.


4
Ich denke, du bist zu stark vereinfacht. 2D ist hella einfacher, denn wenn man diese 3. Achse wegwirft, gibt es viel weniger zu bedenken. Die Kollision wird einfacher, das Besprechen von Problemen auf Papier ist einfacher, und das Programmieren eines 2D-Spiels ist einfacher als das Programmieren eines 3D-Spiels.
Bobobobo

3
Es ist eine Vereinfachung, aber hauptsächlich ging es mir darum, dass 1) 2D oder 3D für eine große Teilmenge der Dinge, die Sie in einem Spiel tun (UI-Fluss, Kernmechanik, Vernetzung usw.), keine Rolle spielen und 2) Wenn Sie eine robuste Middleware (insbesondere Unity) verwenden, wird der Großteil der Mathematik für Sie erledigt, sodass Sie sich hoffentlich auf die Spielelogik selbst konzentrieren können.
Tetrad

Letzter Satz nagelt es.
Tim Holt

5

Ich stimme Tetrad zu, dass Sie über die Kunst und das Design nachdenken sollten und dass dies Sie führen wird, wenn es 2D oder 3D sein muss. Ich werde auch sagen, dass es eine gute Idee sein kann, zuerst ein 2D-Spiel zu erstellen, damit Sie nicht über die schwierigeren Dinge nachdenken müssen, die mit 3D-Spielen einhergehen. Zu beachten ist auch, dass das Gehirn bei 2D-Spielen weniger Informationen verarbeitet, was Sie für eine ungezwungenere Erfahrung benötigen.

Wenn Sie sich die meisten erfolgreichen Indie-Spiele der letzten 3 Jahre ansehen, waren viele davon 2D-Spiele.

http://www.braid-game.com/
http://limbogame.org/
http://supermeatboy.com/
http://www.andyetitmoves.net/

So kann ein Unternehmen erfolgreich nur 2D-Spiele herstellen. Der Erfolg von Spielen beruht auf Spielmechanik, Story, Ästhetik und Technologie. Sonst bekannt als die Tetrade. Ich komme vom Thema ab, also schweife ich ab.


+1 für diesen letzten Absatz, weil er die Wichtigkeit der Qualität des Inhalts (wie der Story) als Erfolgsmerkmal hervorhebt - einige Spieleentwickler scheinen diese anderen Faktoren zu verpassen und konzentrieren sich nur auf die 3D-Aspekte, aber dort Es gibt viele Fans, die die Tiefe schätzen, die eine gute Geschichte und ein gut durchdachter Hintergrund auf das Spielfeld bringen können (unabhängig von der Anzahl der Dimensionen).
Randolf Richardson

Obwohl ich den meisten Ihrer Aussagen zustimme, gab es einige exzellente 2D-Spiele, die niemals als Gelegenheitsspiele angesehen werden konnten, während ein durchschnittlicher 3D-Schütze im Vergleich viel weniger involviert ist.
Edwin Buck

3

Beachten Sie, dass es für Sie einfacher ist, 2D-Kunstobjekte zum Üben zu bringen. Obwohl ich nicht der Meinung bin, dass das Erlernen der 2D-Spieleentwicklung eine Voraussetzung für das Erlernen der 3D-Spieleentwicklung ist (so oder so ist der Spielcode über dem Grafikcode ziemlich gleich), würde ich den meisten Anfängern empfehlen, mit 2D-Spielen zu beginnen, sofern Sie dies nicht bereits tun Sie verfügen über eine solide Ressource für 3D-Grafiken (z. B. lernen Sie zusammen mit einem Freund, der ein 3D-Künstler ist).

Was den Code betrifft, hängt der Schwierigkeitsgrad davon ab, was Sie lernen möchten und welche Engine Sie verwenden werden (und insbesondere, wenn Sie Ihre eigene Engine schreiben werden). 3D-Grafikcode auf niedriger Ebene ist viel komplizierter als 2D-Grafikcode auf niedriger Ebene. Wenn Sie jedoch eine Engine wie Unity verwenden, schreiben Sie keinen Grafikcode auf niedriger Ebene. Der Code für ein in dieser Engine eingebautes 3D-Spiel ist nicht komplizierter als der Code für ein 2D-Spiel. In der Tat kann es erheblich weniger kompliziert sein, je nachdem, von welchem ​​Motor Sie sprechen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.