Case studies

Wie ein sechsköpfiges Team LEGO® Builder's Journey in nur drei Monaten auf Apple Vision Pro portiert hat

Mar 13, 2024
LEGO® Builder's Journey von Light Brick Studio
Diese Website wurde aus praktischen Gründen für Sie maschinell übersetzt. Die Richtigkeit und Zuverlässigkeit des übersetzten Inhalts kann von uns nicht gewährleistet werden. Sollten Sie Zweifel an der Richtigkeit des übersetzten Inhalts haben, schauen Sie sich bitte die offizielle englische Version der Website an.

Angefangen bei Apple Arcade, hat Light Brick Studios LEGO Builder's Journey, ein packendes Multiplattform-Puzzlespiel, kontinuierlich an Dynamik gewonnen. Im Folgenden erfahren Sie, was das Team gelernt hat, als es die neue Ära des Spatial Computing für sich entdeckte und den Titel in Apple Vision Pro umsetzte.

DIE HERAUSFORDERUNG:
Überwindung von Rendering- und Optimierungsproblemen für die Portierung auf Apple Vision Pro in drei Monaten
PROJEKTLEITER:
20, mit einem 6-köpfigen Team, das sich um den Apple Vision Pro-Port kümmert
PLATFORMS:
Apple Arcade, PC, Xbox One, Xbox X|S, PlayStation®4, PlayStation®5, Nintendo Switch™, Apple Vision Pro
STANDORT:
Kopenhagen, Dänemark

Wie kann ein Studio, das sich noch nicht mit Mixed Reality beschäftigt hat, die Immersivität von Apple Vision Pro nutzen und gleichzeitig das Spielerlebnis auf anderen Plattformen beibehalten?

Da es sich bei LEGO® Steinen um echte physische Produkte handelt, war sich Light Brick Studio der Herausforderung bewusst, ein Erlebnis zu schaffen, bei dem die Spieler mit den Spielelementen im Raum interagieren. Für die Veröffentlichung des Spiels auf Apple Vision Pro war auch die Zeit ein Hindernis. Während das Team andere Plattformportierungen mit 2D-Oberflächen innerhalb von ein oder zwei Monaten durchgeführt hatte, war der Zeitrahmen von drei Monaten für diesen neuen Einstieg in die räumliche Datenverarbeitung zu knapp bemessen.

Navigieren in einer neuen Dimension

"Sobald man die Grenzen der Plattform für das Spiel und das Gameplay-Design kennt, kann man so ziemlich jede Art von Erfahrung schaffen, die man will", erklärt Mikkel Fredborg, der technische Leiter der Light Brick Studios.

Für das Team war es "vor allem eine technische Herausforderung, ein Spiel auf visionOS zu bringen, damit es reibungslos läuft und dann die Vorteile der vollen Erfahrung zu nutzen." Das bedeutete, dass mehrere technische Überarbeitungen durchgeführt werden mussten, einschließlich einer vollständigen Neugestaltung der Benutzeroberfläche (UI), um einst flache UI-Elemente in den Raum zu stellen. Das Team musste auch seine Rendering-Tools und -Methoden aktualisieren, um die visuelle Qualität und die Realitätsnähe des Endprodukts zu gewährleisten. Das parallele Ausbalancieren der Unity- und RealityKit-Systeme stellte eine weitere Hürde für die Leistungsoptimierung dar.

"Wir haben schon viele verschiedene Portierungen gemacht, und diese war die komplexeste, weil sich Apple Vision Pro sehr von den anderen Plattformen unterscheidet", sagt Karsten Lund, der Geschäftsführer von Light Brick Studio. "Wir wollten sehen, wie weit wir mit der Erfahrung gehen können, und es hat wirklich gut funktioniert.

