Analyse erklärt Performanceprobleme von Cities - Skylines 2

PC Xbox X PS5
Bild von onli
onli 12211 EXP - 18 Doppel-Voter,R8,S9,A5,J10
Dieser User unterstützt GG seit fünf Jahren mit einem Abonnement.Alter Haudegen: Ist seit mindestens 10 Jahren bei GG.de registriertGold-Jäger: Hat Stufe 11 der Jäger-Klasse erreichtBronze-Schreiber: Hat Stufe 6 der Schreiber-Klasse erreichtBronze-Reporter: Hat Stufe 7 der Reporter-Klasse erreichtDieser User hat am GamersGlobal Grillfest 2022 teilgenommenDieser User hat uns zur Yakuza 6 Aktion mit einer Spende von 5 Euro unterstützt.Idol der Massen: Hat mindestens 10.000 Kudos bekommenVielspieler: Hat 250 Spiele in seine Sammlung eingetragenVielschreiber-Azubi: Hat mindestens 50 veröffentlichte News geschriebenAzubi-Redigierer: Hat 100 EXP beim Verbessern fremder News verdientDieser User hat uns bei der Japan 2022 Aktion mit 10 Euro (oder mehr) unterstützt.

6. November 2023 - 0:00 — vor 22 Wochen zuletzt aktualisiert
Dieser Inhalt wäre ohne die Premium-User nicht finanzierbar. Doch wir brauchen dringend mehr Unterstützer: Hilf auch du mit!
Cities - Skylines 2 ab 37,95 € bei Amazon.de kaufen.

In einem Blogartikel hat der finnische Entwickler Paavo Huhtala Details zur Render-Pipeline von Cities - Skylines 2 (der Stadtaufbau im GG-Test) geteilt und dabei auch die Performanceprobleme des kürzlich veröffentlichten Städtebauspiels untersucht. Dafür nutzte er hauptsächlich den Grafik-Debugger Renderdoc. Seiner Analyse zufolge krankt das Spiel an verschiedenen technischen Problemen, die im Endeffekt dazu führen, dass der Grafikkarte viel zu viel Arbeit aufgehalst wird.

Kernproblem sei die Nutzung von Unitys Engine-Feature DOTS. Der "Data-Oriented Technology Stack" sei auf der einen Seite dafür verantwortlich, dass das Spiel relativ geschickt die Last auf mehrere Prozessorkerne verteilen könne. Aber bei Skylines 2 führten der Analyse zufolge die technischen Beschränkungen des unfertigen Features dazu, dass die Entwickler einige technische Systeme selbst entwickeln mussten, die normalerweise die Engine mitbringen würde, damit DOTS mit dem regulären Unity-Rendersystem verbunden werden kann.

Und genau diese selbst implementierten Features seien teilweise immer noch unfertig, sodass Dinge gerendert werden, die gar nicht gerendert werden müssten, oder zumindest nicht in diesem Detailgrad (Level of Detail, LOD), da dafür die Erkennung kaputt sei. Ein anderes Beispiel dafür ist das Schattensystem, das alleine 40ms der Renderzeit des Testframes verbraucht. Die Implementierung des Cascaded-Shadow-Mapping-Systems kranke ebenfalls daran, dass sehr viele unnötige Drawcalls an dieser Stelle angesetzt werden, weil hier scheinbar jedes 3D-Objekt berücksichtigt werde, egal wie weit weg und ob es sichtbar sei.

Dazu kämen einige andere handwerkliche Fehler. So würden einige Spielobjekte in einem sehr hohen Detailgrad bereitgestellt, was optisch völlig unnötig sei aber die Grafikkarte noch weiter belaste. Archetypisch für dieses Problem scheinen die unsichtbaren Zähne der Spielfiguren, die trotzdem mit sehr hohem Aufwand gerendert würden. Alleine wäre das kein Problem, aber zusammengenommen erklärten die Probleme den unheimlich hohen Performancehunger des Spiels. Paavo vermutet an der Stelle übrigens nicht Unfähigkeit der Entwickler, sondern Pech bei der Wahl der genutzten Enginefeatures, die nicht so weiterentwickelt wurden beziehungsweise integrierbar waren wie sicher zu Beginn angenommen, plus Zeitmangel, um die Eigenlösungen fertigzustellen.

Die Analyse war mit Patchversion 1.0.11f1 vorgenommen worden. Der seitdem veröffentlichte Patch 1.0.12f1 setze teilweise genau an den erkannten Problemstellen an, löse sie aber höchstens teilweise.

Labrador Nelson 31 Gamer-Veteran - P - 265875 - 6. November 2023 - 0:37 #

Naja, interessant. Klingt jedenfalls nicht so, dass es nicht lösbar wäre. Wird aber sicher n bisschen dauern.

