Instant Spiele mit Unity Project Tiny

Eine Anwendung oder ein Spiel ganz ohne Installation direkt im Browser zu starten ist ein wirklicher Luxus für den Nutzer. Die Web Graphics Library ermöglicht genau das, denn mit Hilfe dieser Javascript-Programmierschnittstelle kann der Webbrowser ohne zusätzliche Erweiterungen 3D-Grafiken auf Basis der Hardware des Endgerätes ausführen.

Problem: Auf mobilen Browsern für Smartphones oder Tablets sind die WebGL-Builds aus Unity schlichtweg zu groß und das starten solcher Anwendungen kann sehr lange dauern.

Project Tiny

Die Lösung ist in diesem Fall Project Tiny. Hiermit ist es mögliche die Anwendung aus Unity so zu exportieren, dass diese in einer leichte Anwendungen mit sehr schnellen Ladezeiten resultiert. Möglich ist dies durch die gezielte Auswahl von Codemodulen. Es werden also innerhalb der Anwendung nur die Mechaniken der Unity Engine aktiviert, die auch wirklich zum Realisieren der Anwendung beitragen.

Beispielanwendung

Unity Technologies selbst hat eine Demo-Applikation auf Basis von Project Tiny öffentlich zur Verfügung gestellt. Du kannst diese unter https://unity3d.com/tiny erreichen. Öffne die Adresse im mobilen Browser deiner Wahl auf deinem Smartphone oder Computer und du kannst du ein Bild einer Beispielanwendung machen.

Das erste was dir auffallen wird, ist die extrem schnelle Ladezeit im Vergleich zu WebGL. Bei vielen WebGL Anwendungen wartet man geduldig vor dem Bildschirm bis der Ladebalken abgeschlossen ist.

Eigenes Project Tiny erstellen

Öffne ein neues Unity Projekt und wechsle die Plattform in den Build Settings auf WebGL. Solltest du das Modul noch nicht geladen haben, dann kannst du dies über das Unity Hub tun. Damit du dir deine eigene Anwendung auf Basis von Project Tiny erstellen kannst, musst du dir zuerst das Package über den Unity Package Manager aktivieren. Öffne dazu über die Menüleiste Window > Package Manager, klicke auf den „Advanced“ Auswahl Button und aktiviere „Show preview packages“. Danach suchst du nach „Tiny Mode“ und installierst das Package über den „Install“ Button in der rechten unteren Ecke.

Erscheint bei dir in der Unity Konsole eine Fehlermeldung: Copying assembly from ‚Temp/com.unity.multiplayer-hlapi.Runtime.dll‘ to ‚Library/ScriptAssemblies/com.unity.multiplayer-hlapi.Runtime.dll‘ failed  oder eine ähnliche Fehlermeldung. Dann musst du die jeweiligen Packages auf den aktuellen Stand bringen. Überfliege den Package Manager und suche nach Packages die über ein Update verfügen. Aktualisiere all die Packages um weitere Fehlermeldungen zu vermeiden. Dein Project Tiny Package ist erfolgreich importiert sobald du es in deinem Assets Ordner findest.

Unterschied zu regulärer Anwendung

Bei regulären Unity Anwendung kannst du dir GameObject und Skripts auf Basis der C#-Programmiersprache erstellen. Der Tiny Mode in Unity zwingt dich aber dazu ECS Pattern zu verwenden, also das Entity Component System. Wenn du diesen Begriff zum ersten Mal hörst, dann überfliege kurz diesen Wikipedia Artikel.

Beispielprojekte

Bevor du mit deinem eigenen Tiny Mode Project startest, empfehle ich dir die Beispielanwendung zu laden. Klicke in der Menüleiste auf Tiny > File > Import Sample Project.

Wichtig: Solltest du den Menüpunkt „Tiny“ in der Menüleiste von Unity nicht finden, dann überprüfe den Package Manager. Entferne hier alle aktiven Packages die du nicht benötigst. Bei mir hat Text Mesh Pro und das Multiplayer HLAPI dafür gesorgt, dass der Menüpunkt nicht sichtbar war. Nach dem entfernen dieses Packages war der Menüpunkt in der Menüleiste sichtbar bzw. der Import nicht funktioniert hat.

Öffne im Assets Ordner Assets > TinySamples > MatchThree > MatchThree.utproject Datei und klicke auf den Play Button in Unity. Direkt danach wird die Anwendung für HTML5 gebaut und du erhältst in der Game View einen Hinweis wie du deine Anwendung aufrufen kannst. Auf dem PC geht dies indem du mit der linken Maustaste auf den QR-Code klickst oder die angezeigte IP-Adresse im Browser aufrufst. Alternativ kannst du die Adresse auch auf deinem Smartphone aufrufen, beachte hierbei bitte, dass du im gleichen Netzwerk wie dein Entwicklungs-PC eingwählt sein musst, denn es handelt sich um eine lokale IP-Adresse.

Im TinySamples findest du noch weitere Unterordner mit verschiedenen Beispielprojekten, nimm dir also die Zeit und teste diese einmal intensiver.

Alle Anwendung im Überblick

  • AudioForest – Anwendung spielt Sounds ab
  • BasicWorkshop – 2D Raumschiff durch Galaxy steuern
  • DungeonZ – bei Test nicht funktionsfähig
  • FlyingYolk – Flappy Bird Kon
  • GalaxyRaiders – 2D Spiel: Mit einem Raumschiff Objekte abschießen
  • MatchThree – Candy Crush ähnliches Spiel
  • PhysicsDemo – Demonstration von verschiedenen physikalischen Eigenschaften
  • SimpleInput – Input über WASD (nur für Tastatur geeignet)
  • UILayoutDemo – Skalierung von UI Elementen testen
  • VideoDemo – Verwendung eines Videos

Maximale Projektgröße

Damit deine Anwender auch von den Vorteilen von Project Tiny gebrauch machen können, empfiehlt Unity eine maximale Dateigröße von 5MB für das gesamte Projekt. Project Tiny befindet sich aber noch in der Entwicklung und dies kann sich in Zukunft ändern, denn 3D Anwendung sind mit einer solchen Dateigröße sicherlich nicht realisierbar.

Expertentalk auf der GDC 2019

Nützliche Links

Tiny Mode Handbuch: https://docs.unity3d.com/Packages/com.unity.tiny@0.14/manual/index.html

Michael

Michael

Mein Name ist Michael Mark. Ich bin IT-Trainer und Gründer der Lernplattform nobreakpoints. In meinem Blog biete ich Tipps, Anleitungen und Beispiele für alle, die mit Hilfe von Unity Anwendungen erstellen möchten.