Unity erläutert am 8. März 2019 die Speicherorganisation des Entity Component System (ECS). Lucas Meijer beschreibt den Ansatz als Teil von DOTS. Entitäten mit derselben Kombination von Komponenten werden nach Archetypen gruppiert; ihre Komponentendaten liegen in Speicherblöcken von 16 Kilobyte.
Datenzugriff statt Suche nach einzelnen Objekten
Systeme geben an, welche Komponenten sie benötigen und ob sie Daten lesen oder verändern. Die Verarbeitung läuft dann über dicht gepackte Daten. Unity will damit verstreute Objektzugriffe verringern und Jobs parallel planen. Der zuvor erklärte Burst-Compiler kann passende Schleifen optimieren.
Für Engine-Teams verschiebt sich damit die Entwurfsfrage: Nicht allein die Klassenstruktur zählt, sondern auch, welche Daten gemeinsam verarbeitet werden. Aus dieser Organisation folgt jedoch kein allgemeiner Leistungsgewinn für jedes Spiel. Dafür wären Messungen im jeweiligen Projekt erforderlich.
Megacity kombiniert ECS und bestehende Grafiktechnik
Die Megacity-Demonstration zeigt einen Übergangsaufbau. Laut dem Blog verwendet das Projekt ECS unter anderem für Streaming, Sichtbarkeitsprüfung und Animation; die eigentliche Zeichenausgabe nutzt noch die bestehende Graphics.DrawMeshIndirect-API. Ein vollständig ECS-basierter Renderer steht zu diesem Zeitpunkt nicht bereit.
Meijer kündigt weitere ECS-Subsysteme als C#-Pakete mit zugänglichem Quellcode an. GameObjects sollen erhalten bleiben. Der Beitrag dokumentiert den Entwicklungsstand vom März 2019 und ist keine Freigabe eines vollständig auf ECS umgestellten Unity-Players.
Ein solcher Mischbetrieb verlangt bei der Projektplanung eine klare Grenze zwischen neuer Datenverarbeitung und vorhandenen Subsystemen. Eine Demo belegt die gezeigte Kombination, nicht automatisch die Eignung für sämtliche Produktionsanforderungen.

