08.10.2026 · Signal Titans Editorial
Wie Moonlight Kids Zeitschleifen-Zustände und Streaming in Unity 6 entwickelte
Moonlight Kids erläutert die Chunk-Streaming-Architektur, Zustandspersistenz und Rendering-Optimierungen des Zeitschleifenspiels Echo Weaver in Unity 6.

Der Indie-Entwickler Moonlight Kids und der Publisher Akupara Games haben Details zur zugrundeliegenden Architektur hinter Echo Weaver bekannt gegeben, einem Zeitschleifen-Abenteuerspiel, das mit Unity 6 entwickelt wurde. Nach dem Umstieg von Unity 2021 LTS, das das dreiköpfige Team bei seinem vorherigen Projekt The Wild at Heart nutzte, entwarf das Studio maßgeschneiderte Streaming- und Zustandsverwaltungssysteme, um eine nahtlos vernetzte Spielwelt ohne Ladebildschirme zu realisieren.
Wissensbasierte Freischaltung und Zustandspersistenz
Anstatt auf dauerhafte physische Upgrades zu setzen, nutzt Echo Weaver ein wissensbasiertes Fortschrittssystem, bei dem sich die Welt kontinuierlich zurücksetzt, während die Spielperson erworbene Informationen behält. Um diesen Zustand sauber zu verwalten, teilte das Team die Systemdaten in flüchtige Durchlaufdaten und den dauerhaften Speicherbereich des Spielers auf. Entdeckte Kartenrouten und der Story-Fortschritt werden auf die Festplatte serialisiert, während die Levelgeometrie ihren Zustand dynamisch zurücksetzt. Bei tragbaren Inventargegenständen verhinderte die Übertragung des Objekteigentums direkt auf die permanente Szenenschicht, dass Gegenstände bei Übergängen an Streaming-Grenzen dupliziert werden oder verschwinden.
Modulare Chunking- und Reset-Architektur
Um ein kontinuierliches Streaming der Welt zu ermöglichen, unterteilt das Spiel seine Karte in diskrete räumliche Chunks. Feste Weltgeometrie und Übergangsmarkierungen bleiben dauerhaft in Hintergrundszenen geladen. Temporäre Daten – einschließlich Spielerinstanz, Spielmanager und aktiver Durchlaufzähler – befinden sich in einer leichtgewichtigen Essentials-Szene. Bei einem Schleifen-Reset entlädt die Laufzeitumgebung aktive Umgebungschunks, bereinigt ein In-Memory-Dictionary mit durchlaufspezifischen String-Schlüsseln und verwirft die Essentials-Szene, bevor sie neu instanziiert und der anfängliche Startbereich eingestreamt wird.
Grafik- und Rendering-Optimierungen
Handgezeichnete 2D-Grafiken stellten während der Entwicklung spezifische Rendering- und Speicherherausforderungen dar. Das Aktivieren der Texturatlas-Komprimierung reduzierte den aktiven Speicherverbrauch auf etwa 1 GB. Dekorative Umgebungselemente werden während der Build-Phase aus den Karten-Chunks entfernt und über mehrere Frames hinweg asynchron neu instanziiert, um Spitzen auf dem Haupt-Thread zu vermeiden. Der Entwickler erstellte außerdem ein benutzerdefiniertes Sprite-Flattening-Tool, um wiederholte Art-Assets in einzelne Draw Calls zusammenzufassen, reduzierte die Lichtebenen-Texturen von sechs auf drei und ersetzte veralteten Objekt-Pooling-Code durch Unitys nativen C#-Objekt-Pool sowie den Composite Collider 2D. Der Frame Debugger von Unity wurde während der gesamten Entwicklung genutzt, um Unterbrechungen bei Draw Calls zu isolieren und das Batching zu optimieren.
KI-generierte redaktionelle Illustration; kein Dokumentarfoto.
Quelle: Echo Weaver: Building a time-loop metroidbrainia in Unity 6