Team Bitforge am YB Hackathon

Die Bitforge-Devs programmieren mit Leib und Seele alle Arten von Apps und Augmented Reality-Anwendungen. Sei es bei der täglichen Arbeit für unsere Kunden im Office, am Abend für eigene Projekte oder sogar mal im Urlaub in Venedig, wenn sie keine Lust mehr auf den Touri-Trubel haben. Natürlich findet sich auch immer mal wieder Zeit, um an einem Hackathon teilzunehmen.

Vergangenes Wochenende war es nun wieder einmal soweit. Der Schweizer Fussball-Meister BSC Young Boys rief zum YB Hackathon und ein Bitforge-Team bestehend aus den drei Entwicklern Stefan, Rafi und Luca folgten dem Ruf.

Bitforge Hackathon AR Football game

Die Challenge: Augmented Reality-App

Nach einem etwas harzigen Start ins Abenteuer, der hauptsächlich der SBB zuzuschreiben war, trafen wir mit leichter Verspätung im Stade de Suisse in Bern ein. Zur Auswahl standen 10 Challenges, welche nach Vorlieben unter den teilnehmenden Teams verteilt wurden. Wie erhofft bekamen wir das einzige AR-Thema zugeteilt: “Augmented Reality Mix für besseres Stadion-Erlebnis”. Ziel der Challenge war es, den Stadion-Besuchern mittels Augmented oder Mixed Reality ein “neues Stadion-Erlebnis” zu verschaffen und diese per Smartphone stärker einzubinden. Für die Umsetzung inklusive Schluss-Präsentation hatte jedes Team 24 Stunden Zeit.

Die Idee: AR Air Hockey

Wo anfangen? Logisch: Zu allererst ging es an das reichhaltige und hochwertige Buffet, wo wir uns mit Essen eindeckten und bei einem kreativen Brainstorming Umsetzungs-Ideen besprachen.

Schlussendlich entschieden wir uns für ein sehr anspruchsvolles Projekt: Fans der sich gegenüberstehenden Teams sollten die Möglichkeit erhalten, parallel zum eigentlichen Spiel live im Stadion auch virtuell gegeneinander zu Spielen – und zwar dank Augmented Reality direkt auf dem Fussballfeld. Aufgrund des Zeitmangels wählten wir als Game Air Hockey. Dies in der Hoffnung, durch die eingeschränkte Funktionalität in der kurzen Zeit ein spielbares Resultat zu erhalten.

HoloKickAR entsteht

Eine der grössten Herausforderungen bei einem AR-Game ist natürlich der AR-Teil selbst. Diesen konnten wir jedoch dank umfangreicher Erfahrung plus/minus vom Bitforge AR-Template übernehmen. Was ansonsten etwa zwei Tage Arbeit bedeuten würde konnte so in wenigen Minuten erledigt werden. Dadurch stand bereits einmal eine gute Basis.

Zu Beginn fällten wir ein paar weitere Grundsatz-Entscheide. Da wir alle drei nur Android Devices dabei hatten war die Wahl der Plattform erstmal logisch. Ausserdem entschieden wir uns dazu, so viel wie möglich in Unity umzusetzen.

Für das Networking und das Network matchmaking verwendeten wir UNet. Obwohl UNet deprecated ist und Unity noch keine Nachfolge-Technologie releast hat, setzten wir aus Zeitgründen auf die veraltete Technologie. Ein Entscheid, den wir später noch bereuen sollten, denn das Thema Networking bereitete uns mit die grössten Probleme.
Die ganzen Physics entstanden mit PhysX engine, das AR basiert auf ARFoundation. Die verwendete Codesprache war C#.

Wenn die Tischkannte das Kopfkissen darstellt..

Die Übermüdung beginnt sich bemerkbar zu machen

Programmieren heisst Probleme lösen

Was uns neben der Wahl von UNet zusätzliche Schwierigkeiten bereitete war die Tatsache, dass wir uns auf ein sehr schnelles Spiel festgelegt hatten: Eine Verzögerung von einer Sekunde ist beim Schach kaum ein Problem, beim Air Hockey verunmöglicht es jedoch ein anständiges Spiele-Erlebnis. Mit Movement Prediction und einiges an Zeitaufwand konnten wir hier jedoch noch einiges herausholen.

Ebenfalls mehr Zeit als erhofft steckten wir in Git LFS, das einfach nicht aufhören wollte, auf verschiedenen Devices auf unterschiedliche Files zu zeigen. Chef-Mechaniker Stefan nahm sich dem Thema jedoch an und sorgte dafür, dass wir wieder sauber arbeiten konnten.

Was an einem Hackathon natürlich auch nicht zu unterschätzen ist machte uns auch diesmal irgendwann zu schaffen: Schlafmangel. Nach 20 Stunden vor dem Bildschirm trifft man nicht mehr die gleich guten Entscheidungen wie zu Beginn. Stefan gönnte sich deshalb irgendwann einmal 4 Stunden Schlaf, Luca verbrachte ein bis zwei Stunden mit Dösen am Tisch und Rafi zogs gleich ganz ohne zu schlafen durch: “Wenn die anderen schlafen arbeite ich am effizientesten, da ich einfach alles hochladen kann wie ich möchte.” OK, Rafi, OK..

Rafi war es dann auch, der zum Schluss den gesamten Code noch einmal durchging und umschrieb und so HolokickAR online-tauglich machte.

Projekt-Abschluss: Todmüde aber zufrieden

Pünktlich um 11 Uhr Mittags war Schluss mit Hacken. Jedes Team stellte ihre Lösung vor und eine Jury bewertete alle Projekte und kürte die drei Besten.

Obwohl es am Ende nicht für eine Auszeichnung reichte, sind wir sehr zufrieden mit dem Erreichten. Wir schafften es, innert 24 Stunden ein spielbares multiplayer AR-Game zu bauen und hatten gefühlt dabei auch noch den grössten Spass aller Teilnehmer.
Zum Verhängnis wurde uns, dass wir bis kurz vor Schluss noch an der Entwicklung unserer Anwendung arbeiteten und so die Vorbereitung für die Schluss-Präsentation etwas gar kurz kam.

Insgesamt nehmen wir jedoch extrem viel Positives mit aus Bern. Es herrschte eine sehr gute Atmosphäre bei uns im Team und auch bei den anderen Teilnehmern, das Essen war extrem gut und das Erlebnis, in der Dusche der Gastmannschaft duschen zu können war ebenfalls ein Highlight. A Propos Fussball: Der YB Hackathon war für Rafi die Gelegenheit, endlich mal ein Fussballstadion von innen zu sehen.

Nach so viel Positivem war klar, dass noch etwas kommen musste: Lucas Auto entschied sich dafür, vom Leben an sich genug zu haben und in Rauch aufzugehen. Somit endete ein sehr spassiges, produktives und erfolgreiches Wochenende leider negativ. Trotzdem war dies mit Sicherheit nicht der letzte Hackathon für Team Bitforge!

Das Resultat des Hackathons im Video.