Von Arnold Schlegel

Estimated reading time: 11 Minuten

Techblog

Smartphone AR beim Open Games Workshop der TUM

Wir waren Industrie-Partner beim Open Games Workshop am CAMPAR Lehrstuhl der Technischen Universität München. Trotz kurzfristiger Planänderungen wegen Corona sind drei tolle Spiele für Smartphone AR entstanden. Im Blog-Artikel bespreche ich die Ergebnisse und unsere Bewertungskriterien. Vorher gibt es einen Überblick zu Smartphone AR.

Techblog

Zurück an die Uni

Ein Highlight meines eigenen Studiums war der Open Games Workshop von Dr. Wolfgang Höhl (damals noch am Lehrstuhl für Medieninformatik der Ludwig-Maximilians-Universität München). Der Workshop war cool, weil wir in Arbeitsgruppen selbst eine XR-Lösung bearbeitet haben. Unser Case damals war das Handtracking mit Intel RealSense Kamera.  

Im Sommersemester 2020 kehrte ich in den Workshop zurück – als Case-Geber, denn ich hatte meine Kollegen bei MaibornWolff überzeugt, den Open Games Workshop als Industriepartner zu begleiten. Nur war der Workshop dieses Jahr am CAMPAR-Lehrstuhl der Technischen Universität München (CAMPAR steht für Computer Aided Medical Procedures & Augmented Reality). Wir hatten ursprünglich je einen Case für AR und VR vorbereitet, wegen Corona schwenkten wir spontan um: weg von zwischen mehreren Menschen geteilten VR-Brillen hin zu Smartphone AR Cases, die die Studierenden remote und am eigenen Gerät ausprobieren konnten.  

Smartphone AR – das nächste große Ding? 

Auch wenn die Beschränkung auf Smartphone AR die Auswahloptionen der Studierenden eingeschränkt hat, sehen wir bei Smartphone AR großes Potenzial.  

Prinzipiell unterstützen alle verfügbaren iOS Smartphones (mit ArKit) und alle aktuellen Android Smartphones ab Android 7 (mit ArCore) Augmented Reality. Damit sind die Endgeräte schon weit verbreitet, während AR-Headsets im Moment noch nicht ohne weiteres erschwinglich sind. Und Smartphones sind performant genug, um auch komplexere Augmentierungen anzuzeigen. 

Einige AR-Anwendungen machen es schon vor. Die bekannteste ist Pokemon Go. Das Spiel hat in vielerlei Hinsicht Rekorde gebrochen, und ist anhaltend beliebt. Ebenso bekannt sind die Filter in SnapChat. Andere AR-Apps vermessen Räume (Measure App), oder geben Shopping Support: So kann man über die Ikea App mit Smartphone AR Möbel testweise zu Hause platzieren. Das dient nicht nur dem Stilcheck, sondern hilft durch Augmentierung in Original-Größe zu prüfen, ob ein Möbelstück passt. Google legt in Google Maps eine AR Navigation (Link) nach. Und auch im Trainingsbereich kann es eine Alternative sein, um Handgriffe zu lernen, oder bei Reparaturen zu unterstützen.  

Bevor ich die entstandenen Projekte zeige, ein Blick auf die technischen Hürden für Smartphone AR:

Kameraqualität und Positionierung: Prinzipiell funktioniert AR umso besser, je ausgereifter die verbauten Kameras des Smartphones sind und je leistungsstärker der Prozessor ist. Je schlechter ausgestattet das Smarthone hier ist, desto eher kann es zu Drifts kommen, das heißt, die Augmentierung bleibt nicht auf dem Platz, sondern ruckelt oder „fährt“ langsam weg. Hier ist die Hoffnung, dass statt einfacher RGB-Kameras vermehrt Time-Of-Flight-Kameras verbaut werden (siehe Projekt Tango), oder dass Smartphones mit einem Lidar Sensor versehen werden, wie das iPad Pro. 

Smartphone als „gehaltenes Gerät“: Das zweite Problem ist die Tatsache, dass das Smartphone in der Hand gehalten werden muss: Gerade bei komplexeren Trainings braucht es beide Hände, zum Beispiel, um als Mechaniker einen Arbeitsschritt zu trainieren. Für diese Fälle wird das Smartphone wohl nicht ausreichen. Davon abgesehen, sehe ich in Smartphone AR eine gut einführbare und erschwingliche Alternative zu AR-Headsets.  

Genug Gründe also, um uns auf die Kreativität der Studierenden bezüglich Smartphone AR zu freuen.  

Die Projekte

Ablauf des Workshops 

