
Semesterprojektet tager udgangspunkt i udviklingen af et lokationsbaseret mobilspil, der kombinerer bevægelse, læring og aktiviteter i den fysiske verden.
Spillet er tænkt som en platform, hvor eksempelvis lærere, vikarer og pædagoger kan oprette eller vælge aktiviteter og placere dem på forskellige fysiske lokationer. Eleverne bevæger sig derefter mellem lokationerne ved hjælp af et GPS-baseret kort og gennemfører aktiviteterne undervejs.
Konceptet kan på den måde beskrives som en kombination af en digital skattejagt, læringsplatform og aktivitetsapp.
Kernekoncept
Den ansvarlige for et spilforløb kan enten oprette egne aktiviteter eller vælge mellem allerede eksisterende aktiviteter. Hver aktivitet tilknyttes en lokation, som repræsenterer en geografisk placering.
Lokationer kan eksempelvis placeres rundt omkring på en skole, men systemet skal ikke være begrænset til selve skoleområdet. Det skal også være muligt at oprette spil andre steder, eksempelvis i en park, på en lejrskole eller i forbindelse med en udflugt.
Alle lokationer vises på et kort i mobilappen. Ved hjælp af enhedens GPS kan deltagerne se deres egen position og navigere mod de forskellige lokationer.
Når en deltager når frem til en lokation, kan aktiviteten åbnes og gennemføres. Efter aktiviteten er afsluttet, vender deltageren tilbage til kortet og kan fortsætte mod næste lokation.
Teknologi stack
Projektet er bygget op omkring følgende teknologier:
- React Native + TypeScript til mobilapplikationen
- Unity som spilmotor til de spilrelaterede dele af løsningen
- C# + ASP.NET Core til backend
- Entity Framework Core til dataadgang og ORM
- PostgreSQL som database
- PostGIS til geografiske data og spatial queries
- Google Authentication + JWT til autentifikation og autorisation
- Docker til containerisering og ensartede udviklingsmiljøer
- RabbitMQ til asynkron kommunikation mellem dele af systemet
- GitHub + GitHub Actions til versionsstyring og CI/CD
Backenddelen er struktureret efter en feature-baseret Vertical Slice Architecture og udvikles som en modulær monolit.
Teamet
Vores produktteam består af 4 personer, som varetager forskellige fagområder i projektet:
- Freja: Spiludvikling og IT-sikkerhed
- Steffen: Dataanalyse/databehandling og Interaktionsdesign/brugeroplevelse (UX)
- Nicolai: Mobilapplikationsudvikling og backendudvikling
- Thomas: Backendudvikling og database/datalagring
Derudover varetager vi i fællesskab fagområderne projekt-/produktledelse, test af software og DevOps.
Aktiviteter
Et centralt element i konceptet er, at aktiviteterne/lokationerne kan have forskelligt indhold. Platformen skal derfor ikke være bundet til én bestemt type undervisning eller aktivitet.
En aktivitet kan eksempelvis være:
- en fysisk aktivitet, såsom at hoppe, danse eller lave forskellige øvelser
- en quiz med spørgsmål og svarmuligheder
- en opgave, hvor deltageren eksempelvis skal løse et matematisk problem, tegne noget eller udføre en bestemt handling
Det giver den ansvarlige mulighed for at sammensætte et spilforløb efter elevernes alder, undervisningens indhold og formålet med aktiviteten.
Det overordnede mål er ikke kun læring, men også at motivere deltagerne til at bevæge sig og samarbejde, mens de gennemfører aktiviteterne.
Et typisk spilforløb
Et spil starter med, at den ansvarlige opretter et Quest, tilføjer aktiviteter og placerer dem på kortet.
Når spillet er klar, får deltagerne adgang til det gennem en spilkode.
Deltageren logger ind i applikationen og vælger et alias, der bruges under spillet. Herefter indtastes spilkoden, hvorefter kortet med spillets aktiviteter/lokationer bliver tilgængeligt.
Deltagerne bevæger sig derefter fysisk mellem punkterne. Når en aktivitet kommer inden for rækkevidde, kan den åbnes. Efter gennemførelsen kan deltageren fortsætte videre til næste aktivitet.
På den måde fungerer kortet som det centrale omdrejningspunkt gennem hele spillet.
Målgruppe
Den primære målgruppe er i første omgang elever i grundskolen.
Platformen henvender sig især til:
- lærere
- vikarer
- pædagoger
- andre voksne, der planlægger aktiviteter for børn og unge
De fungerer som en slags spilmestre, og opretter eller sammensætter spilforløbene.
Eleverne er spillets deltagere og den primære målgruppe for selve mobiloplevelsen.
Selvom projektet i første omgang udvikles med grundskolen for øje, er konceptet ikke teknisk bundet til denne målgruppe. På længere sigt vil samme grundidé kunne anvendes i andre sammenhænge, hvor aktiviteter kombineres med geografiske lokationer.
Brugergrænseflade
Kortet
Kortet er den centrale del af applikationen.
Her kan deltageren se sin egen position samt de aktiviteter/lokationer, der indgår i spillet. Kortet skal kunne zoomes og navigeres på samme måde som andre mobile kortapplikationer.
Designet holdes bevidst relativt simpelt. Deltageren skal primært kunne fokusere på kortet og de aktiviteter, der skal findes.