Die Ergebnisse

  • Bau der 80 Level und 60.353 LEGO Steine des Titels für Apple Vision Pro in weniger als 100 Tagen
  • Wochenlange Entwicklungsverzögerung durch Unterstützung des Unity PolySpatial-Teams eingespart
  • Alle Spielbereiche wurden beibehalten, nur die Leistung wurde optimiert, ohne den Spielfluss zu verändern.
  • Implementierung eines fließenden Übergangs mit einem offenen Mixed-Reality-Stil, der mit dem Fortschreiten des Spielers immer intensiver wird

Nintendo Switch ist eine eingetragene Marke von Nintendo.

Ein Gif von LEGO Builder's Journey Spielelementen in Aktion
LEGO Builder's Journey von Light Brick Studio

Überarbeitung der Benutzeroberfläche und des Gameplay-Designs

LEGO Builder's Journey hat eine minimale Benutzeroberfläche mit höchstens 20 Schaltflächen für Aktionen wie das Laden gespeicherter Spiele und das Neustarten eines Levels, so dass die Überarbeitung der Benutzeroberfläche weniger aufwändig war als bei anderen Spielen. Die Neugestaltung der Benutzeroberfläche erfolgte in Unity, wobei GameObjects genommen und mit Kollidern versehen wurden, damit die Eingaben richtig funktionieren und gleichzeitig die Designsprache von visionOS imitiert wird.

Das Team musste auch die Flexibilität der Körperbewegungen berücksichtigen. Mit Ausnahme der Benutzeroberfläche wird alles im Spiel aus LEGO Steinen mit einem Tool namens LEGO Digital Designer gebaut. Das Team hat schon immer versucht, den 3D-Raum in einer 2D-Oberfläche zu simulieren, aber mit Apple Vision Pro mussten sie der Tatsache Rechnung tragen, dass sich ein Spieler überall hinbewegen kann. Um ein vollständiges 360-Grad-Erlebnis zu ermöglichen, überarbeitete das Team bestehende Modelle, die nur aus bestimmten Winkeln betrachtet werden konnten, um sicherzustellen, dass es keine Löcher in der Modellgeometrie gab. Um die Anzahl der Zeichenaufrufe zu reduzieren, wurden mehrere Meshes zu einzelnen GameObjects zusammengefasst.

Fredborg sagt: "Wir konnten berücksichtigen, dass ein Spieler ganz herumlaufen kann, und haben dann eine vollständige 360-Grad-Optimierung des Modells vorgenommen. Wir haben die gesamte Geometrie, die sich im Inneren der Ziegel befand, entfernt, als wir sie ins Spiel importiert haben, also haben wir alle inneren Details entfernt, da man sie nie sieht. Wir waren in der Lage, die automatisierten Tools, die wir haben, so anzupassen, dass sie mit der gesamten Simulationserfahrung funktionieren.

In-Editor-Aufnahme des Light Brick Studio-Teams beim Einrichten der Benutzeroberfläche und der Ereignisse für die PolySpatial VolumeCamera-Komponente
In-Editor-Aufnahme des Light Brick Studio-Teams beim Einrichten der Benutzeroberfläche und der Ereignisse für die PolySpatial VolumeCamera-Komponente

Verwaltung der Platzierung im Bounded-Modus

Schon früh entschied sich das Team für den Bounded-Modus, bei dem es innerhalb eines bestimmten Volumens arbeiten musste. Wenn sie versuchten, außerhalb dieses Volumens zu arbeiten, wurden Elemente abgeschnitten und blieben unsichtbar. Sie haben sich für die Einschränkungen des Bounded-Modus entschieden, bei dem es keine Informationen über die Kopf-, Augen- oder Handposition/-ausrichtung des Spielers gibt, es sei denn, es wird eine Interaktion durchgeführt. Sobald der Spieler eine Kneifgeste ausführt, weiß das Spiel, wo sich die Hand befindet und mit welchem Objekt interagiert wird. Wenn die Prise endet, endet auch die Information. In diesem Sinne ist es ähnlich wie bei einem Touchscreen, bei dem man nur weiß, was der Spieler tut, während er den Bildschirm berührt.