Vampiro Freier Redakteur - - 121538 - 6. November 2023 - 0:49 #

Das ist denke ich ein Nachteil, wenn man von den Engine-Entwicklern abhängig ist, die, fies gesagt, lieber einen Malware-Anbieter kaufen statt die eigene Engine gescheit und planmäßig weiterzuwentwickeln. Ich vermute stark, dass Unity behind schedule ist und, wegen der Budgetplanung, CS2 trotzdem schon mit Behelfslösungen rauskam.

Spannende Analys. Und wenn das zutrifft, ist das alles recht "leicht" fixbar, zumindest aber kein unüberwindbares Engine-Hindernis.

Bisschen schade nur, dass man nicht in EA geswitched ist. Es ist aber spekulativ, welcher Shitstorm größer wäre und der Track Record von CS und, überwiegend (ja, ich vermisse I:R, auch wenn der Cut finanziell wohl nötig war, das Spiel hatte so viel Potenzial und war so hübsch und auch schon gut!), Paradox ist imho ziemlich gut.

Harry67 20 Gold-Gamer - - 24292 - 6. November 2023 - 6:48 #

Das Unity-Risiko... Fairerweise muss man sagen, dass auch eine Unreal Engine ein hohes Optimierungspotenzial hat. Gerade erst wieder bei WRC 2023 von Codemasters.

Sokar 24 Trolljäger - - 48108 - 6. November 2023 - 8:32 #

Mit ungeschickter Programmierung kann man jedes System in die Knie zwingen - Hard- und Software.

Harry67 20 Gold-Gamer - - 24292 - 6. November 2023 - 8:39 #

Ich stelle mir das eher so vor, dass man 1 oder 2 Supercracks nur fürs Optimieren und tiefergehende Operationen an der Engine braucht ;)

Gedracon 19 Megatalent - - 19523 - 6. November 2023 - 9:25 #

Die Engine ist nicht Schuld, wenn ein Entwickler auf ein unfertiges System setzt, bei dem der Engine-Hersteller die ganze Zeit warnt, dass es noch nicht für den Produktiveinsatz bereit ist...
Das erlebt man in der Softwareentwicklung zu oft, es wird auf unfertige Features gesetzt (die vielleicht sogar in der Entwicklungszeit gestrichen werden) und dann schiebt man es auf die Engine / das Framework.

Harry67 20 Gold-Gamer - - 24292 - 6. November 2023 - 11:11 #

Ich denke dass beides realistisch ist.
Ohne intensive Optimierung kommen auch große Engines nicht aus. Und andererseits läuft die Engineentwicklung parallel und wirbt mit Features.
Speziell bei Unity fällt mir schon der Hardwarehunger auf, sobald das Ergebnis ein komplexeres Spiel ist.

Gedracon 19 Megatalent - - 19523 - 6. November 2023 - 13:08 #

Es sind halt Multi-Purpose Engines, mit denen man viel machen kann, wenn man weiß was man tut.
Optimierung ist natürlich immer nötig, Engine hin oder her. Nur schlechte Entwicklung repariert man auch nicht mit Optimierung.
Ich entwickle seit 2001 mit Unreal und seit 2007 mit Unity, mein Job ist es oftmals "Engine-Probleme" von Entwicklern zu lösen, bei denen sie nicht weiter kommen. Da seh ich viel zu oft unerfahrene Entwickler die x-Feature der Engines nutzen / einbauen, ohne zumindest die Basics richtig zu verstehen. Da kommt dein beschriebener Hardwarehunger her und kann mit jeder Engine passieren.
Unity wurde halt die letzten 10 Jahre für jeden Mist benutzt und das teilweise miserabel. Das gilt auch nicht nur im Indy-Bereich, sondern auch bei großen Team, bei denen unterschiedliche Teams ewig an Bestandteilen rumwerkeln und keiner prüft, ob der Krempel nachher auch manierlich zusammen läuft.

onli 18 Doppel-Voter - P - 12211 - 6. November 2023 - 17:25 #

Ich kann das mangels Erfahrung mit Unity nicht bewerten, aber der Artikel stellt es etwas anders da. Demnach sei DOTS mit dem ECS genau das passende System für ein Spiel wie Skylines gewesen und als das Spiel vor ein paar Jahren angefangen wurde seien weder die Probleme absehbar noch klar gewesen, dass Unity die Weiterentwicklung bzw Integration einstellen wird. Ist das daneben, zu freundlich?

Wobei, auf der DOTS-Seite sehe ich keine Warnung. Vll später in der Doku...