Login og adgang til spil
Når applikationen åbnes, mødes brugeren af en login-skærm.
I en egentlig løsning ville en integration med UNI-Login være oplagt i en dansk skolekontekst. Da projektgruppen ikke har adgang til den nødvendige integration, anvendes der i semesterprojektet en anden loginløsning.
Efter login indtaster deltageren den spilkode, som den ansvarlige har udleveret. Koden identificerer det konkrete spilforløb og giver adgang til det tilhørende kort og aktiviteterne.

Enkel navigation
Da en stor del af brugerne er børn, ønsker vi at holde brugergrænsefladen enkel.
Kortet skal fylde størstedelen af skærmen, og antallet af knapper og indstillinger begrænses. Tanken er, at oplevelsen i højere grad skal minde om en digital skattejagt end om et komplekst administrationssystem.
Indstillinger, som primært vedrører selve spilforløbet, skal så vidt muligt håndteres af den ansvarlige frem for deltageren.
Inspiration
Konceptet er blandt andet inspireret af Pokémon Go.
Pokémon Go kobler et digitalt kort sammen med spillerens fysiske position og motiverer spilleren til at bevæge sig rundt i den virkelige verden for at finde indhold. Vores spil anvender en lignende grundmekanik, men erstatter spillets figurer med aktiviteter og opgaver.
Der er desuden hentet inspiration fra Kahoot, særligt i forhold til gamificeret læring og brugen af selvvalgte aliaser. Formålet er at gøre deltagelsen mere uformel og legende end traditionel opgaveløsning.
Centrale funktioner
De vigtigste funktioner i den første version af spillet er:
- login og valg af alias
- adgang til et spil via en spilkode
- visning af spillerens position på et kort
- visning af spillets aktiviteter/lokationer
- mulighed for at vælge eller åbne en lokation
- visning og gennemførelse af aktiviteter
- registrering af gennemførte aktiviteter
- mulighed for at vende tilbage til kortet og fortsætte spillet
- en enkel indstillingsmenu
Fokus er på at få det centrale spilflow til at fungere frem for at implementere et stort antal sekundære funktioner.
Teknisk platform
Spillet udvikles primært som en mobilapplikation, da GPS og fysisk bevægelse er centrale elementer i konceptet. Løsningen skal dog også kunne anvendes på tablets, hvis disse er tilgængelige på skolen.
Projektet består overordnet af en mobilapplikation, en backend og en database. Backend håndterer blandt andet spil, aktiviteter, deltagere og kommunikation med databasen, mens databasen også håndterer de geografiske data, som anvendes til spillets Lokationer.
Mulig videreudvikling
Projektet fokuserer på spillets kernefunktionalitet, men konceptet giver mulighed for en række senere udvidelser.
En mulig funktion er eksempelvis en tidsbegrænsning på spillet. Den ansvarlige kunne angive, at et spil varer eksempelvis to timer. Når tiden nærmer sig afslutningen, kan deltagerne få besked om at afslutte deres nuværende aktivitet og vende tilbage til et bestemt mødested.
Andre funktioner og spilmekanikker kan tilsvarende tilføjes senere uden at ændre på spillets grundlæggende koncept: at kombinere fysiske lokationer, bevægelse og aktiviteter gennem en mobilbaseret spiloplevelse.