"Wir wussten nicht, worauf die Leute schauten, was eine große Umstellung war, vor allem, weil unser Gameplay es erfordert, dass die Spieler einen Stein anschauen, um ihn auszuwählen", sagt Fredborg. "Sobald wir all diese Grenzen überwunden hatten, funktionierte es wirklich gut und es passte gut in das System. Es hat sich als sehr angenehm erwiesen, auf diese Weise zu arbeiten, da alles in dieselbe Richtung der Benutzererfahrung gelenkt wird."

MaterialX-Shadern zur Hand gehen

In den ersten Versionen von LEGO Builder's Journey verwendete das Team eine angepasste Version der Lightweight Render Pipeline (LWRP) von Unity und wechselte dann zur High Definition Render Pipeline(HDRP) für Xbox und PlayStation Portierungen. Für Apple Vision Pro musste zunächst alles auf die Universal Render Pipeline(URP) und den Shader Graph umgestellt und dann auf das RealityKit von Apple übertragen werden.

Dazu haben sie Shader, die in Shader Graph erstellt wurden, in MaterialX-Shader übersetzt, die sie in RealityKit laden konnten. Das Team stieß jedoch auf Hindernisse und stellte fest, dass die Ergebnisse nicht optimal waren und mehr Arbeit erforderten als erwartet.

Sie hatten eine manuelle Optimierung geplant, stellten aber fest, dass sie den Prozess automatisieren mussten, um ihn zu vergrößern. Sie haben die Shader manuell gepatched, doppelten Code gefunden und diesen Teil des Codes dann ersetzt, um sicherzustellen, dass er nur einmal ausgeführt wird. "Es war eine Herausforderung, die Dinge reibungslos zum Laufen zu bringen", räumt Fredborg ein, "aber ich denke, das PolySpatial-Team leistet großartige Arbeit, um die Dinge zu optimieren."

Die Gameplay-Elemente der verschiedenen Level in LEGO Builder's Journey
LEGO Builder's Journey von Light Brick Studio

Das beste Licht finden

Aufgrund der kurzen Bearbeitungszeit des Spiels mussten sie spontan Lösungen finden. "Wir mussten Lösungen finden, um den Realismus des Spiels zu erhöhen und trotzdem Realtime Lights and Shadows zu unterstützen", sagt Fredborg. "Das war eine der größeren Veränderungen."

Zunächst wurde die bildbasierte Beleuchtung aus dem Apple Vision Pro übernommen, mit dem Ziel, sie korrekt auf die Materialien anzuwenden, die sie einbeziehen wollten, wie z. B. Kunststoff und verschiedene Varianten. Sie mussten sich mit kniffligen Elementen wie Fingerabdrücken und Kratzern auf den Ziegeln befassen, die es zu lösen galt.

Da das Spiel ursprünglich für frühe iPhones entwickelt wurde, hat es eine sehr einfache Beleuchtung. Das Team verwendete eine Volumentextur - eine 3D-Textur, in die Ambient Occlusion eingebettet ist -, so dass sie an jeder beliebigen Stelle der Szene eine Probe nehmen konnten. Sie nahmen Stichproben und analysierten, wie stark die Umgebung verdeckt war. Da 3D-Texturen von Apple Vision Pro nicht unterstützt werden, mussten sie die Volumentextur in 2D-Texturen umwandeln und diese manuell abtasten. Dies ist nun ein automatisierter Prozess in PolySpatial, der jedoch nicht zur Verfügung stand, als das Light Brick Studio Team begann.

In-Editor-Aufnahme des Light Brick Studio-Teams beim Aufbau einer der Nachtszenen
In-Editor-Aufnahme des Light Brick Studio-Teams beim Aufbau einer der Nachtszenen

