Geodata in games


“Abstracte processen waar mensen slecht een beeld bij hebben, maar waar wel datasets van beschikbaar zijn – dat biedt mogelijkheden voor serious games.”

Wie zijn toch die mensen die bruggen bouwen tussen wetenschap, techniek en maatschappelijke vraagstukken? Daarover voelen we de komende tijd teamleden en samenwerkingspartners aan de tand. In dit artikel: Sietse Hoekstra – Lead Software Engineer bij 8D Games – over het gebruik van geodata in games. Aan de hand van onze educatieve game The Lost Collection vertelt hij meer over de mogelijkheden van openbaar beschikbare datasets, ‘euclidean space’ en meshes.

Allereerst: geografische data is ‘informatie met een ruimtelijke component’. Een bekend voorbeeld: de kaarten van het Kadaster, waarop precies te zien is waar een bepaald perceel begint en eindigt. Maar er zijn inmiddels nog véél meer geo-datasets gedigitaliseerd en openbaar beschikbaar, bijvoorbeeld via het Nationaal Georegister. Denk aan informatie over onze binnenwateren, verschillende bodemtypes of hoogteverschillen in het landschap. 

Datasets en gaming

Informatie met een ruimtelijke component kán heel goed van pas komen bij het ontwikkelen van games. Wat moeten we ons daarbij voorstellen? Sietse: ‘Een recent voorbeeld waaraan ik heb gewerkt is The Lost Collection, een game die we ontwikkelden voor Geopark de Hondsrug en Terra.Vita. Aan de basis van de game ligt een kaartsysteem; spelers gaan op zoek naar verschillende locaties in de geoparken met behulp van een 3D-kaart op hun smartphone. Wat je ziet op de kaart overeen met de werkelijkheid; je ziet de weggetjes, eventuele bebouwing en het grondtype. Ook zie je hoe ver je van je doelbestemming verwijderd bent en beweegt de kaart met jouw activiteit mee.’ 


Impressie van The Lost Collection, een educatieve game voor Geoparken de Hondsrug (NL) en Terra.Vita (DU). De game brengt informatie over de ijstijdengebieden op een speelse manier over aan de hand van een custom kaartsysteem.

Bij het bouwen van het kaartsysteem kwamen heel wat keuzes kijken. Te beginnen met het vinden van een geschikte dataset om in het project te integreren. ‘Er waren een aantal wensen van de opdrachtgevende partij waarmee ik rekening heb gehouden in het selecteren van een dataset. Het spel moest bijvoorbeeld ook offline werken – op sommige plekken in het gebied is geen goed bereik – en de kaart moest de gebruiker alleen maar langs veilige locaties loodsen, zonder dat er gewandeld zou worden op plekken waar dat niet goed is voor de natuur.’

‘Uiteindelijk heb ik gekozen voor een dataset van OpenStreetMap genaamd Planet.osm. De dataset kan – afhankelijk van de representatie – meer dan een terabyte aan informatie bevatten. Met behulp van BBBike heb ik een uitsnede gemaakt van het benodigde gebied en gerepresenteerd als GeoJSON. Dit om gemakkelijker met de data te kunnen werken. Een voordeel van zo’n rauwe dataset is dat je na het downloaden niet meer afhankelijk bent van een derde partij, zoals Google. Stel dat Google besluit opeens een wijziging door te voeren, dan kan dat de werking van het hele spel overhoop gooien.’

Slim filteren

Na het selecteren van een geschikte dataset is het aan de programmeur om slimme keuzes te maken: welk type informatie is wel relevant en welke niet? Sietse: ‘Het was een rijke dataset waarin niet álle data relevant was voor de functies die wij wilden ontwikkelen. Om de app compact en snel te houden, heb ik een filtering aanbracht. De kaart in de game maakt alleen gebruik van informatie over het grondtype, wegtype en informatie over hoogtes en posities. Vervolgens kan ik ervoor zorgen dat POI’s (points of interests) alleen gegenereerd worden op zandweggetjes en niet op grotere wegen. Zo kun je al veel reguleren wat betreft de veiligheid van het spel en de bewegingen die mensen door het gebied maken.’


Ook voor de snelheid en gebruiksvriendelijkheid is doelgericht gebruik van zo’n dataset gunstig. Sietse: ‘Omdat de game offline moet werken, wilde ik dat alle benodigde gegevens direct bij het opstarten van de game worden ingeladen op de smartphone. Tegelijkertijd wil je natuurlijk dat de game snel opent en navigeert, ook op oudere smartphones. Alleen al daarom was het cruciaal om selectief te zijn: welke data hebben we echt nodig om op de kaart een herkenbare visuele weergave van het gebied te geven? Zo is het gelukt de hele applicatie toch niet te zwaar te maken.’

Van dataset naar visualisatie

Is de juiste dataset en filtering eenmaal gekozen, dan is het zaak om aan de slag te gaan met de visualisatie van die gegevens. Sietse: ‘Dat heb ik gedaan door de rauwe data te converteren naar euclidean space; een mathematisch principe om ruimte weer te geven. Je moet het zo zien: je begint met een dataset die enkel latitude- en longitudecoördinaten bevat. Vervolgens wil je er met programmatuur voor zorgen dat de computer weet hoe de coördinatiepunten uit de dataset aan elkaar verbonden moeten worden, zodat er een 3D-weergave ontstaat. Wat er dan ontstaat heet een mesh. Wie hier meer over wil weten kan het beste mijn blog over triangulatie lezen. Heb je eenmaal een mesh, dan kun je gaan bepalen welke kleurtjes, schaduwen en dergelijke er toegepast moeten worden. Zo ontstaat – in combinatie met de GPS-locatie van de speler – een visuele weergave die overeenkomt met de werkelijkheid.’

King Kong in eigen stad

Geslaagde voorbeelden van op geodata gebaseerde games zijn wat Sietse betreft Pokemon Go van Niantic en udStream van Euclideon. Zelf heeft hij ook nog wel wat ideeën voor nieuwe toepassingen: ‘Het lijkt mij interessant om bijvoorbeeld een game te bouwen waarin je in je eigen stad een gasbel ontdekt. En dat je dan als speler ziet hoe boringen het landschap en de bodem beïnvloeden. Abstracte processen waar mensen slecht een beeld bij hebben, maar waar wel datasets van beschikbaar zijn – dat biedt allerlei mogelijkheden voor serious games.’ Met een ernstige blik: ‘Maar een game waarin je als een soort King Kong of Godzilla door je eigen omgeving stampt en op gebouwen klimt lijkt me ook wel leuk.’ 

Ook ideeën over geodata in games?

Bel 058 843 57 57

Mail maarten@8d-games.nl

Deel je grootse plannen met Maarten!

Abonneer je op onze nieuwsbrief