6. okt. 2024 - 4 minutter å lese

Oppstart strategi spill

Oppstart strategi spill

“Tech stack”

Backend: C#, .NET 8.0, PostgreSQL, Azure, SMTP

Frontend: Astro, Typescript, React, Tailwind CSS, Redis

Bakgrunn for prosjektet

Denne høsten har jeg fått ekstra mersmak på utvikling av nettsider, og i den sammenheng vært enda mer ivrig på å lære meg ulike metoder og verktøy innen webutvikling. Det ene valgfaget jeg tar dette semesteret, Programming in Platform Ecosystems, har til nå hatt gjennomgang i HTML, CSS, Javascript, og React, knyttet opp mot DHIS2. Dersom du ikke vet hva DHIS2 er, så er dette en open-source programvareplattform utviklet i sammarbeid mellom HISP senteret på Universitetet i Oslo og de 23 lokale gruppene rundt om i Afrika, Asia, Midtøsten, og Amerika som utgjør HISP-nettverket. Dersom du ønsker å lære mer om hva de driver med, kan det leses her. Jeg vil ikke gå noe mer inn på det i denne artikkelen da det ikke er relevant for prosjektet sin del. Etter å ha gjennomført de obligatoriske oppgavene innen dette faget, hadde jeg en samtale med en barndomsvenn av meg rundt webutvikling. Da vi var mindre var vi begge svært opphengt i spill som Tribal Wars og Travian, noe som la grunnlag for inspirasjon rundt det vi ønsket å lage. Målet for prosjektet ble å lage et spill inspirert av disse to, men i nyere rammeverk og teknologi, samt med funksjoner og design vi selv mener mangler.

Oppstartsfasen

Det gikk kort tid fra idèen var satt til vi allerede var i gang med planlegging. Under planlegging og etter diskusjoner med andre venner om løsninger knyttet opp mot et slikt spill ble to andre venner invitert med, og vi ble et team på 4. Vi har alle utdanning innen Informatikk, hvorav to fullfører bachelor i år (2024), jeg er i gang med master, og siste mann har en master i algoritmer, og jobber fulltid i testavdeling. For tech stack ble det i utgangspunktet lagt fokus ned i hva vi ønsket å lære oss, og hva som er relevant for en fremtidig arbeidsgiver. Hvilke teknologier som var mest passende var også et fokus, men bruken av Canvas f.eks over pur HTML og CSS, ble valgt bort til fordel for ekstra brukervennlighet for brukere med for eksempel skjermlesere.

Sammarbeidsverktøy

For å samarbeide har vi valgt å ta i bruk Discord, Github og Notion. Discord ble et naturlig valg da det er det vi tidligere har brukt for generell kommunikasjon, mens Github ble valgt litt av samme grunn, samtidig som det er det mest brukte versjonskontroll verktøyet. For Notion ble det valgt på grunn av dets diversitet, og tilbud innenfor både oppsett liknende Jira for sprinter, backlog osv, samt dokumenter, og markdown liknende funksjoner. Dette gjør at vi kan ha alt samlet på ett sted, og slipper å bruke flere verktøy for å holde oversikt.

Modeller

For å få god struktur og oversikt i et prosjekt av denne størrelsen er modeller helt essensielt. Vi valgte å først sette opp en generell oversikt over hvilke verktøy vi skulle ta i bruk.

Visuelt oppsett av prosjektet

Figur 1. Visuelt oppsett av prosjektet. Videre ble det tenkt ut hvordan vi skulle strukturere databasen, og hvilke elementer det var viktig å ha med. Dette ble satt opp som et klasse diagram.

Klasse diagram over databasen

Figur 2. Klasse diagram over databasen. Utifra disse to modellene er vi gått godt i gang, og har allerede satt opp store deler av backend, database og frontend.

Status

Statusrapport dagen denne artikkelen ble skrevet er som følger:

  • Backend: Controller, Repository, og Modeller er satt opp og fungerer med enkle kall.
  • Frontend: Navigasjonskart, hovedoversikt, autentisering og enkle funksjoner er satt opp.
  • Database: Tabeller er satt opp, og relasjoner er satt opp.
  • Azure: Database er satt opp, og fungerer med backend.