Frontend:
Ved projektstart var fokus på at få de mest basale ting på plads, herunder mappestruktur, routing og oprettelse af mapper og components.
Vi brugte hovedsageligt JavaScript sammen med React. Det er vi gået væk fra og bruger nu TypeScript fordi, at det føles mere naturligt for os, da vi er hjemmevante i C#. Derudover hører vi også fra andre, at det mere eller mindre er standarden for React-projekter.
Som tidligere nævnt bruger vi også Tailwind og vi har inkorporeret de mest essentielle features. Det føles som at være lidt “in progress” konstant.
Vi har også implementeret mock data via Mock Service Worker for at indsætte noget mock data igennem en API.
Derudover har vi arbejdet med automatisering i form af prettier, linting, husky til pre-commit linting/testing og coderabbit til codereviews og automatiske unit tests.
Vi tager gerne imod kommentarer og feedback på koden.
Link til Github: https://github.com/4-sem-CatchUp/frontend
--------------------------------------------------------------------------
Backend:
Jeg har nu arbejdet med at få en dybere forståelse af hexagonal arkitektur (også kendt som Ports and adapters), hvor at jeg har valgt at splitte projektet op i følgende cores:
- SocialCore: Administrerer real time chat, Posts + comment og vote, samt profiler.
- AchievementCore: Gamification element af systemet, styrer logikken for hvornår man opnår achievements, samt servere hvilke achievements de forskellige brugere har.
- UserAuthCore: Styrer og administrerer brugerinformation, autentifikation og autorisation.
- ActivityPubCore: styrer den decentraliserede kommunikation på tværs af instanser.
- NotificationCore: står for notifikationer til front-end, på tværs af de resterende cores, i samarbejde med en Event-broker.
Indtilvidere har jeg arbejdet med implementeringen af SocialCore, hvor jeg på nuværende har implementeret kernelogikken for profile, post og chatfunktionaliteterne, og skal til at implementere EF core, for dernæst at oprette API kald for front-end, og til sidst implementere notifikationsfunktionaliteten.
Repository: https://github.com/4-sem-CatchUp/CatchUp-Social-core
---------------------------------------------------------------------
Spilduvikling:
Jeg startede med at udpensle et gameplay-loop i vores fælles Figma ud fra mine umiddelbare tanker, hvor jeg adskiller init-forløbet (config → auth → profil/XP/badges → hub) fra selve hub-gameplayet (freeroam med chat-HUD), og markerer de to primære triggere: nærheds-interaktion ved NPC (tryk E) og tids-/server-events (mulig dag/nat cyklus?). Begge ruter kan udløse dialog, sætte flags/XP/badges og køre ApplyEffects, hvorefter spilleren returnerer til freeroam. [link]
Af visuelle overvejelser har jeg gjort brug af sites som gameuidatabase.com til at indhente ideer til hvordan det visuelle udtryk skulle udvikles. Jeg har tænkt på forskellige kamerastile og har besluttet mig for et Animal Crossing-inspireret “fixed feel” follow-kamera. Derudover er en idé at perspektivet skiftes i fire faste vinkler (0°/90°/180°/270°), så læsbarheden er høj, og styringen forbliver rolig.
Jeg sigter efter et roligt, lav-mættet farveudtryk med få, klare accenter ([Palette A], [Palette B]) for mindre visuel støj og bedre læsbarhed; NPC’er er forskellige variationer af dyr (shiba hund, mus, kat, etc) for venlig tone, tydelig rollemarkering og let variation.
Som hjælp til den tungere asset-del af projektet har jeg udarbejdet en kontrakt med en god ven og 3D grafiker til at skabe de grundlæggende assets til spillet. Indtil videre er vi nået til dette stadie i design-fasen for player-model og NPC’s. Tanken er at alt er uniformt og i samme formfaktor (ens proportioner, højde og rigging). Tanken er at alt bliver mere læsbart og visuelt ensartet (udover haler og ører, høhø)
På gamification-siden har jeg udtænkt et kosmetiksystem (hår, tøj, emotes, profil-customization) og defineret de første unlock-regler (FirstLogin, Run500m, FirstChatMsg). Dette vil komme i spil på ikke kun spillets grænseflade, men også på sitet, hvor achievements også vises og badges bliver unlocked.
Jeg har også udarbejdet et første GDD-udkast (v0.1) med Vision, Core Loop, Kamera, Progression og MVP-scope, som jeg løbende opdaterer i takt med prototypen og senere udvikling. Her er udkast som er kopieret ind i google docs, for at bevare privatliv 😉.
I vedlagte skitser kan ses en lidt “rough” visualisering af hvordan et login ville foregå. Login → fald → landing → NPC kontakt [link 1] [link 2]
Min umiddelbare ide omkring et startpunkt for login (man falder fra sitet, symboliseret af et stykke hardware -måske et floppydrev). [link]
En skitse er også en udpensling af en idé som jeg har gået og tænkt på, hvor man ser en “synergi” mellem site og spil, hvor posts på sitet bliver broadcastet til spillet selv. [link]
For vidensopbygning er jeg gået i gang med en Unity 6, projektbaseret kursusrække. Målet er at sikre solide grundvaner (input, fysik, coroutines, navmesh/AI, ProBuilder, post-processing) og løbende omsætte læringen direkte i projektets MVP.
Hovedsageligt var vi alle enige om at dette projekt skulle udarbejdes med et stærkt high-level grundlag, derefter implementation.
Jeg vil meget gerne høre fra folk derude om de synes jeg er på rette vej.