Neue Featuers
DirectX 12
Dies klingt jetzt erstmal trivial, jedoch ist der Sprung von einer früheren DirectX Version zu DirectX 12 ein großer. Vieles in der Rendering Pipeline muss neu geschrieben werden, alter Code wird rausgeworfen und vieles, vieles wird refactored. Denn im Vergleich zu vorherigen DirectX Updates, setzt DirectX 12, wie auch Vulkan, auf eine Low-Level API (Programmierschnittstelle) im Vergleich zu vorherigen Versionen. In dem man früher in älteren Versionen vieles in einem Rendering Schritt erledigt hat, geschieht dies nun in vielen kleinen Schritten, welche bessere Anpassungen zulassen. Je nachdem wie GIANTs ihre Engine entworfen hat, bedeutet dies viel oder extrem viel Aufwand, das ganze auf DirectX 12 umzustellen.
Insgesamt sollte mit DirectX 12, wenn richtig implementiert, aber ein erheblicher Zuwachs an Performance vonstatten gehen können. Finde ich sehr gut, in welche Richtung sich das entwickelt.
Weiterhin stellt GIANTS für den Farming Simulator 22 auch voraussichtlich eine Mac OS X Version bereit. Ich denke, wenn GIANTS den Schritt hinzu DirectX 12 gewagt hat, wird die Engine auch Vulkan unterstützen. Für die Mac OS Version würde ich dann auf MoltenVK setzen.
Warum eine eigene Engine?
"... namely we wan't to decide when and what features change during development." (Thomas Brunnder, Lead Engineer bei GIANTS)
Wie Thomas schon anspricht fragen sich viele warum GIANTS auf eine eigene Engine setzt und nicht z.B. auf die Engine von Unity oder Unreal. Während ich jedem Solo-Developer nur anraten kann, eine fertige Engine wie Godot, Unreal, oder Unity zu verwenden, ist es für eine größere Firma auf jeden Fall machbar, eine eigene Engine zu entwickeln und zu benutzen.
Dies hat meiner Meinung nach viele Vorteile, gerade im Hinblick auf Performance lässt sich viel, viel mehr machen, als mit den großen Engines (Unreal, Unity).
Klar bekommt man viel "out of the box" bei fertigen Engines mit, jedoch die feinen Performance Anpassungen an deine spezielle Anforderung können viel Zeit in Anspruch nehmen. Nicht nur das: Vergesst nicht die Lizenz Gebühren, welche GIANTS an EPIC zahlen müsste. Diese wären extrem hoch. Während solche Engines für Indie-Entwickler mit einem kleinen Umsatz noch kostenlos sind, kosten solche Lizenzen richtig viel Geld, falls der Umsatz hoch genug ist. Und gezahlt wird zum Beispiel bei der Unreal-Engine kein fester Betrag, sondern prozentual vom Umsatz. Das kann richtig ins Geld gehen.
Unabhängig machen von Engine Upgrades
Ein weiterer Punkt, warum GIANTS auf eine eigene Engine setzt, ist die Tatsache, dass nur sie Änderungen an der Engine Version vornehmen. GIANTS hat die volle Kontrolle über ihre Version der Engine, welche Betriebssysteme sie zum Beispiel unterstüzen und welche nicht. Das macht die Engine und das Spiel nicht nur viel viel schlanker, es macht es auch viel performanter. Sie haben die Kontrolle über ihre eigene Codebase. Wenn GIANTS jetzt Parallax Occlusion Mapping will, dann können sie dies in ihre Engine implementieren, ohne auf eine neue Unreal-Engine zu upgraden. Klar geht das wahrscheinlich auch mit Unreal, schließlich hat man den vollen Source Code und kann auch dort Änderungen vornehmen, jedoch schleppt man immer Features mit, welche man nicht braucht.
Weitere Upgrades sind:
- Texture Streaming
- Occlusion Culling
Occlusion Culling
Was man eigentlich immer macht ist View-Frustum Culling. Dies bedeutet, dass nur Dinge gerendert werden, welche in dem Kamera-Frustum sichtbar sind. Das Kamera-Frustum kann man sich so vorstellen wie die Game-Kamera, nur mit Röntgen Ansicht. Alle Objekte in diesem Frustum müssen erstmal der API mitgeteilt werden zum zeichnen. Das geht dann von dem Kamera Punkt bis zu der sogenannten Backplane. Diese Backplane ist oft als "Maximum View Distance" in den Grafikeinstellungen zu finden. Setzt man diese herunter kann dies einen erheblichen Performancegewinn darstellen, jedoch sieht man dann natürlich auch nicht mehr so weit in die Entfernung.
Was jetzt an der LS22-Engine neu ist, ist Occlusion Culling. Hier wird geschaut, ob ein Gegenstand komplett verdeckt wird (und auch keinen Schatten wirft). Falls ja, muss über diesen Gegenstand, zum Beispiel ein Baum hinter einem Berg, iteriert werden.
Improved Shadows
Ich nehme mal an sie haben sogenannte Cascaded Shadow Maps implementiert. Mehr dazu hier.
Feedback zu dem Video
In den YouTube-Kommentaren wird GIANTS vorgeworfen, das Rad neu erfinden zu müssen. Dies ist schlicht falsch.
Ich will hier GIANTS nicht in Schutz nehmen, aber GIANTS erfindet hier nicht Occlusion Culling neu, oder Cascaded Shadow Maps, oder Texture Streaming. Dies sind alles etablierte Methoden, welche schon seit Jahren in den Grundlagen Vorlesungen über Computergraphics an Fachhochschulen und Universitäten gelehrt werden. Das wäre wie, als wenn ich VW vorwerfe, einen eigenen Elektromotor zu bauen und nicht den Elektromotor zu verwenden, welchen es schon von Tesla gibt. Oder noch besser: Warum baut VW eigentlich eigene Autos? Es gibt doch schon die von Tesla!
Niemand wird zum Kauf gezwungen!
Es herrscht immer ein harscher Ton gegenüber Spieleentwicklern. Man fordert dies und jenes für sein hart erarbeitetes Geld. Niemand muss ja das Spiel kaufen, wenn es nicht gefällt. Diese Anspruchshaltung, nur weil man 30 Euro investiert hat, ist absolut toxisch.
Viele fordern, dass es kostenlose Patches geben sollte, für die Upgrades, die gemacht wurden. Ich denke viele verstehen nicht, dass an Farming Simulator viele Menschen arbeiten und deren Gehalt muss auch gezahlt werden. Es gibt zwar ab und zu DLCs welche etwas kosten, doch dann müssen wahrscheinlich auch Lizenzkosten an die Hersteller der Landmaschinen gezahlt werden.
Die Idee von einer neuen Engine
Leute denken immer wieder eine neue Engine müsste entwickelt werden, dies ist aber einfach falsch.
Es gibt Upgrades zur vorhandenen Engine, man entwickelt die Engine weiter, verbesssert sie und fügt eventuell neue Featuers hinzu. Alles ist möglich, mit genug Manpower.
Doch es gibt Hoffnung, manche scheinen es zu verstehen:
If you press this button it will load Disqus-Comments. More on Disqus Privacy: Link