OpenGL oder DirectX?
Ich weiß, dies ist wahrscheinlich eine sehr subjektive Frage, aber ich möchte einfach anfangen mit dem, was die einfachste und am schnellsten zu lernen, so dass ich loslegen kann mit einem kleinen Projekt von mir so schnell wie möglich, es ist ein kleines 2D-Spiel zu starten, mit der zumindest.. Welche würden Sie mir empfehlen zu gehen? Und ich bin mit C++
InformationsquelleAutor der Frage | 2009-08-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste Frage: Bist du auf Windows? Wenn nicht, die OpenGL verwenden.
Wenn Sie auf Windows, das wird nach unten kommen, um eine Frage des Geschmacks. Die APIs sind unterschiedlich, aber die Konzepte, die benötigt werden, sind sehr ähnlich für beide OpenGL-und DirectX. Die meisten Dinge, die unterstützt werden beide, obwohl Sie funktionieren ein bisschen anders.
Microsoft bietet schon ein paar Proben und einen anständigen Rahmen, den Sie verwenden können, für DirectX (9 oder 10), die können es einfacher machen, loszulegen.
That being said, wenn Sie sich gezielt Windows Vista/Win7 nur den Umstieg auf DirectX 10 kann das Leben leichter machen. Viele der ärgernisse in DX9 und früher wurden entfernt in DX10, und die API ist ein bisschen mehr rein.
Dass gesagt wird, wenn dies für ein Spiel, würde ich empfehlen, sich auf die Verwendung einer middleware-engine wie Oger statt zu schreiben direkt in DirectX ODER OpenGL. Dadurch wird Ihr Leben viel einfacher, vor allem beim lernen.
InformationsquelleAutor der Antwort Reed Copsey
Habe ich nicht verwendet DirectX, sondern OpenGL ist relativ einfach, und es gibt einige gute Einsteiger-tutorials auf NeHe. Auch, wenn Sie selbst gehen wollen, cross-Plattform, werden Sie brauchen OpenGL.
Aber DirectX ist nicht nur eine Grafik-Bibliothek, Sie können es auch verwenden, für sound etc. es ist also wahrscheinlich, lohnt ein Blick in.
InformationsquelleAutor der Antwort rpjohnst
Wenn es nur 2D ist, dann vielleicht könnte es sein, lohnt ein Blick in SDLdie bereits cross-Plattform und es scheint ziemlich einfach zu lernen. Es gibt viele tutorials im Netz, aber eine Besondere Seite, die ich mich erinnere, ist Lazy Foo SDL-Tutorials. Sie können auch mischen OpenGL mit SDL, gibt es tutorials für.
Wenn Sie nicht wollen, um mit SDL, und Sie sind auf windows, würde ich dir empfehlen DirectX. Ich erkenne, dass die Wahl zwischen Ihnen letztlich in eine Flamme Krieg so ziemlich überall im Internet, aber mein Verständnis ist, dass DirectX ist ausgerichtet in Richtung Spiele-Entwickler, so finden Sie viele utility-Bibliotheken, Funktionen, und Klassen, die erleichtern könnten verschiedene Aufgaben. Mit OpenGL, würden Sie haben die Möglichkeit zum schreiben von cross-Plattform-code, vorausgesetzt, dass die Helfer-Funktionen wie das laden der Bilder ist auch cross-Plattform (Für die es in der Tat sind cross-Plattform-Bibliotheken).
Also mein Fazit ist: Beide sind in Ordnung, OpenGL gibt Sie cross-Plattform-code (Vorausgesetzt, Sie schreiben es), und DirectX gibt Ihnen mehr Spiel-Entwicklungs-tools und Bibliotheken.
InformationsquelleAutor der Antwort Jorge Israel Peña
Wenn Ihr alles über den Einstieg so schnell wie möglich, ich würde empfehlen OpenGL auf einer NVidia-GPU. Sie werfen fast alles an, und es wird etwas angezeigt. Allerdings, wenn Sie erreichen wollen anständige Leistung mit geringem Programmieraufwand, würde ich empfehlen, Direct3D. Es gibt zu viele Möglichkeiten, Dinge zu tun, in OpenGL und Anfänger werden sicherlich entdecken Sie die langsamen Pfade die erste, da Sie viele alte tutorials (siehe NeHe). Darüber hinaus Debuggen von OpenGL-apps ist schmerzhaft, obwohl tools wie gDEBugger können helfen.
InformationsquelleAutor der Antwort Malte Clasen
Wenn Sie einige COM-Erfahrung und es macht deinen Kopf weh ich empfehle, DirectX, nur weil die SDK hat eine Menge guter Beispiele/tutorials direkt aus der box. Wenn Sie besser lieber mehr C-style Programmieren oder verwirrt sind Sie mit COM-Zeug, dann würde ich sagen, dass OpenGL.
InformationsquelleAutor der Antwort Vorber
Wie bereits von mehreren anderen Leuten, Wenn Sie planen, port dein "Spiel" auf andere Plattformen als windows, Sie fangen besser mit OpenGL.
Wenn es nur ein einfaches 2D-Spiel, und Sie müssen nicht eine 3D-Unterstützung für jetzt, SDL wäre eine bessere Wahl, später kann man Sie kombinieren, "SDL" und "OpenGL" zusammen. ( Sie können sich direkt mit openGL von SDL, hat er sogar einen eigenen header in SDL ).
Gleichzeitig die DirectX Funktionen bietet, die weder OpenGL, noch SDL können geben Sie. OpenGL ist weit hinter DirectX. [ OpenGL 3.0 ist nichts anderes als ein inkrementelles update, die API hat sich nicht viel verändert seit dem 2.x ].
Also, wenn Sie planen, zu schreiben ein Spiel für windows, nur mit "DirectX", wenn nicht "OpenGL" und "Sdl".
Schließlich, wenn Sie sind nicht auf der Suche für Kopfschmerzen verwenden Sie einfach eine GameEngine, z.B. C4 Engine. Glauben Sie mir, wenn Sie gehen für 3D haben Sie keine Wahl, da gibt es so viele Themen, dass eine Menge von Zeit, um zu "Graben" und "Lernen".
InformationsquelleAutor der Antwort Cynics