Fiasko/Deliverables/ObligatoriskOppgave1.md

221 lines
8.0 KiB
Markdown
Raw Normal View History

2020-02-05 05:19:38 +01:00
# Team Fiasko
## Organisering av teamet
2020-02-04 20:56:46 +01:00
2020-02-05 05:19:38 +01:00
### Kompetanse
#### Petter Tobias Madsen
2020-02-04 20:56:46 +01:00
Relevante fag: INF101.
Kan grunnleggende ting i Java men har ikke utført krevende prosjekter.
Nesten ingen GUI-erfaring.
#### Steinar Aalstad Lillesund
2020-02-04 20:56:46 +01:00
Føler seg komfortabel med Java men ikke noe veldig avansert.
Ingen GUI-erfaring.
#### Kristian Knarvik
2020-02-04 20:56:46 +01:00
Relevante fag: INF100, INF101 og INF102.
Ganske erfaren i Java og har gjort ting med GUI før.
#### Torbjørn lunde jensen
2020-02-04 20:56:46 +01:00
Relevante fag: Tar INF101 inneværende semester.
Litt erfaring, men ikke veldig mye.
Ingen GUI-erfaring.
#### Gabriel Ingolf Olav Magnus
2020-02-04 20:56:46 +01:00
Relevante fag: INF101 og INF102.
Litt komfortable med Java.
2020-02-04 16:02:30 +01:00
2020-02-05 05:19:38 +01:00
### Oppsummering
2020-02-04 21:09:20 +01:00
2020-02-04 19:45:52 +01:00
Overall kompetanse i java koding ligger på medium mens erfaring med git eller gui er relativt lav.
2020-02-04 20:56:46 +01:00
2020-02-05 05:19:38 +01:00
### Roller
2020-02-04 21:09:20 +01:00
2020-02-05 05:19:38 +01:00
#### Titler
2020-02-04 21:09:20 +01:00
2020-02-04 14:27:27 +01:00
Kristian -> Team leder (Ansvarlig for å vite hva alle gjør og burde gjøre til enhver tid)
2020-02-04 20:56:46 +01:00
Tobias -> Kommunikasjonsleder ( planlegger møter og parprogrammerings timer)
Steinar -> Møteorganisator (Ansvarlig for å organisere hva som skal gjennomgås på de avtalte møtene.)
2020-02-04 20:56:46 +01:00
Torbjørn -> Dokumentasjons ansvarlig (dokumenter møtene og sørger for at innleveringene er riktig)
Gabriel -> Kundeansvarlig (Ansvarlig for å vite alle spilleregler)
2020-02-05 05:19:38 +01:00
#### Grunnlag
2020-02-04 21:09:20 +01:00
Tobias -> Vi trenger noen som kan ta ansvar for å planlegge tidspunkter for møter,
og en kontaktperson dersom noen ikke kan stille på møter.
Kristian -> Han har mest erfaring med kode og var en naturlig leder. Han har overblikk over hva som skal bli gjort.
Steinar -> Skal organisere møtene slik at vi har en plan før hvert møte. Dette forhindrer møter uten en plan.
Torbjørn -> Skal sørge for at det finnes korrekt dokumentasjon som overholder gitte krav.
Gabriel -> Leder for spilleregler og har ansvar for riktig spillmekanikk.
2020-02-05 05:19:38 +01:00
## Produktutforming
2020-02-04 21:09:20 +01:00
2020-02-05 05:19:38 +01:00
### Overordnet mål
2020-02-04 21:09:20 +01:00
Vi vil lage en fungerende digital versjon av RoboRally som er kompatibel med MAC, Windows og Linux.
Applikasjonen må kunne kjøre og fungere uten å ha noen ødeleggende feil eller mangler.
2020-02-04 20:56:46 +01:00
Det skal kunne fungere over LAN med opptil 8 spillere.
Spillet skal implementere alle spillereglene fra RoboRally (om tiden strekker til).
2020-02-05 05:19:38 +01:00
### Systemkrav
2020-02-04 21:09:20 +01:00
2020-02-05 05:19:38 +01:00
- En visuell representasjon av et spillbrett.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- En spiller som kan bevege seg på brettet.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- En spiller taper når de mister alle liv.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- En spiller dør om de tar 10 skade.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- En spiller trenger liv.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Spilleren trenger å kunne ta skade.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- En spiller må kunne vinne.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Kort for å programmere roboten.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Forskjellige funksjonelle objekter/ruter på kartet (eks. vegg, laser).
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Runder (Består av 5 faser. Du får nye kort, reparasjon, powerdown etc.).
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Faser (Ett kort fra hver spiller blir brukt, og objekter på brettet interagerer.
2020-02-04 21:00:30 +01:00
Registrering av flagg skjer etter hver fase).
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Kunne spille med andre spillere over lan.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Lasere skyter i slutten av hver fase.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Spillere beveger seg hver fase og kort bestemmer hvem som går først.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Velge kort i starteren av runden.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Kunne velge powerdown etter alle har låst kortene sine.
2020-02-04 21:04:27 +01:00
- Ved slutten av runden får spillere reparasjoner hvis de står på en reparasjonsbrikke eller flagg.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Sjekke om noen spillere står på riktig flagg.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Respawn etter en robot er ødelagt ved slutten av runden/fasen gitt at de har flere liv.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Hvis en spiller er i powerdown blir spilleren spurt (i starten av nye runden) om han vil bli i powerdown eller ikke.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Roboter må kunne dytte hverandre.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Samle inn kort i slutten av en runde.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Ikke samle sammen kort som er låst.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Vise hendelser som skjer på skjermen med en delay slik at spillet ser riktig ut.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Roboter dør hvis de går utenfor spillbrettet eller faller i ett hull.
2020-02-04 19:41:33 +01:00
2020-02-05 05:19:38 +01:00
### Prioriterte krav
2020-02-04 21:09:20 +01:00
1. En visuell representasjon av et spillbrett.
2. Ha en brikke plassert på det visuelle spillbrettet.
2020-02-05 05:19:38 +01:00
### Prosjektmetodikk
2020-02-04 21:09:20 +01:00
- To fysiske møter per uke. En på gruppetimen og en på torsdager.
2020-02-04 21:04:27 +01:00
- Siden det ikke alltid er optimalt å møtes fysisk vil en del av parprogrammeringen skje ved hjelp av skjermdeling på Discord.
2020-02-04 21:04:27 +01:00
- Syklus oppsett mellom hver oblig. Sette opp oppgaver over hva som skal gjøres i hver syklus, som i scrum.
- Vi skal ha en liten sprint som varer en uke hvor vi prøver å blir ferdig med
alle oppgavene som blir tildelt på tirsdagene som i scrum oppsettet.
2020-02-04 21:04:27 +01:00
- Vi tenker å bruke en blanding av scrum og parprogrammering under prosjektet.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Tirsdager brukes for å re cape hva som har blitt gjort uken før
2020-02-04 20:56:46 +01:00
og for å avklare om vi føler oss ferdig med oppgaver.
2020-02-04 21:04:27 +01:00
- Deling av dokumenter skjer over GitHub, Slack eller Discord.
2020-02-04 21:04:27 +01:00
2020-02-05 05:19:38 +01:00
- Bruke project board for at vi skal ha kontroll over alle oppgavene og hvem som skal gjør hva.
2020-02-04 20:56:46 +01:00
- Arbeidsfordelingen skal bli gjort med hver enkeltes kompetanse og evner tatt i betraktning slik at en ikke blir for overbelastet under prosjektet.
#### Prosessen
- Planlegger møter god stund før de skal skje.
- Diskutere ting vi må ta felles på møter og planlegge arbeidoppgaver som skal gjøres til neste møte.
- Vi har planlagt å ha parprogrammeringstimer slik at alle føler seg komfortable med oppgavene og slik at alle får bidratt til prosjektet.
- Diskutere spilldesignet sammen i gruppen slik at alle er på samme nivå.
- Torsdag er satt av for parprogrammering kl. 10:15-12:00.
- I slutten av en lang sprint (slutten av hver oblig) skal vi se over designet og koden i tilfelle vi føler vi må refaktorere eller endre noen andre designaspekter.
- Kommunikasjon skjer over Slack og Discrod.
#### Organisering så langt
- Planlegger å jobbe med deloppgavene fra oblig 1.
- Sette opp møtetider og møtesteder, samt hva som skal bli gjort.
- Planlegger parprogrammerings-økter for den første kode-delen.
### Brukerhistorier
2020-02-04 20:56:46 +01:00
2020-02-04 19:45:52 +01:00
#### Vise et brett
2020-02-04 21:09:20 +01:00
- Som en spiller må jeg kunne se et brett for å kunne spille spillet.
- Som spillbrett må jeg vise alle elementer som er på meg.
- Som spillbrett må jeg være delt inn et rutenett der brikkene må være i en rute av gangen.
2020-02-04 21:09:20 +01:00
2020-02-05 05:28:10 +01:00
##### Akseptansekrav for brett
2020-02-04 21:09:20 +01:00
- Vi kan se et brett der noe kan bli plassert på brettet i en rute.
2020-02-04 19:41:33 +01:00
2020-02-05 05:19:38 +01:00
#### Plassere en brikke på brettet
2020-02-04 21:09:20 +01:00
- Som brikke må jeg kunne plasseres på spillbrettet.
- Som brikke må jeg være synlig på brettet.
2020-02-04 21:09:20 +01:00
2020-02-05 05:28:10 +01:00
##### Akseptansekrav for brikke på brettet
2020-02-04 21:09:20 +01:00
- Brikken blir plassert synlig i en bestemt rute på brettet.
2020-02-05 18:53:57 +01:00
### Oppsumering
- Gruppen er enig om at denne første perioden har vært ganske kaotisk. Dette kommer av at gruppen har
hatt en del arbeid med å få til det administrative for å kunne jobbe med metodikkene vi har valgt.
Dette forventer vi forbedrer seg i neste sprint.
2020-02-05 18:53:57 +01:00
- Det har også vært en del forandringer på rollene til medlemmene i teamet ettersom vi har blitt bedre
kjent med hverandre, og funnet ut hvilke roller som hver enkelt burde ha. Vi endte opp med å bytte leder og de
fleste andre roller fire dager før innleveringsfristen.
2020-02-05 18:53:57 +01:00
- Vi føler parprogrammering fungerer bra, og planlegger å fortsette med dette i neste sprint.
2020-02-05 18:53:57 +01:00
- Vi ønsker å lage bedre og mer presise issues på project boardet, ettersom noen av issuene på
boardet var for store og ikke spesifikke nok.
2020-02-05 18:53:57 +01:00
- Vi valgte å bruke tid på Travis siden det gir en rask respons om noe som forventes å kjøre
ikke kjører allikevel, slik at det kan bli fikset så snart som mulig. Det er spesielt nyttig
om noen kommer til å glemme å teste koden før de sender den til GitHub.
2020-02-05 18:53:57 +01:00
- Vi valgte å bruke tid på å sette opp Codacy fordi tjenesten hjelper med å holde kvaliteten
på koden på et høyt nivå. Det ville vært mulig å sette det opp senere i prosjektet, men det
er mye lettere å holde seg på et høyt kvalitetsnivå enn å komme seg opp på et høyt kvalitetsnivå
fra et dårlig kvalitetsnivå.
2020-02-05 19:08:49 +01:00
- Vi har ikke tatt referat fra de tidligere møtene denne perioden fordi vi var ikke klar over at det var et krav før
etter at vi hadde hatt de fleste av møtene våre. men vi planlegger å gjøre det i fremtiden.
2020-02-05 19:30:53 +01:00
## UML
![UML](../Deliverables/Umls/UmlOblig1.png "UML Oblig 1")