Hallo Ashura/Mathias
Es gibt 2 große APIs (Application Programming Interface) für 3D-Spiele. DirectX und OpenGL, DirectX funktioniert nur auf Windows.
Wobei DirectX noch „ein bisschen mehr“ als eine 3D–API ist. Du müsstest Direct3D mit OpenGL vergleichen, da DirectX eine umfangreiche Multimedia–Suite mit diversen Schnittstellen und Aufgabenbereichen ist.
Da hast du natürlich recht, ich hab aber ja auch ein bisschen später in dem Post noch gesagt, dass DirectX noch einiges mehr beinhaltet als nur 3D-Grafik.
Wer ein Spiel in DirectX entwickelt kann es also nur an Windows-Benutzer verkaufen.
Projekte wie Cedega, WineX und WINE selbst unternehmen hiergegen etwas und kommen augenscheinlich auch gut voran. Zumindest sind viele gute Spiele hiermit auch unter nicht–Windosen lauffähig.
Da hast du natürlich auch Recht, aber meinst du die Softwarefirma würde ein DirectX/WinAPI/MFC-Programm auch an Benutzer anderer Systeme verkaufen mit dem Hinweis "Benutzen sie bitte WINE für unser Programm!"? Imho kann man für ein Programm für das man erst noch ein anderes Programm braucht nicht wirklich Geld verlangen. Da hätte man sich ja einen schönen Brocken Arbeit in Bezug auf die Cross-Plattform-Entwicklung gespart und der Benutzer hat dann das Problem, wenn mit WINE irgendeine DirectX-Sonderfunktion nicht funktioniert.
Für Benutzer anderer Plattformen müsste er es unter Verwendung von OpenGL komplett neu entwickeln.
Da stellt sich natürlich die Frage: Warum nicht von Anfang an nachgedacht und gleich mit Hilfe des plattformunabhängigen OpenGL entwickelt? Eine mögliche Antwort ist — soweit ich dies verstanden habe — dass man in OpenGL vieles noch selbst implementieren muss/kann/darf, wohingegen Direct3D vieles in vorgefertigter Form bereitstellt. Dass letzteres für Entwickler attraktiver erscheint und da auch gerne die Plattformunabhängigkeit zurückgestellt wird, kann man in gewissem Maße nachvollziehen. Nichtsdestotrotz gibt es gute OpenGL–basierte Rendering–Engines; man ist nicht zwangsläufig auf Direct3D angewiesen.
Meines Wissens haben Direct3D und OpenGL einen ähnlichen Funktionsumfang. Der Unterschied ist aber nunmal, dass DirectX all die anderen wichtigen Sachen wie Sound, Eventhandling, etc. gleich mit dabei hat, während man bei OpenGl da erst einmal andere Libraries wie SDL, GLUT oder OpenAL benötigt.
In Anbetracht des Marktanteils von Windows, ist es aber auch verständlich, dass die Plattformunabhängigkeit noch einen recht geringen Stellenwert bei der Wahl der 3D-API hat.
Einen schönen Samstag noch.
Gruß, Mathias
Danke, dir auch,
OhneName