Zu einen guten Neueinstieg gehört der Überblick über die Tools, mit denen die Studierenden arbeiten werden. Deswegen starteten meine Kollegen Dimitri Hein und Daniel Irmler mit diesen technischen Tutorials die Grundlage für das selbständige Arbeiten in den Gruppen:  

  • ArCore: Augmented-Reality-Plattform von Google, mit der AR Anwendungen für Android Smartphones entwickelt werden können (mehr hier). Für iOS gibt es die ArKit Platform. Unity bietet ARFoundation für verschiedene AR Plattformen an, damit können Anwendungen für mehrere Plattformen wie ARCore, ARKit, MagicLeap und HoloLeans implementiert werden. 
  • Google Cloud Anchors: Technologie von Google, mit der Anchors zwischen verschiedenen Geräten geteilt (sharing) werden können. Damit sehen alle User die gleiche Augmentierung an der gleichen Stelle in der realen Umwelt (mehr hier).
  • Oculus Quest: Mobile VR-Brille von Oculus/Facebook, kein Zuspielgerät notwendig. System on Device (Link zu Infos).
  • Multiplayer Games Entwicklung mit Unet. Unet ist eine Multiplayer Networking Api von Unity. Damit ist es möglich Multiplayer Spiele/Anwendung zu implementieren, z.B. Spieler Positionen teilen (Details hier). Als Alternative dazu gibt es Photon (Details).

Zusätzlich haben wir den Studierenden als Inspiration XR-Anwendungen gezeigt, die wir für Kunden bauen. 

Dann starteten die Studierenden in drei Gruppen mit der Entwicklung eines Spiels auf Grundlage von ArCore. Dafür hatten sie 6 Wochen Zeit. Die Ergebnisse sind übers ganze Gaming-Spektrum verteilt, vom gleichnamigen Serious Game über den kampagnenfähigen Magie-Shooter ORT Magic bis zur Simulation Emergen3D – alle als Smartphone AR. 

ORT Magic 

Hinter ORT Magic versteckt sich ein Magie-Spiel mit Strategie-Elementen: Gesten lösen verschiedene Zauber aus, die auf einen KI-Gegner wirken. Das Spielziel ist es, den Turm des Gegners zu zerstören. Das Spiel ist im Kampagnen-Modus angelegt, mit fortschreitender Kampagne werden immer mehr Fähigkeiten und Zaubersprüche freigeschaltet. 

Die erste Aufgabe beim Start eines Spiels ist es, den Gegner in der abgegrenzten Welt zu finden.  

Als Kampfelemente gibt es Feuer- oder Blitz-Zauber und das Beschwören von sogenannten „Creeps“. Creeps sind kleine Monster, die durch die Welt navigieren und gegnerische Creeps angreifen.  

Richtig toll finde ich die Idee, wie die Creeps sich finden: Die Creeps der KI sind negativ geladen und die eigenen Creeps positiv. Durch die entgegengesetzten Ladungen ziehen sich die Creeps in der Welt quasi an und bekämpfen sich gegenseitig. Erst wenn keine gegnerischen Creeps mehr da sind, greifen sie den gegnerischen Turm an. 

Das Beispiel mit den Creeps zeigt: Das Team hat sich sehr viele Gedanken um die Spielmechaniken gemacht und sie gut umgesetzt – und das finde ich super! 

Hier zwei Screenshots als Eindruck:

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Falls Du hier nichts siehst, schaue hier auf YouTube und hier.

Emergen3D 

Das Spiel simuliert Notrufe an Polizei, Feuerwehr oder den Rettungsdienst. Das Ziel ist es, die Avatare in einer AR-projizierten Stadt ruhig zu halten. Dazu kann der Spieler oder die Spielerin Einheiten zu Notfällen schicken und ihnen Aufgaben zuweisen. Die Spieler_innen müssen dabei Ressourcenmanagement betreiben, denn es gibt nur eine begrenzte Anzahl an Einheiten bzw. Einsatzwagen.  

Technisch fiel hier die schöne Lösung für die Mindestskalierung der Welt auf, die mit Navmesh in Kombination von ArCore erreicht wurde.  

Was mir außerdem sehr gut gefallen hat, ist die Liebe zum Detail und die einfache, aber sehr harmonische Grafik: Die Avatare kommen in Minion-Optik daher und jeder Charakter hat einen eigenen Namen – das erzeugt emotionale Immersion. Für einen abwechselnden Spielverlauf sind viele Notfallvarianten implementiert und es gibt richtig viele Spielmodi, zum Beispiel EndlosGame, 5-Minuten, reine Feuerwehr-Einsätze oder reine Polizei-Einsätze. Sehr gelungen! 

Hier wieder ein paar Eindrücke. Solltest Du nichts sehen, findest Du das Material auf YouTube hierhier und hier.

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

AR Workspace 

Die dritte Einreichung ist ein sogenanntes „Serious Game“, das einen Workspace über AR erweitert. Konkret kann dieser Spieler oder diese Spielerin Notizen, einen Timer oder ein Whiteboard mit initialem Inhalt in der AR platzieren; die Augmentierungen werden in einem Inventar gespeichert und können jederzeit „herausgeholt“ und in jeder weiteren Welt platziert werden.  

Die technische Grundlage für dieses Projekt war zügig umgesetzt. Bei diesem Projekt überzeugen Idee und die Vision von Arbeiten in Zukunft. Außerdem haben die Studierenden richtig viel Wert auf die Entwicklung der sehr hochauflösenden Assets gelegt. Whiteboard, Timer und Notizen kommen so realistisch rüber. 

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Wenn Du hier nichts siehst, schaue bitte auch hier rüber zu YouTube.

