Über Direct X 12 auf der Xbox One
Direct X 12 kommt bald für Windows und Xbox One raus, und alle fragen sich, ob die Xbox dadurch schneller wird. Ob sie doch noch etwas an Leistung reinholen kann, gegen die stärkere PS4 doch noch etwas an Grund gewinnen kann. Die Kurzantwort: Vielleicht.
Die Frage ist zunächst: Was ist Direct X überhaupt? Direct X bietet eine standardistierte Schnittstelle zur Grafikkarte und bietet eine Möglichkeit Punktdaten (Geometrie) auf die Grafikkarte zu bekommen und von dieser darstellen zu lassen. Außerdem bietete Direct X Möglichkeiten Beleuchtungen zu setzen, verschiedene Shader (die vom Programmierer selbst geschrieben werden müssen) verleihen dann bspw. dem Wasser eine nette Reflexion oder die Schattenberechnung wirkt durch das Raytracing- bzw. Radiosity-Verfahren realistischer.
Was passiert denn nun bei einem neuen Standard? Erstmal nichts. Es kommen ein paar neue Funktionsrufe hinzu, die es dem Programmierer einfacher machen bestimmte Effekte zu erzielen. Bspw. ist es vorstellbar, dass bestimmte Wassereffekte mit einem bestimmten Direct X - Standard mitgeliefert werden, sodass ein Programmierer den Effekt nicht selbst schreiben muss. Und da liegt auch schon der Knackpunkt. Nehmen wir an in einem Spiel hätte ein Programmierer einen bestimmten Effekt entwickelt, der nun durch Direct X 12 mitgeliefert wird. Wenn nun dieser Programmierer den Effekt schlechter programmiert hat, als er durch DX 12 geliefert wird, dann wäre da durchaus ein geringfügiger Geschwindigkeitsgewinn drin.
Allerdings allein dadurch, dass nun DX 12 auf der Xbox One aktiv ist, und nicht mehr "nur" DX 11 wird sich kein merklicher Gewinn breitmachen. Machen wir uns doch bitte klar, dass die Hardware die gleiche bleibt. Wenn ein Programmierer die Grafikkarte ordentlich mit DX 11 ausnutzt, wird im DX 12 herzlich wenig bringen. Tut er das nicht, liegen Performance-Probleme nicht am Direct X, sondern eher an der Inkompetenz der Programmierer im eigentlich Code für die CPU.
Bei Konsolenspielen gilt es einen Spagat zu meistern. Einerseits will man, dass die Spiele möglichst toll aussehen, andererseits will man, dass die Spiele möglichst ruckelfrei laufen. Beides geht nicht zusammen (oder wenn dann nur unter erheblichen Mehraufwand für die Entwickler). Machen wir uns doch mal bitte bewusst, wie die meisten PC-Spiele geschrieben werden: mithilfe von Visual C++ und damit mithilfe von .Net. .Net (gesprochen Dot-Net) bildet eine virtuelle Maschine, ähnlich wie Java und bringt ähnliche Vorteile und Nachteile mit sich. Einerseits ist das Programm deutlich langsamer gegenüber einer regulären C++-Variante und andererseits frisst sich diese virtuelle Maschine erstmal mit Hauptspeicher voll. Das Problem, warum also die meisten Spiele schlecht laufen, liegt zunächst nicht an der Hardware oder daran, dass ein altes Direct X verwendet wird. Sondern an der Technik und an den Laufzeitbibliotheken, die verwendet werden um die Spieleentwicklung einfacher zu machen. Wenn sich die Entwickler wirklich die Mühe machen würden ein Spiel bspw. in echten C-Code zu schreiben, wären deutliche Geschwindigkeitsgewinne möglich, damit würde man aber auch erheblichen Mehraufwand haben.
Wir haben also auf der einen Seite ein Spiel mit .Net, was den CPU-Teil des Spiels erheblich verlangsamt, und wir haben auf der anderen Seite immer schönere Grafiken. Und wir wundern uns darüber, warum die Spiele ruckeln? Liebe Konsumenten! Werdet euch bitte klar, was ihr wollt. Wollt ihr die besten Grafiken - dann lebt mit ruckeligen Gameplay und Auflösungen von 720p auch auf den neuen Konsolen - das ist nicht schlimm! Wollt ihr ein ruckelfreies Spielerlebnis - dann gewöhnt euch an Grafiken, die euch nicht komplett aus den Socken hauen und gewöhnt euch an Auflösungen von 720p.
Der Strohhalm Direct X 12 ist doch nur eine Entschuldigung dafür, dass man selbst die schwächere Plattform gewählt hat - was ja auch okay ist - und nun will man sich einreden, dass alles doch noch besser werden kann. Wird es nicht. Durch Direct X 12 erhalten die Spieleentwickler einfacheren Zugriff auf Mechaniken, die ohnehin vorher schon mit der Xbox One Hardware möglich waren, aber einen echten realistischen Geschwindigkeitsboost - vergesst es!