21. April 2021 von
Mal Dir Deine Welt mit WorkAdventure – Ein Erfahrungsbericht
Der französische Hersteller TCM erfand als Antwort darauf eine Open-Source-Plattform namens „WorkAdventure“. Darin lässt sich jeder Ort als 2D-Videospiel nachbauen. Laufen sich zwei Spielfiguren über den Weg, dann legt sich ein Videochat über das Bild, sodass man einander hören und sehen kann. User, die spezielle Sammelflächen betreten, finden sich automatisch in einer eingebetteten Konferenz wieder. Bleibt man vor einer Pinnwand stehen, öffnet sich der angepinnte Zettel als Webseite. Mit Soundstreams, die auf Flächen hinterlegt werden, lässt sich sogar das Geräusch der Kaffeemaschine nachempfinden. Durch „Türen“ in andere Räume entstehen mehrstöckige Bürohäuser oder beliebig komplexe Labyrinthe.
Das System baut auf den Standard WebRTC. Dadurch verursacht es kaum Serverlast: Die Spielfiguren in einem Raum teilen sich ihre Positionen mit, die Videochats streamen direkt von Browser zu Browser. Für größere Besprechungsräume wird ein externer Jitsi-Server eingebunden.
Bis vor wenigen Monaten war WorkAdventure weitgehend unbekannt. Einen Schub an Entwicklung und Popularität gewann es im Dezember 2020, als der Chaos Computer Club die Plattform forkte, im Eiltempo ausbaute und als virtuelle Event Location für seinen Jahreskongress einsetzte. So durften die Gäste nicht nur fast wie gewohnt durch bunte Hallen schlendern und Leute treffen, sondern auch eigene Räume an die Messehalle andocken. Durch Querverbindungen der mitgebrachten Welten entstand ein wirrer Irrgarten, in dem man tagelang Neues entdecken konnte und in dem am Ende niemand alles gesehen hatte.
Seit die Features und Bugfixes aus der winterlichen Großaktion in die Original-Software übernommen wurden, entstehen neue Einsatzfelder: Künstlerisch versierte Lehrende zeichnen Lerninseln für den Remote-Unterricht, in denen die Kinder Aufgaben und Lösungen aktiv suchen. Vereine digitalisieren ihre Clubräume, um sich virtuell auf ihren Stammplätzen zu treffen. Es gibt bereits Ansätze für ein „Internet of Gardens“, für das Gemeinschaftsgärten ihre Beete nachzeichnen, um einander zu besuchen oder etwa die derzeit nur einzeln möglichen Arbeitseinsätze „vor Ort“ zu besprechen. Sogar eine Kirche in Husum hat sich als Spiel digitalisiert, um virtuellen Konfirmandenunterricht durchzuführen. Für die letzten Chemnitzer Linuxtage wurde ein komplettes Kongresszentrum mit Messeständen und Vortragssälen gepixelt.
Auch die Entwickelndengemeinde bleibt dran. Da TCM nicht alle Änderungen aus der Szene übernimmt, haben Enthusiasten den Community-Fork „WorkAdventure XCE“ abgezweigt. Das Projekt wird regelmäßig mit dem Originalcode synchronisiert und ergänzt ihn um alle frei entwickelten Verbesserungen.
Die in TypeScript geschriebene Software kommt mit einem Docker-Compose das vier Container startet. So kann jeder leicht und kostengünstig eine eigene Instanz betreiben. Eine Jitsi-Installation ist allerdings nicht enthalten, hierfür muss ein vorhandener Server eingebunden werden. Aber da WorkAdventure im Gegensatz zu Jitsi sehr sparsam mit Ressourcen umgeht, erfordern die höchst unterschiedlichen Hardware-Anforderungen ohnehin getrennte Maschinen.
Von der Idee zur Pixelwelt: So haben wir eine adesso Geschäftsstelle in WorkAdventure nachgebaut
Wie kommt eine Welt aus dem Kopf ins 2D-Spiel? Am Beispiel der virtuellen adesso Geschäftsstelle Hannover soll das demonstriert werden. Ein Raum – die sogenannte Map – besteht aus quadratischen Kacheln von je 32 Pixeln Kantenlänge. Jede Kachel wird mit einem Bild aus einer Auswahl kleiner Grafiken – dem Tilesheet – belegt. Damit auch transparente Tiles zur Geltung kommen, können beliebig viele Ebenen gestapelt werden.
Zunächst sollte man kurz überlegen, wie die Umgebung aussieht: Fußboden, Wände, eventuell Türen und Fenster. Dazu Inventar, Gegenstände, Pflanzen. Viele passende Tilesheets findet man als Creative Commons. Was nicht bereits im Netz kursiert, muss selbst gepixelt werden. Dafür eigenen sich freie Grafikprogramme wie z.B. GIMP oder Krita. Am besten legt man ein 32px-Raster über die Grafik und malt es so aus, dass jede Zelle von maximal einem Bild belegt ist. Das Tilesheet wird einfach als PNG-Datei gespeichert. Für die virtuelle Geschäftsstelle reichten die Tilesheets aus dem WordAdventure-Starterkit vorerst aus – was zukünftige Verschönerungen mit eigenen Bildern freilich nicht ausschließt.
Aus den fertigen Tilesheets wird nun wie aus Legosteinen die 2D-Welt zusammen geklickt. Dafür eignet sich der kostenlose Editor Tiled. In Tiled legt man zuerst die Größe der neuen Map in Anzahl Kacheln fest. Anschließend lassen sich Ebenen anlegen, etwa eine Bodenebene für Teppich und Wände, eine Inventarebene für die Möbel und so weiter. Jede Ebene lässt sich mit Kacheln aus beliebig vielen Tilesheets ausmalen. Die Map wird als JSON-Datei inklusive aller Tilesheet-Informationen gespeichert. Später müssen nur die PNG-Dateien und eine JSON-Datei veröffentlicht werden, schon lässt sich die Map auf jeder beliebigen WorkAdventure-Instanz bespielen.
Die Interaktion zwischen User und Map wird von speziellen Ebenen gesteuert. So legt das leere Floor-Layer fest, wo sich die Spielfiguren vertikal aufhalten. Über darunter liegende Ebenen läuft man hinweg, darüber liegende verdecken die Figur. Auf einem Start-Layer ist nur die Kachel gefüllt, auf der die Figur zu Spielbeginn auftauchen soll; der Name des gewünschten Start-Layers wird später an den URL angehängt, um an einer bestimmten Stelle ins Spiel zu springen.
Wichtig sind sogenannte Kollisionen. Sie verhindern, dass Figuren durch Wände laufen oder aus dem Fenster springen. Ob eine Kachel kollidiert, also nicht betreten werden kann, wird mit der Eigenschaft „collides“ direkt im Tilesheet festgelegt. Die Erfahrung zeigt jedoch, dass es oft wenig nützlich ist, feste Tiles immer kollidieren zu lassen. Praktikabler ist, ein unsichtbares Tile festzulegen, das als einziges nicht betretbar ist. Damit lassen sich auf einer ausgeblendeten Ebene die gewünschten Kollisionen einfach aufmalen und jederzeit nachträglich ändern.
Um zusätzliche Information einzublenden, kann eine Ebene mit der Eigenschaft „openWebsite“ verwendet werden. Wenn ein User eine Kachel dieser Ebene betritt, öffnet sich am rechten Bildschirmrand der darin hinterlegte URL. Während mehrere Leute die Website lesen, ist es eventuell störend, wenn sich dabei der WebRTC-Videochat öffnet. Um ihn zu unterdrücken, gibt es die Ebenen-Eigenschaft „silent“: Auf Feldern, die in einer Silent-Ebene mit einem Tile gefüllt sind, können keine neuen Videochats beginnen.
In Teeküche und Besprechungsraum sollen mehr Leute gleichzeitig reden, als in den Overlay-Chat passen. Dafür markiert man eine Ebene mit der Eigenschaft „jitsiRoom“ und trägt den Namen des Raums ein. Betritt jemand eine Kachel dieser Ebene, so schiebt sich die gleichnamige Jitsi-Konferenz als Frame über die rechte Bildschirmhälfte.
Hat das Gebäude mehrere Etagen oder Übergänge in andere Häuser? Wollen wir vielleicht versteckte Kammern einbauen? Dafür gibt es die Ebenen-Eigenschaft „exitUrl“, in der ein URL einer anderen Map hinterlegt wird. Sobald man eine auf dieser Ebene gefüllte Kachel betritt, verwirft WorkAdventure die aktuelle Map, lädt die neue und platziert die Spielfigur auf einer Kachel des im URL enthaltenen Start-Layers.
Jetzt fehlt noch die typische Geräuschkulisse. Auch sie darf für jeden Ort passend eingestellt werden, und zwar mit der Ebenen-Eigenschaft „playAudio“ bzw. „playAudioLoop“, die den URL einer MP3-Datei enthält. Wer eine Kachel dieser Ebene betritt, hört den passenden Sound.
Jetzt kann die fertige Map veröffentlicht werden. Dafür werden die JSON- und PNG-Dateien auf einen beliebigen Webspace hochgeladen. Der Start-URL der Map lautet nun „https://[WA-Instanz]/_/global/[meinUrl]/meineMap.json“.
Grundsätzlich lädt jede Instanz jedes Map-JSON, doch nur die User auf derselben Instanz sehen einander. Man verabredet sich also nicht nur im gleichen Raum, sondern auch auf dem gleichen Server. Um einander nicht zu verpassen, haben sich Kurz-URLs und Weiterleitungen etabliert, besonders gern unter der Domain .world. So ist zum Beispiel der Treffpunkt des Vereins „KrautSpace“ unter https://kraut.world zu finden.
Die Möglichkeiten von WorkAdventure sind zwar begrenzt, beeindruckend ist jedoch die Einfachheit, mit der Welten gezeichnet und miteinander verbunden werden können. Das XCE-Projekt wird die Entwicklung neuer Features beschleunigen. Die Relevanz der Plattform wächst aktuell ständig, sodass es sich auf jeden Fall lohnt, sie im Auge zu behalten.