Dass hier der Schritt fehlte, zu prüfen ob alles zusammenpasst bzw dann die notwendige Entwicklungszeit zu investieren, da hast du völlig recht, das ist gegeben dem Ergebnis glasklar. Und vll fehlte da auch etwas Ahnung, um die Systeme wie das Culling direkt richtig(er) hinzukriegen?

Gedracon 19 Megatalent - - 19523 - 6. November 2023 - 20:25 #

DOTS ist sicher das passende System und seit Unity 2022.3 LTS zumindest als Releaseversion vorhanden. Da wird dann auch die Warnung rausgeflogen sein, in einigen API-Docs gibts noch Hinweise.
Nur die Entwickler haben sicher nicht erst mit der Version angefangen und mussten viel selbst rumstricken, um ein System zu nutzen das nicht fertig ist (was der Blog ja auch mutmaßt).
Aus meiner Sichtweise ist die aktuelle Dots-Version aus 2022.3.7 auch weder stabil noch Feature-complete, da muss noch einiges an Zeit investiert werden und keiner weiß wie bei Unity aktuell der Fokus liegt.
Sich auf unfertige Engine-Features zu verlassen ist halt immer ein Risiko und hier ist es leider nicht aufgegangen.

Harry67 20 Gold-Gamer - - 24292 - 6. November 2023 - 19:07 #

Das hört sich nach einem wirklich interessanten Job an. Wäre ja im Grunde schon eine eigene Berufssparte "Engine Experte" mit der Option eines technischen Producers oder so. An letzterem scheint es ja dann doch öfter zu mangeln.

onli 18 Doppel-Voter - P - 12211 - 6. November 2023 - 19:33 #

Jop, superspannend!

Gedracon 19 Megatalent - - 19523 - 6. November 2023 - 20:08 #

Man nennt es inoffiziell Feuerwehr :)
Leider ist es schwierig über solche Jobs zu berichten, 99% ist NDA. Will ja schließlich keiner verkünden "wir mussten letztendlich externe Hilfe dazu nehmen". Da listet dich auch keiner in den Credits bzw. eher indirekt als x-beliebiger Dienstleister ^^

Sokar 24 Trolljäger - - 48108 - 6. November 2023 - 8:34 #

Ich habe den Artikel nicht gelesen, aber die Zusammenfassung hier klingt, als ob sie wüssten, woran es liegt bzw lag, aber nicht genug Zeit hatte, um die Probleme zu beheben. Ist leider so ein Klassiker, wenn Budget und Zeit knapp werden, fällt sowas leicht hinten runter und unfertige bzw. halbgare Implementierungen werden ausgeliefert, obwohl sich die Programmierer dessen gewusst sind. Sie haben da leider meist kein Mitspracherecht...

Moriarty1779 19 Megatalent - - 17151 - 6. November 2023 - 9:01 #

Ich habe einen schwachbrüstigen PC mit i3 und GTX1650. Habe beim ersten Anspielen die Enttäuschung schlechthin wegen der Ruckelorgie erlebt, dann aber beim Rumspielen in den Settings gemerkt, dass sich das Spiel mit wenigen Einstellungen auf ein spielbares Niveau bringen lässt. Bei mir war vor allem die Texturfilterung "Trilinar --> Bilinear" ein Mega-Unterschied...

vgamer85 (unregistriert) 6. November 2023 - 9:15 #

Und alle so yeaaaay. Sehr gut gemacht.

Brunt 15 Kenner - 3574 - 6. November 2023 - 16:38 #

Gut das es den Game Pass gibt.
Ich habe einen guten PC und da ruckelt es schon bevor ich spiele im Menue.
Aber das eigentlich schlimme ist das noch dazu kommt das einiges nicht richtig vom Gameplay funktioniert und es viel zuwenig Umfang bzw. Neuerungen hat.
Dann noch diese Grafik, andere Spiele zocke ich alle auf Ultra, das hier sieht nicht einmal gut aus egal was man einstellt.

Desotho 18 Doppel-Voter - 9411 - 6. November 2023 - 21:50 #

Selbst jede Schraube am Riesenrad im Hintergrund ist zu 100% detail... Ach falsches Spiel...
... Die Kissen im Bett jedes Einwohners verformen sich physikalisch korr... Auch falsches Spiel...

heini_xxl 18 Doppel-Voter - P - 9618 - 7. November 2023 - 22:34 #

ich bin noch nicht sehr weit im Spiel, aber zocke eh nur Full HD und wenn man mit den Grafikeinstellungen etwas herumdödelt, ist es auf einer RTX2060 gut spielbar bisher.
Was ich nicht verstehe: wieso ist das nicht viel früher aufgefallen? Das ganze Promo-Material lief doch auch gut, oder waren das alles Monstermaschinen, die dann auch den Streamern hingestellt wurden? Oder sind das andere Versionen gewesen?