Denken Sie, dass es möglich ist, von C ++ Straight zu 3D zu wechseln (2D überspringen)

8

Denken Sie, dass es möglich ist, direkt von der erfahrenen C ++ - Programmierung (ca. 5 Jahre) direkt zum Erlernen von DirectX 3d überzugehen?

Ich meine ... ich würde mit den Grundlagen beginnen, ich bin mehr daran interessiert, Demos einzurichten (wie eine gute Wasserdemo und so), als tatsächlich ein vollwertiges Spiel zu machen.

Halten Sie das für möglich?


quelle
3
Möglich ja. Einfach? Auf keinen Fall.
Die kommunistische Ente

Antworten:

16

Absolut möglich. Ein guter Ausgangspunkt Einführung in die 3D-Spielprogrammierung mit DirectX 10 von Frank D. Luna . Es ist sehr einfach zu lesen, ermöglicht die schnelle Implementierung vieler gängiger Funktionen und dient als hervorragende Basis, um mehr über DirectX und die Spielprogrammierung zu erfahren.

jeffythedragonslayer
quelle
1
Das ist genau das Buch, mit dem ich anfangen wollte lol.
2
Noch eine +1 für dieses Buch, sehr gut gelesen. Von dort würde ich Bücher von Wolfgang F. Engel empfehlen. Besonders seine Shader X-Bücher waren im Laufe der Jahre sehr nützlich.
James
Dies ist ein ausgezeichnetes Buch, das ich auch empfohlen habe.
Reverbb
2

Natürlich, obwohl ich empfehle, mit einer sehr, sehr einfachen 2D-App zu beginnen, da die anfängliche Lernkurve (nur das Ausführen einer DX-App kann mühsam sein) ziemlich steil sein kann und es hilfreich ist zu wissen, ob die Probleme, die Sie sehen, sind 3D-spezifisch oder wenn Sie nur etwas sehr Grundlegendes vermissen.

Pong implementieren - Sie lernen Grundlagen wie das Einrichten einer DX-App, die Eingabeverarbeitung, die grundlegende Kollisionserkennung und vor allem das Zeichnen von Inhalten auf dem Bildschirm.

Wenn es Ihre erste App ist, sollten Sie weniger als eine Woche brauchen, um diese zum Laufen zu bringen. An diesem Punkt sollten Sie die Grundlagen des DX-Frameworks verstehen und bereit sein, ein weiteres Projekt zu starten, in dem Sie sich auf die 3D-Aspekte konzentrieren können - Transformationsmatrizen, Objekt- / Zustandsverwaltung, Keulen, Beleuchtung usw. Implementieren Sie möglicherweise 3D-Pong oder Racquetball.

3Dave
quelle
0

Natürlich ist es möglich. Es ist auch möglich, C ++ als Ihre erste Programmiersprache zu lernen. Aber es ist wahrscheinlich nicht der schnellste Weg dorthin.

Um von "Programmieren" zu "Spielprogrammieren" zu gelangen, müssen Sie unabhängig von der Grafik einige Dinge lernen: Spieleschleifen, Echtzeit-Eingaben usw. Diese sind VIEL einfacher zu erlernen, wenn Sie nicht gleichzeitig eine neue Grafikbibliothek erlernen müssen. Lernen Sie eine Sache nach der anderen und Sie werden es wahrscheinlich viel einfacher haben. (Und wenn Sie ein erfahrener Programmierer sind, sollte das Erlernen der 2D-Inhalte sowieso nicht so lange dauern.)

Ian Schreiber
quelle
0

Was hat 2D mit 3D gemeinsam? Nicht viel. 2D ist entweder eine flache Welt oder eine gefälschte 3D-Welt, die zwar ein 3D-ähnliches Erscheinungsbild aufweist, jedoch einen ganz anderen Code als echtes 3D aufweist.

Wie schwierig ist es, den Code selbst für die Gemeinsamkeiten wie die Kollisionserkennung in 3D zu erweitern? Ziemlich einfach.

Einfach ausgedrückt, das Erlernen von 2D hilft Ihnen nicht so sehr, wie Sie vielleicht auf Ihrem Weg zum Erlernen des 3D-Spiel- oder Engine-Designs denken. Sie haben wenig gemeinsam, und für das, was sie gemeinsam haben, ist 2D kein einfacher "Sprungbrett", um Sie auf 3D vorzubereiten.

Wie David Lively vorgeschlagen hat, möchten Sie vielleicht mit einem sehr einfachen 2D-Spiel wie Pong beginnen, aber denken Sie nicht, dass Sie Final Fantasy, Super Mario Brothers, Zelda usw. neu erstellen müssen, bevor Sie fortfahren können 3D angehen. Selbst Einführungsarbeiten wie diese dienen nicht dazu, viel 2D-Erfahrung zu sammeln, sondern alles so einfach wie möglich zu gestalten, damit Sie grundlegende Konzepte und Methoden sehen können (Kollisionserkennung, Initialisierung der Grafikbibliothek usw. .,), die so schnell wie möglich mit 3D wie mit 2D zu tun haben, damit Sie mit dem nächsten Schritt fortfahren können. Der nächste Schritt könnte darin bestehen, ein Menü "Neu / Speichern / Laden / Beenden" zu erstellen, das Sie noch einmal so einfach wie möglich gestalten und dann einfach weitere Elemente hinzufügen (+1 Dimension für Bewegung, Modelle,

Sagen wir es einfach so. Nachdem wir in einem College-Kurs etwas Theorie über Spieledesign gelernt hatten, wurden wir mit der Erstellung einer 3D-Engine beauftragt. Ich habe es in ungefähr einer Woche geschafft. Es zeichnete 3D-Objekte, warf Schatten, zeichnete Texturen, führte Mipmapping durch, erkannte Kollisionen, ließ Sie springen und öffnete ein Menü, wenn Sie mit der rechten Maustaste klickten oder {ENTER} oder {ESC} drückten.

Der zeitaufwändige Teil macht es schick ... ob es sich um die Feinabstimmung der Engine oder um das Erstellen von Modellen / Texturen / Animationen, Spielinhalten usw. handelt.

Michael
quelle
0

Ja. Da Sie C ++ bereits kennen, müssen Sie nur noch eine API und eine Theorie lernen. Die Haupthürde beim Erlernen von 3D ist wahrscheinlich die Mathematik. Während 2D-Mathematik auf einem Mindestniveau ziemlich einfach zu verstehen ist, erfordert 3D ein komplexeres Verständnis. Es gibt auch eine Menge Dinge wie Shader, die für 3D definitiv relevanter sind als für 2D. Wenn Sie jedoch vorhaben, ein Spiel zu erstellen, würde ich eine schnelle 2D-Route wählen, um das Gefühl zu bekommen, ein Spiel von Anfang bis Ende zu erstellen (und möglicherweise ein funktionierendes GUI-System zu erhalten, über das Sie portieren können!), Bevor ich in 3D gehe.

DMan
quelle
IME, die größte Hürde beim Erlernen einer 3D-API besteht darin, an den Punkt zu gelangen, an dem Sie tatsächlich etwas zu sehen haben. Ich habe ein bisschen Zeit damit verbracht herauszufinden, warum ich im frühen Opengl nichts sehen konnte. Es ist schwer, einen leeren Bildschirm zu debuggen.
StarWeaver