Let's get virtual

Welk project we tijdens het JIDOKA Hackathon-weekend wilden doen was geen moeilijke beslissing. Lang geleden werden we gevraagd om een kennisavond over Unity 3D te geven. We moesten onze kennis over Unity afstoffen. In die tijd werd ons kantoor verbouwd, dus leek het ons een goed idee om het kantoor in Mechelen te modelleren met Unity.

Toen we klaar waren met het opfrissen van onze kennis en een eerste ontwerp van het project hadden, presenteerden we het met trots aan onze medewerkers. Toen lieten we het aan onze HR-manager en CTO zien. Ze vonden het een coole manier om één van onze kantoren op jobbeurzen te presenteren. Zo is JDK-Offices ontstaan.

Doelen die we hadden gesteld

De eerste versie van JDK-Offices die we hebben gemaakt had nog wat kleine foutjes en kon er nog wel wat mooier uitzien. Het eerste doel dat we voor ogen hadden was dus het (her)ontwerpen van ons project.

De volgende stap was om enkele gebruikersinteracties te implementeren. Net als vóór de hackathon kon de speler alleen in het virtuele kantoor rondlopen, maar was hij niet in staat om met de omgeving te communiceren. Ons eerste plan voor interactie was om een aantal easter eggs te implementeren. Niet je gewoonlijke chocolade eieren, maar onverwachte of ongedocumenteerde functies in een stukje computersoftware, als grapje of als bonus inbegrepen.

Het laatste wat we wilden doen was een contactformulier implementeren. Zo konden mensen van de jobbeurs hun contactgegevens achterlaten als ze dat wilden.

Maar toen de hackathon begon, verraste onze CTO ons met een Oculus Quest VR headset en onze prioriteiten veranderden een beetje. Allereerst moesten we ons richten op de huidige versie van het project correct te ‘deployen’ naar onze nieuwe Oculus Quest. Ten tweede zou het zonde zijn om geen gebruik te maken van de functies van een VR-headset zoals de controllers. Toen deze twee concepten eenmaal gerealiseerd waren, konden we verder gaan met ons oorspronkelijke plan.

De Oculus Quest VR-headset

Het project opzetten

Met de start van de hackathon achter ons en ons nieuwe speelgoed voor ons, begonnen we ambitieus te onderzoeken hoe we de Oculus-zoektocht binnen Unity 3D zouden kunnen gebruiken.

Omdat we nog nooit met de Oculus Quest hadden gewerkt, moesten we eerst onderzoeken hoe we met dit apparaat een Unity 3D project konden opzetten. We leerden al snel dat Unity out-of-the-box ondersteuning had voor hun nieuwste versie. Nadat we een aantal kleine technische problemen hadden opgelost tijdens het installeren van deze versie, vonden we veel interessante middelen die bij de Oculus Quest integratiemiddelen werden geleverd. Dit omvatte de benodigde scripts voor het basisgebruik van het apparaat, zoals het grijpen van objecten.

Interessante middelen die bij de Oculus Quest integratiemiddelen werden geleverd.

Ons bestaande project was niet ontworpen om gebruikt te worden met de Oculus quest, maar het leek niet veel werk om dit te doen. Dit komt omdat je met de bouwtool gemakkelijk een Unity-project kan bouwen naar verschillende platformen. Door een aantal technische problemen moesten we echter ons bestaande project kopiëren naar een nieuw project en van daaruit bouwen.

Ook al zijn we niet zover gekomen als we wilden, het aan de gang krijgen van het bestaande Unity 3D project op de Oculus quest was ons eerste doel, wat al een grote overwinning was.

Vorderingen maken

Omdat je op een hackathon maar beperkte tijd hebt, wilden we het ontwikkelingsproces versnellen. Bijgevolg kozen we ervoor om het werk op te splitsen. Eén developer die zich richt op het ontwerpen van een landingsruimte met een menu waar je kunt kiezen welk kantoor je zou bezoeken. De andere developer richtte zich op het zoveel mogelijk gebruiken van de Oculus Quest en het creëren van de interactie met andere objecten in het Mechelse kantoor. 

We wilden zoveel mogelijk feedback. Daarom lieten we onze collega’s alle nieuwe functies testen. Sommige collega’s hadden echter last van bewegingsziekte bij het verplaatsen van het spelersmodel in de omgeving. Dit wilden we uiteraard zo snel mogelijk oplossen, omdat het project hierdoor minder bruikbaar werd voor jobbeurzen.

De nieuwe functies uittesten

We hebben wat onderzoek gedaan naar hoe we dit probleem konden oplossen. Eén van de oplossingen was om het spelersmodel te teleporteren in plaats van het te verplaatsen met de controller. Om dit te doen heeft de developer die zich richt op de interactie een aantal tutorials gevolgd. Toen we dit probeerden te implementeren, kwamen we erachter dat het niet zo eenvoudig was als de tutorial liet zien. We kregen het niet volledig functioneel. Omdat we dachten dat het te veel tijd zou kosten om alles te laten werken, moesten we de beslissing nemen om ons meer te richten op de interacties met de spelobjecten.

Op het einde hebben we de landingsruimte aan het project toegevoegd met de interacties. We kregen een werkend prototype dat met de joystick door het kantoor kon lopen. Het kon ook voorwerpen grijpen en zelfs gooien. Zeer degelijk werk voor de tweede dag wat ons uiteraard behoorlijk trots maakte.

De landingsruimte werd toegevoegd aan het project.

Voor elke hackathon moet je meestal een pitch van je project doen. Omdat we het grootste deel van onze tijd hebben besteed aan het ontwerpen, gebruikten we de rest van onze tijd om ons voor te bereiden op de pitch.

Voorbereiding op de pitch van het project.

Conclusie

Wat we uiteindelijk hebben geleerd van deze hackathon is dat dingen misschien niet gaan zoals gepland. Dat is echter iets waar je geen controle over hebt. Maar zelfs met alle tegenslagen hebben we toch nog iets representatiefs gekregen en hebben we veel gelachen met de Oculus. Het was geweldig om de reactie van de mensen te zien.

Event sourcing in een legacy systeem – Deel 1 – Context is koning

Lees meer
event-sourcing background

Mijn stage bij JIDOKA

Lees meer
Blog banner

Pardon? Een PWA?

Lees meer