Das Team begann mit der Schattierung von Plastikziegeln und dem Volumen-Textursampling-System. Dann wurde Realtime Lights eingebaut, und als die Volumentextur die Szene umhüllte, musste die Außenbeleuchtung geändert werden. Als sie mit der Entwicklung begannen, war es nicht möglich, die bildbasierte Beleuchtung zu überschreiben, also mussten sie eine andere Cube Map sampeln und dann das Licht aus der bildbasierten Beleuchtung von RealityKit ausblenden.

"Was wir vorhatten, war nicht wirklich möglich, aber wir fanden einen Ausweg, indem wir die Glätte des Ziegels verringerten und verschiedene Werte erhöhten, bevor wir es an die RealityKit-Beleuchtung schickten", erklärt Fredborg. "Entwickler werden es einfacher haben, da das Überschreiben der bildbasierten Beleuchtung nun in PolySpatial und RealityKit möglich ist."

Die Gameplay-Elemente der verschiedenen Level in LEGO Builder's Journey
LEGO Builder's Journey von Light Brick Studio

Erzeugen eines weichen Schattens

Das Light Brick Studio-Team musste auch eine Lösung für die Schatten finden. Zwar können bestimmten Elementen in Apple Vision Pro Schatten hinzugefügt werden, aber das ist nicht Standard. Dazu hat das Team den Schatten in Unity als Height Map oder Depth Map gerendert, ihn an RealityKit gesendet und dort neu abgetastet. Die Szene wurde als Shadow Map im Metal-Backend von Unity gerendert und dann an die RealityKit-Rendering-Seite weitergegeben.

"Die Möglichkeiten des Renderings sind begrenzt, wenn man immer noch 90 Bilder pro Sekunde erreichen muss. Wir haben eine sehr kleine Schattenkarte erstellt, 64 x 64 Pixel, und dann die Mipmap-Ebenen mit den RGBA-Kanälen einer einzigen Textur kombiniert, die dann mit einem einzigen Sample in RealityKit abgetastet werden kann, um etwas zu erzeugen, das wie ein weicher Schatten aussieht", erklärt Fredborg. "Wenn der Ziegelstein sehr nah an der Oberfläche liegt, sind die Schatten ziemlich scharf, aber wenn er oben liegt, sind die Schatten weicher. Das haben wir mit einer Texturprobe geschafft."

Ein unvergessliches Erlebnis: LEGO Builder's Journey zu Hause spielen
LEGO Builder's Journey von Light Brick Studio

Für die Echtzeitbeleuchtungen von Unity wurde der PolySpatial Lighting Node im Shader Graph verwendet, der nach der Konvertierung in RealityKit zu mehreren Shader Graph Nodes erweitert wurde.

"Bei RealityKit kann man Shader nur über eine Shader-Graph-ähnliche Schnittstelle ändern", sagt Fredborg. Auf der Seite von Unity fand das Team heraus, dass es möglich ist, eine benutzerdefinierte Codefunktion in Shader Graph zu erstellen, die anschließend in einen MaterialX-Nodegraph umgewandelt werden kann, solange sie bestimmten Regeln folgt. "Das hat uns wirklich sehr geholfen", fährt er fort, "sonst wäre es ein Spaghetti-Monster innerhalb eines Spaghetti-Monsters in Shader Graphs geworden."

Die Gameplay-Elemente der verschiedenen Level in LEGO Builder's Journey
LEGO Builder's Journey von Light Brick Studio

Optimieren bei 90 FPS

Als das Team die visuelle Gestaltung in eine neue Dimension vorantrieb, stieß es auf einige Hürden, die den reibungslosen Betrieb der Plattform erschwerten. Die Entwicklung verlief als zweiteiliges System, wobei alles von Unity an RealityKit weitergegeben wurde, das über unterschiedliche Rendering-Techniken verfügt. Das bedeutete, dass Unity für die Spiellogik zuständig war, während RealityKit das Rendering der Grafik übernahm, und die Optimierung war notwendig, um bei 90 Bildern pro Sekunde flüssig zu laufen. Eine der größten Herausforderungen bestand darin, herauszufinden, ob ein Engpass von der Unity-Seite oder der RealityKit-Seite ausging, und das Team brauchte mehrere Versuche, um die Lösung zu finden.

