Die Veröffentlichung von Cities: Skylines II hat die Leistungsstandards in Städtebausimulationen neu definiert. Hinter der Fähigkeit, Tausende einzelner Bürger mit einzigartigen Verhaltensweisen zu verwalten, verbirgt sich eine stark modifizierte Unity-Architektur, die auf dem ECS-System (Entity Component System) basiert. Dieser Ansatz ermöglicht die gleichzeitige Verarbeitung von Verkehrslogik, Wirtschaft und Lebenszyklus jeder Entität, ohne die CPU zu überlasten – eine entscheidende Errungenschaft, um in dichten Städten eine stabile Bildrate zu gewährleisten.
Asset-Fluss und geometrische Optimierung mit Maya und Houdini 🏗️
Das extreme Detailniveau von Gebäuden und Infrastruktur wäre ohne einen automatisierten Workflow zwischen Autodesk Maya und Houdini nicht möglich. In Maya werden die Basis-Assets modelliert, während Houdini prozedurale Variationen (Fenster, Dächer, Abnutzungstexturen) erzeugt, die als optimierte LOD-Meshes (Level of Detail) für Unity exportiert werden. Der technische Kniff liegt in der Integration dieser Varianten mit dem ECS-System: Jede Bürger- oder Fahrzeugentität referenziert ein dynamisches LOD-Mesh, das je nach Kameradistanz vereinfacht wird und so GPU-Speicher freigibt. Für den Tag-Nacht-Zyklus werden benutzerdefinierte Shader verwendet, die zwischen Albedo- und Emissiv-Texturen interpolieren, während das dynamische Wetter ECS-Partikel für Regen und Schnee nutzt, um den Overhead traditioneller Partikelsysteme zu vermeiden.
Lehren für Entwickler von Massensimulationen 🎯
Wenn du eine ähnliche Architektur implementieren möchtest, priorisiere von Anfang an die Trennung von Renderdaten und Logik. Der häufigste Fehler ist es, jeden Bürger als GameObject zu behandeln, was die Engine zum Absturz bringt. Verwende stattdessen ECS-Entitäten mit leichten Komponenten (Position, Zustand, Ziel) und ein Pooling-System, um inaktive Entitäten wiederzuverwenden. Programmiere Wetterübergänge außerdem als Interpolationen im globalen Zeitsystem, nicht als diskrete Ereignisse; dies vermeidet Rechenspitzen. Automatisiere schließlich die LOD-Generierung in Houdini mit Polygonreduktionsknoten, da extreme geometrische Details nur aus kurzer Distanz sichtbar sind.
Wie bewältigt das Team von Colossal Order die Herausforderung der Datensynchronisation zwischen den Unity-ECS-Systemen und den einzelnen Agenten, um die Leistungsstabilität in hochdichten Städten in Cities: Skylines II aufrechtzuerhalten?
(PS: Ein Spieleentwickler ist jemand, der 1000 Stunden damit verbringt, ein Spiel zu machen, das die Leute in 2 Stunden durchspielen)