Verblüffende Projekte in kurzer Zeit – bei guter Code-Qualität 

Mein nachhaltiger Aha-Effekt aus diesem Workshop ist, wie viel ein engagiertes Team in wenigen Wochen umsetzen kann: In wenigen Wochen sind richtige kleine Spiele entstanden, die Lust auf mehr machen. Was ich außerdem spannend finde, ist die entstandene Vielfalt: Jede Anwendung basiert auf der gleichen Grundtechnik: plane detection mit Smartphone AR. Daraus entstehen drei komplett unterschiedliche Anwendungen, die ganz verschiedene Interaktionsmöglichkeiten nutzen: Gesten wie die Zauber in ORT Magic, Interaktion mit Menü (GUI) für die „Einsatzplanung“ bei Emergen3D oder die Interaktion mit der Welt, z.B. die klickbaren Figuren bei Emergen3D und AR Workspace.  

Ich fand auch die Leistungen bei Spielekonzept und Umsetzung gelungen: In ORT Magic ist eine agentenbasierte Navigation für die Creeps implementiert, die sich überall in der Welt (vorausgesetzt auf der gleichen Ebene) finden und bekämpfen können – eine gut durchdachte Lösung, finde ich! Auch das komplette Kampfsystem mit dem kleinen Kampagnenmodus hat mich überzeugt. Bei Emergen3D hat mich sehr überrascht, dass das Team so viele Notfälle als UseCases implementiert hat: Es gibt Einheiten für Feuerwehr, Notarzt und Polizei, und jede Einheit kann noch verschiedene einzelne Tasks übernehmen, z.B. Brandbekämpfung oder den Unfallort sperren. Diese Vielfalt zu konzipieren und umzusetzen ist auch für eine prototypische Anwendung oder ein MVP beeindruckend. Das zeigt, wie viel Zeit und Herzblut die Studierenden ins Projekt gesteckt haben. Das spiegelt sich dann natürlich auch im Ergebnis wider. 

Schön finde ich auch, dass alle drei Spiele das Potenzial zur Erweiterung auf eine Collaboration-Anwendung haben. Diese Anforderung war ursprünglich Teil der Aufgabenstellung. Da das in der Regel etwas mehr Zeit und Abstimmung braucht, haben wir die Anforderung wegen der Arbeitssituation während Corona (die Gruppen konnten nur remote arbeiten) etwas abgespeckt. Umso schöner, dass alle drei realisierten Apps trotzdem das Zeug zur Mehr-Spieler-Nutzung mitbringen. 

Jetzt interessiert mich als Software Engineer AR/VR natürlich nicht nur das Ergebnis, sondern auch die Code-Qualität – und die war bei allen drei Apps sehr gut, gerade für studentische Projekte mit Prototypen-Charakter. Ich habe richtig schöne Anwendungen von Clean Code gesehen, Code, der OOP sauber einsetzt, und sinnvolle Package-Strukturen. Bei einer Gruppe war zum Beispiel jede Funktion klar und klein gehalten, sodass die Funktion nur das tut, was der Name verspricht. Bei einer Gruppe hatte ich zusätzlichen Spaß beim Code lesen, da die Debug Logs mit den witzigen Kommentaren wie „What the sh**?!?“ oder „Noch nicht implementiert. Bitte sei nicht böse …“ daherkamen. Fertiger wird’s dadurch zwar nicht, aber wenigstens war sicher der Schreiber oder die Schreiberin bewusst, dass jemand das vermissen könnte.  

Bei einer Gruppe ist mir explizit aufgefallen, dass sie Konzepte von Unity richtig gut umgesetzt haben, zum Beispiel:  

  • Sinnvoller und korrekter Einsatz von Prefabs: vorkonfigurierte GameObjekte, die in allen Unity Szenen/Levels wiederverwendet werden können 
  • Verwendung von Tags und Layer zur Findung von bestimmten GameObjekt Kategorien z.B. Player, Enemy, Environment etc. Wird häufig bei Kollisionserkennung verwendet, um zu prüfen ob eine Kollision zwischen einer Kugel und einem Gegner oder dem Spieler stattfand etc. 

Teilweise wurde auch schön knapp dokumentiert – und spätestens da geht ja vielen Projekten die Luft aus.  

Inspiration und Spaß

Unser Fazit im vierköpfigen Trainer-Team nach 7 Wochen: Der Open Games Workshop hat auch als Fallgeber richtig Spaß gemacht. Nicht zuletzt, weil wir neben Projektalltag viel Inspiration bekommen haben: wissbegierige und engagierte Studierende, die in der Corona-Zeit flexibel bleiben, und trotz Beschränkungen ganz verblüffende Projekte abliefern. Nicht zuletzt war die Kooperation mit meinem ehemaligen Dozenten Dr. Wolfgang Höhl sehr angenehm – wir würden das gern wiederholen.


Über den Autor

Von Arnold Schlegel