"Am Anfang hat das PolySpatial-Paket alles, was wir in Unity gemacht haben, in RealityKit gespiegelt, so dass jedes GameObjects oder jede Transformation dort zu sehen war, und damals konnten wir nicht ausschalten, dass bestimmte Ebenen übertragen oder gespiegelt werden. Es spiegelt alles wider, vom UI-Rendering über das Canvas-Rendering bis hin zum Partikelsystem des Animators", erklärt Fredborg. "Jetzt gibt es einen Filter, mit dem man einstellen kann, dass bestimmte Ebenen nicht verfolgt werden, aber zu diesem Zeitpunkt mussten wir einen Weg finden, alles zu entfernen, was wir auf der RealityKit-Seite nicht sehen wollten."

Ein Level in LEGO Builder's Journey von Light Brick Studio
LEGO Builder's Journey von Light Brick Studio

Das Team musste die GameObjects-Hierarchien optimieren. Auf anderen Plattformen bestehen Bricks aus drei oder mehr verknüpften GameObjects, aber für visionOS wurden maximal zwei GameObjects pro Brick festgelegt, um das Hin und Her zwischen Unity und RealityKit zu begrenzen. Das hat wirklich gut funktioniert und war ein großer Gewinn für das Team.

Auch die Verbesserung der Stop-Motion-Animation war ein Highlight. Das Spiel enthält animierte Wasserfälle, die Maschen auf Steinen austauschen. Sie bestanden aus Hunderten von verschiedenen GameObjects, die recht langsam waren. "Am Ende haben wir es gestaffelt angegangen, anstatt jedes Bild für jedes GameObjects zu machen", sagt Fredborg. "Wir haben gewartet und alle paar Frames zwischen den verschiedenen Wasserfallströmen gemacht. Das hat sehr geholfen."

Suche nach den besten Lösungen und Partnern

Bei der Entwicklung des Apple Vision Pro musste das Team von Light Brick Studio flexibel bleiben, Probleme schnell lösen und die Dinge immer wieder neu angehen, um sie richtig zu machen.

"Ich glaube, man muss die Brille aufsetzen, um sie zu verstehen", sagt Fredborg. "Wir empfehlen, mehrere Builds durchzuführen und das Gerät so oft wie möglich zu benutzen, um sich auf Berührung und Bewegung zu konzentrieren. Sie haben den Simulator, den Sie auf dem Mac ausführen können, um ein Gefühl dafür zu bekommen, wie die Dinge funktionieren, aber die Eingabe ist anders. Es ist eine viel physischere Plattform".

Am Ende war das Team mit dem Ergebnis sehr zufrieden, was zum Teil auch an der Zusammenarbeit mit einem starken Partner lag. "Das PolySpatial-Team war sowohl auf Slack als auch in den Diskussionsforen sehr entgegenkommend", fährt er fort. "Wenn wir blockiert waren, haben sie sich schnell mit Lösungen gemeldet, was sehr hilfreich war. Sie waren sehr hilfsbereit und wollten die bestmögliche Version von PolySpatial entwickeln."

Ein Level in LEGO Builder's Journey von Light Brick Studio
LEGO Builder's Journey von Light Brick Studio
"Solange Unity eine Plattform unterstützt, können wir es dort zum Laufen bringen."
MIKKEL FREDBORG / LIGHT BRICK STUDIOTechnical Lead

Bauen Sie noch heute für Apple Vision Pro mit Unity 2022 LTS

Sprechen Sie mit unserem Team, um zu erfahren, wie wir Ihnen helfen können, die leistungsstarken Tools und Workflows von Unity zu nutzen, um überzeugende räumliche Erlebnisse zu schaffen.

Erkunden Sie die Fallstudie

Füllen Sie dieses Formular aus, um Zugang zu den neuesten Erfolgsgeschichten von Kunden zu erhalten