Entscheidungshilfe: OpenGL oder DirectX
-
- Establishment
- Beiträge: 140
- Registriert: 03.10.2010, 20:14
Entscheidungshilfe: OpenGL oder DirectX
Hi,
ich hab mich in den letzten Wochen sowohl mit den DirectX11 und OpenGL4 Grundlagen beschäftigt.
Leider kann ich mich immernoch nicht entscheiden, mit welcher API ich mich weiter beschäftigen soll.
Ich persöhnlich fand DirectX11 leichter und verständlicher und besser dokumentiert.
Wie groß ist der Anteil an Linux/Mac Spielern im Moment, und wohin geht die Entwicklung? Ich möchte mit meinen Spielen ein möglichst großes Publikum erreichen.
Wie baue ich mein Projekt am besten auf, damit ich später nen Renderer einer anderen API nutzen kann?
Gruß
ich hab mich in den letzten Wochen sowohl mit den DirectX11 und OpenGL4 Grundlagen beschäftigt.
Leider kann ich mich immernoch nicht entscheiden, mit welcher API ich mich weiter beschäftigen soll.
Ich persöhnlich fand DirectX11 leichter und verständlicher und besser dokumentiert.
Wie groß ist der Anteil an Linux/Mac Spielern im Moment, und wohin geht die Entwicklung? Ich möchte mit meinen Spielen ein möglichst großes Publikum erreichen.
Wie baue ich mein Projekt am besten auf, damit ich später nen Renderer einer anderen API nutzen kann?
Gruß
- xq
- Establishment
- Beiträge: 1590
- Registriert: 07.10.2012, 14:56
- Alter Benutzername: MasterQ32
- Echter Name: Felix Queißner
- Wohnort: Stuttgart & Region
- Kontaktdaten:
Re: Entscheidungshilfe: OpenGL oder DirectX
Hmm, das ist immer die Frage. Ich würde mich mittlerweile komplett für OpenGL 4 entscheiden, weil es zwar ein bisschen komplizierter zu programmieren ist, dafür aber auch wesentlich flexibler und mächtiger. Die Dokumentation von DirectX ist aber wesentlich besser imho.
Dagegen hast du unter Linux eben auch die gcc-Toolchain. Die mag man oder mag sie nicht.
Was du bei OpenGL halt immer noch brauchst ist irgendeine Wrapper-Library, mit der du dein Fenster erstellst. Da taugt aber SDL2 oder ähnliches.
Am besten strukturierst du dein Projekt so, dass das Rendering nicht direkt von den Szenen-Objekten übernommen wird sondern von einem dafür programmierten, abstrakten Renderer.
Wenn du die Abstraktion weit genug treibst, kannst du später sogar DirectX 11 und OpenGL 4 austauschen, auch wenn das mit den ganzen Shadern nicht unbedingt so toll wird.
Grüße
Felix
Dagegen hast du unter Linux eben auch die gcc-Toolchain. Die mag man oder mag sie nicht.
Was du bei OpenGL halt immer noch brauchst ist irgendeine Wrapper-Library, mit der du dein Fenster erstellst. Da taugt aber SDL2 oder ähnliches.
Am besten strukturierst du dein Projekt so, dass das Rendering nicht direkt von den Szenen-Objekten übernommen wird sondern von einem dafür programmierten, abstrakten Renderer.
Wenn du die Abstraktion weit genug treibst, kannst du später sogar DirectX 11 und OpenGL 4 austauschen, auch wenn das mit den ganzen Shadern nicht unbedingt so toll wird.
Grüße
Felix
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…
Programmiert viel in
Zig
und nervt Leute damit.
Programmiert viel in
-
- Establishment
- Beiträge: 426
- Registriert: 23.01.2013, 15:55
Re: Entscheidungshilfe: OpenGL oder DirectX
Fenstererstellen mache ich immer mit GLFW3. Dafür SDL(2) als Abhänigkeit zu schaffen und dann nur ein Fenster zu erstellen ist meiner Ansicht nach etwas übertrieben.
Ich verwende ausschließlich nur noch OpenGL, weil ich Platfromunabhänig bleiben möchte und mit Dx hätte ich nur die doppelte Arbeit. Dann kommt noch dazu, dass Microsoft ihre Dx Versionen nur noch für ihr neustes Betriebssystem rausbringt. Das heißt dann in der Regel so viel wie, entweder uralt Version nutzen (Momentan vlt. sogar noch Dx9 für WinXP, wenn das auch langsam aus der Mode kommt) oder Renderer für mehrere Versionen.
Bei OpenGL gibt es keine Bindung an eine Betriebssystemversion und außerdem gibt es Extensions für einige zusätzliche Features.
Leider sind die Treiber für OpenGL von einigen Herstellern nicht so gut wie für Dx.
Die offizielle Dokumentation fand ich bisher immer ganz in Ordnung.
Ich verwende ausschließlich nur noch OpenGL, weil ich Platfromunabhänig bleiben möchte und mit Dx hätte ich nur die doppelte Arbeit. Dann kommt noch dazu, dass Microsoft ihre Dx Versionen nur noch für ihr neustes Betriebssystem rausbringt. Das heißt dann in der Regel so viel wie, entweder uralt Version nutzen (Momentan vlt. sogar noch Dx9 für WinXP, wenn das auch langsam aus der Mode kommt) oder Renderer für mehrere Versionen.
Bei OpenGL gibt es keine Bindung an eine Betriebssystemversion und außerdem gibt es Extensions für einige zusätzliche Features.
Leider sind die Treiber für OpenGL von einigen Herstellern nicht so gut wie für Dx.
Die offizielle Dokumentation fand ich bisher immer ganz in Ordnung.
- xq
- Establishment
- Beiträge: 1590
- Registriert: 07.10.2012, 14:56
- Alter Benutzername: MasterQ32
- Echter Name: Felix Queißner
- Wohnort: Stuttgart & Region
- Kontaktdaten:
Re: Entscheidungshilfe: OpenGL oder DirectX
Man kann ja SDL auch für Input verwenden, hat ja Support für alles, was man für Spiele so braucht. Die einzige Sache, die man eben dann nicht mehr nutzt, ist das Rendering von SDL (wobei man das ja sogar für 2D gut verwenden kann)
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…
Programmiert viel in
Zig
und nervt Leute damit.
Programmiert viel in
-
- Establishment
- Beiträge: 426
- Registriert: 23.01.2013, 15:55
Re: Entscheidungshilfe: OpenGL oder DirectX
GLFW hat auch Input.
Aber kein Rendering, kein Netzwerk und nicht die ganzen anderen Dinge von SDL(2).
Aber kein Rendering, kein Netzwerk und nicht die ganzen anderen Dinge von SDL(2).
-
- Establishment
- Beiträge: 140
- Registriert: 03.10.2010, 20:14
Re: Entscheidungshilfe: OpenGL oder DirectX
Hallo,
ich möchte den Thread nochmal aufgreifen.
Ich habe in letzter Zeit vermehrt mit OpenGL gearbeitet.
Viele Tutorials zu weiterführenden Themen (zB Terrain-Generierung) sind aber halt für DirectX.
Da ich immernoch recht am Anfang bin (bisher hauptsächlich 2D) stellt sich immernoch die Frage, ob es für mich als (immernoch) Anfänger nicht doch besser wäre, auf DirectX umzusteigen.
Mein Problem dabei ist, dass ich nicht weis wie die Zukunft aussieht. Kann man davon ausgehen, dass in 10 Jahren immernoch hauptsächlich auf Windows gespielt wird, oder kann man einen Trend zu alternativen Plattformen (zB auch Mobile) absehen?
ich möchte den Thread nochmal aufgreifen.
Ich habe in letzter Zeit vermehrt mit OpenGL gearbeitet.
Viele Tutorials zu weiterführenden Themen (zB Terrain-Generierung) sind aber halt für DirectX.
Da ich immernoch recht am Anfang bin (bisher hauptsächlich 2D) stellt sich immernoch die Frage, ob es für mich als (immernoch) Anfänger nicht doch besser wäre, auf DirectX umzusteigen.
Mein Problem dabei ist, dass ich nicht weis wie die Zukunft aussieht. Kann man davon ausgehen, dass in 10 Jahren immernoch hauptsächlich auf Windows gespielt wird, oder kann man einen Trend zu alternativen Plattformen (zB auch Mobile) absehen?
- Schrompf
- Moderator
- Beiträge: 5159
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Entscheidungshilfe: OpenGL oder DirectX
Es gibt da diverse Trends. Mobile ist da und wird auch nicht wieder gehen, ist für die allermeisten Leute aber ein Glücksspiel. DirectX und OpenGL werden beide langsam unwichtiger, weil immer mehr Leute auf diesem Niveau gar nicht mehr anfangen, sondern sich eine fertige Engine mit Editor greifen. Wenn Du Programmierer sein willst und kein Spieleentwickler, sind DirectX und OpenGL immernoch wertvolle Kenntnisse. Aber dann ist Dir das eh wurscht - die beiden sind sich ähnlicher, als Du vielleicht denkst. Fang mit einem an, bleib dabei, und irgendwann willst/musst Du eh wechseln, dann kannst Du beide.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
-
- Establishment
- Beiträge: 426
- Registriert: 23.01.2013, 15:55
Re: Entscheidungshilfe: OpenGL oder DirectX
Also letztens hat jemand hier gefragt, wo er gute DirectX-Tutorials findet, weil die Rastertek dicht gemacht hat. Dabei ist mir aufgefallen das ich sehr wenige DirectX Tutorials gefunden habe, wovon auch eine Seite Bezahlung verlangt hat. Vielleicht liegt es daran, weil ich hauptsächlich mit OpenGL zu tun habe und da schon einige Seiten über die Zeit gefunden habe, aber mein Eindruck war, dass es deutlich weniger DirectX als OpenGL Tutorials gibt. OpenGL Tutorials gibt es doch in rauen massen. Viele leider nicht mehr aktuell aber trotzdem noch genug die auch modern sind. opengl-tutorial.org, OpenGL Wiki, lighthouse3d - glsl-core-tutorial, ogldev, arcsynthesis gltut, ... und es gibt ja noch viele weitere (ver)alte(te) Tutorialserien, DelphiGL, NeHe und sehr viele mehr!
Dann gibt es noch erweiterte Techniken die eher beschrieben werden, GPU Gems oder häufig auch in Form von Papern. Dort habe ich bisher nicht wirklich den Eindruck das entweder OpenGL oder DirectX total die Oberhand hat und außerdem ist es dabei auch nahe irrelevant, schließlich geht es um die Technik dahinter und nicht wie der Befehle in der einen oder anderen API heißen. Terrain-Rendering zähle ich auch in diese Gruppe. Wenn du damit anfangen willst, solltest du die API deiner Wahl so gut beherrschen, dass es keinen großen Unterschied mehr macht mit welcher API der Autor gerendert hat. Terrain-Generierung ist weiterhin sogar etwas das mit OpenGL/DirectX wenn man nicht ausgerechnet ComputeShader verwendet(normalerweise eher nicht und auch kein problemfreier Ansatz) dann hat das mit der Grafik-API absolut gar nichts zu tun. Schließlich wird das Terrain auch für die Spiellogik gebraucht.
Dann gibt es noch erweiterte Techniken die eher beschrieben werden, GPU Gems oder häufig auch in Form von Papern. Dort habe ich bisher nicht wirklich den Eindruck das entweder OpenGL oder DirectX total die Oberhand hat und außerdem ist es dabei auch nahe irrelevant, schließlich geht es um die Technik dahinter und nicht wie der Befehle in der einen oder anderen API heißen. Terrain-Rendering zähle ich auch in diese Gruppe. Wenn du damit anfangen willst, solltest du die API deiner Wahl so gut beherrschen, dass es keinen großen Unterschied mehr macht mit welcher API der Autor gerendert hat. Terrain-Generierung ist weiterhin sogar etwas das mit OpenGL/DirectX wenn man nicht ausgerechnet ComputeShader verwendet(normalerweise eher nicht und auch kein problemfreier Ansatz) dann hat das mit der Grafik-API absolut gar nichts zu tun. Schließlich wird das Terrain auch für die Spiellogik gebraucht.
-
- Establishment
- Beiträge: 505
- Registriert: 01.03.2009, 19:09
Re: Entscheidungshilfe: OpenGL oder DirectX
Also die besten DirectX Tutorials gabs es bisher immer im DirectX-SDK
Ansonsten stimmte ich Schrompf zu, der Trend für Spieleentwicklung geht mehr in richtung fertiger Toolchain (UDK, Unity usw.)
Und für den Entwickler der selber die Technik lernen will ist es ziemlich egal, nimm das was deine Entwicklungsplattform bzw aktuelle Zielplatform am besten unterstützt und los gehts.
Ansonsten stimmte ich Schrompf zu, der Trend für Spieleentwicklung geht mehr in richtung fertiger Toolchain (UDK, Unity usw.)
Und für den Entwickler der selber die Technik lernen will ist es ziemlich egal, nimm das was deine Entwicklungsplattform bzw aktuelle Zielplatform am besten unterstützt und los gehts.
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben