MeetMe@Mediapark

About the project

MeetMe@Mediapark is een van de projecten waar ik aan heb gewerkte tijdens mijn tijd bij xr-lab. Het doel voor dit project was een manier bouwen om op een network-event mensen kennis te laten maken met een lage drempel. Wij hebben gekozen een geo-guesser game te bouwen voor het Mediapark waar in VR 2 spelers moeten overleggen waar ze zijn in het mediapark.

A

Game

Rider, Unity

C#

Lead developer

TRAILER

Networking

Omdat het een 2 speler game was in VR trokken we snel tot de conclusie dat we waarschijnlijk iets met networking moesten doen. Na het uitdenken van verschillende concepten zijn we aan de slag gegaan met basic-VR opzetten en kijken welke networking solutie we zouden gebruiken. Nu was er ongeveer 2 maanden voordat we dit project begonnen unity netcode for GameObjects uitgekomen. Dit is unity's eigen networking solutie waar we uiteindelijk voor zijn gegaan.

Player spawning

Voor de speler spawning hebben we een eigen systeem geschreven dat hun een locatie geeft zodat ze niet in elkaar spawnen, verder hadden we een issue waar de server controllen had over de controllers, of de controllers niet goed mee bewogen. Helaas was het niet zo simpel als de controller script uit of aan te zetten aangezien het object uitzetten niet werkte. hiervoor was de oplossing uiteindelijk vrij makkelijk waar we de controllers standaard uit hebben en aanzetten op het moment dat we weten voor welke speler het is.

Networked VR grabbing

Om de game makkelijker te maken hebben we objecten met hints / feitjes toegevoegd over de locatie. De hint object kon vast gepakt worden om de hint aan de onderkant te lezen. Echter was vastpakken nog niet zo makkelijk omdat er 2 spelers zijn dus welke speler kan/mag hem pakken en wie regelt de physics van het object wanneer hij los wordt gelaten. Dit was nog niet zo'n makkelijke oplossing waar ik uiteindelijk voor een systeem ben gegaan waar de server ownership heeft wanneer niemand het object vast heeft en anders heeft de client die hem vast heeft ownership en regelt het object.

The map

Een van de belangrijkste delen van de game was de map, hoe bepalen we waar we zijn in vergelijking tot de 360 grade foto? De berekening hiervoor is uiteindelijk vrij makkelijk waar we een positie hebben op de map via een value tussen 0-1. Hier bereken we de afstand tot jou positie wat ook weer een value is tussen 0-1. Om het plaatsen van punten makkelijker te maken heb ik een editor window geschreven dat een map texture gebruikt en de punten opslaat in een scriptable object, Deze kan je dan makkelijk heen en weer bewegen om hem goed te plaatsen. Voor de map zijn we uiteindelijk gegaan voor een mini 3d versie van het mediapark zelf.

Design

Een van de doelstellingen van het project was dat het anoniem zou zijn. Deste verder we in het project kwamen hoe duidelijker het werdt dat dit niet haalbaar zou worden. We wouden dat het anoniem zou zijn zodat er geen voor oordelen zouden zijn, maar je kan een redelijk goed maken van iemands stem alleen. Verder hadden we ook niet genoeg ruimte op het evenement om de 2 spelers uit elkaar te houden. Hierdoor was laten samen met de klant besloten het anoniemen weg te halen.

Polish

Een van de dingen waar ik super trots op ben is het level polish dat we hebben weten te bereiken in dit project. Waar we kleine subtiele animaties zoals het animeren en tweenen van de placement-flag of physics op de stropdas van het speler model. We hebben elke sprint ons best gedaan op de zorgen dat de mechancis goed voelen, er mooi uitzien en natuurlijk satisfying geluid heeft.

Lobby

Aangezien ons project voor het Mediapark was hadden wij besloten als lobby het Joop van den Endeplein na te maken. Dit plein ligt centraal in het Mediapark en wordt door grote deels van de bezoekers gebruikt. Dit gaf de spelers gelijk een goed herkennigs punt dat het in Mediapark is. Als de game starten ging de lobby weg en veranderde we skybox naar 360 degree images.