Vi bringer matematikken i spil på en sjov og engagerende måde!
Forløbet lærer dig, hvordan du kan bruge matematik til at beskrive både bevægelse og tilfældigheder i spil. Du skal også undersøge, om computeren kan lave noget, som opfører sig tilfældigt.
- noget som bevæger sig ligesom i den virkelige verden
- noget der opfører sig tilfældigt, så spilleren ikke kan forudse alt på forhånd
Når du har lært de grundlæggende teknikker, skal du lave dit eget spil.
Faglige mål som dækkes af forløbet
Konstruktion af it-system som løsning til en problemstilling
– Eleven bør kunne inddrage faglig viden fra studieretningsfaget matematik i design af spillet.
– Spillet skal designes vha. prototyper, programmeres i Scratch og afprøves med fokus på den valgte målgruppe og persona.
– Eleven bør kende til udviklingsmetoder som 1) “trinvis forbedring”, 2) konceptudvikling og 3) brugerinvolvering i designprocessen, herunder evaluering af prototyper.
It-systemers og menneskelig aktivitets gensidige påvirkning
– Eleven bør kunne beskrive 1) spillertyper og spilgenre i forhold til andres og eget spil, 2) målgruppe og en persona i målgruppen.
– Eleven bør kunne beskrive, hvordan forskellige elementer i spil fastholder brugerens interesse og får brugeren til at blive ved med at spille.
Repræsentation og manipulation af data
– Eleven bør kunne bruge variabler til f.eks. pointsystemer og koordinater i spilleplanen.
Programmering
– Eleven bør kunne anvende kontrolstrukturer, som løkke, forgreninger og handlingsstyring.
Interaktionsdesign
– Eleven bør i forhold til det udviklede spil kunne redegøre for 1) spillertyper og spilgenre, 2) usability og userexperience og 3) spillets gameplay.
1. Bevægelse i spil
I dette modul skal du lave dit første program i Scratch
Du skal
- lave en timer og lære, hvordan man bruger en variabel i computerprogrammer.
- få en bold til at bevæge sig i et spil.
- få en bold til at skifte retning, når den rammer en kant.
Hvordan skal du arbejde
- du skal se videoerne og lave opgaverne i den rækkefølge, der er anvist.
- når du laver en opgave, kan du samtidigt gense videoerne, stoppe videoen og lave den kode, som vises i videoen.
- undervejs lærer du alle de fagudtryk, du får brug for. Øv dig i at bruge dem, så du kan beskrive koden med de rigtige fagudtryk.
Det er en god idé at se videoerne sammen med en makker, men det er vigtigt, at I begge laver opgaverne på jeres egen computer, mens I snakker om, hvad I gør. Hvis man ikke selv kan lave en kode, er det svært at forklare, hvad koden gør.
Opgave 1.1.1
- Start spillet ved at klikke på det grønne flag og kig på bolden. Hvad sker der, når bolden rammer en kant?
- Start spillet flere gange og se om din forklaring passer i alle tilfælde
Opgave 1.1.2
Hastighedsvektoren angiver boldens fart og retning.
Undersøg hvad der sker med x- og y-koordinaten til hastighedsvektoren, når bolden rammer
- en lodret kant
- en vandret kant
I denne video ser du
- hvordan du kan programmere i Scratch.
- hvordan du laver et ur.
Fagudtryk, du lærer i videoen
- hændelse
- variabel
- datatypen tal
- løkke og kontrolstruktur.
Opgave 1.2.1
Når du har set videoen, skal du forklare fagudtrykkene for din makker/en klassekammerat.
Opgave 1.2.2
Download Scratch eller lav en konto på Scratch
Spørg din lærer, om du skal bruge offline eller online versionen af Scratch.
Opgave 1.2.3
Lav et ur. Du kan få hjælp i videoen, hvis du har glemt, hvordan du skal lave et ur.
I denne video ser du
- hvordan du laver en sprite til et spil.
- hvordan du skifter udseende/kostume på sin sprite.
Fagudtryk du lærer i videoen
- sprite
Opgave 1.3.1 – lav en bold
- Lav en sprite på samme måde som i videoen – det må gerne være en bold.
I denne video ser du
- at placeringen af spriten bestemmes af x- og y-koordinater, som du kender det fra et koordinatsystem i matematik.
Fagudtryk du lærer i videoen
- script
- tildele en tilfældig værdi til en variabel
Opgave 1.4.1 – lav en bold
Du kan få hjælp i videoen ovenfor
- Lav en sprite – det må gerne være en bold.
- Lav 2 variable, som hører til bolden: x0 og y0.
- Indsæt en hændelse i spritens kode og tilføj kode til scriptet:
- Tildel x0 og y0 en tilfældig værdi.
- Flyt bolden til et nyt tilfældigt sted (x0,y0), hver gang der trykkes på det grønne flag.
Opgave 1.4.2 – sæt boldens hastighed
Tilføj kode til dit script:
- Lav 2 variable, som hører til bolden: vx og vy.
- Tildel vx en tilfældig værdi mellem 1 og 10.
- Tildel vy en tilfældig værdi mellem -10 og 10.
- Lav en variabel t, som også tilhører bolden
- Tildel variablen t værdien 0.
Opgave 1.4.3 – sæt bolden i bevægelse
Tilføj kode til dit script:
- Lav en “for evigt”-løkke
I løkken tilføjes
- En blok, som sætter x-koordinaten for spriten til en ny værdi
- En tilsvarende blok for y-koordinaten
- En blok, som ændrer variablen t med 0.1
- En blok, som venter 0.1 sekund – du kan hente hjælp i videoen i afsnit 1.2
Opgave 1.4.4 – undersøg betydningen af t
- Lav eksperimenter, hvor du ændrer t med forskellige værdier i stedet for 0.1
- Lav eksperimenter, hvor du venter kortere eller længere end 0.1 sekund
- Kombiner de to eksperimenter – hvilken betydning har de to værdier for boldens bevægelse?
I denne video ser du
- hvordan en bold kan bevæge sig langs en ret linje i et spil.
- løsningen på opgaverne 1.4.1-1.4.4.
I denne video ser du
- hvordan bevægelsen kan forbedres.
- hvordan du kan skjule eller vise værdien, som gemmes i en variabel.
Opgave 1.6.1
Lav de samme forbedringer af koden, som du lige har set i videoen.
I denne video ser du
- hvordan parameterfremstillingen for en linje beskriver den kode, du har lavet.
Matematik som bruges i videoen
- koordinatfunktioner
- parameterfremstillingen for en lineær bevægelse
- variablen t, som styrer bevægelsen, kaldes en parameter i matematik
I denne video ser du
- hvordan du nemt kan lave flere bolde.
Fagudtryk som bruges i videoen
- klon
Opgave 1.8.1
Lav flere kloner af din sprite-bold.
I denne video ser du
- hvordan du får bolden til at reflektere ved at skifte fortegn på vx.
Fagudtryk som bruges i videoen
- Løkke med betingelse
- Betinget sætning
- Betingelse
Matematik i videoen
- refleksion beskrevet med vektorer
Opgave 1.9.1 – refleksion på lodrette kanter
Udvid din kode så bolden reflekterer/bouncer på både lodrette kanter. Du kan få hjælp til koden i videoen ovenfor.
Opgave 1.9.2 – refleksion på vandrette kanter
Udvid din kode, så bolden reflekterer/bouncer på både lodrette og vandrette kanter
Du skal tilføje en betinget sætning, hvor du tester, om boldens y-koordinant er tæt på toppen eller bunden af spilleplanen.
I denne video ser du
- hvordan du får bolden til at reflektere ved at skifte fortegn på enten vx eller vy.
Fagudtryk som bruges i videoen
- Betinget sætning af typen hvis-ellers (på engelsk if-else).
Opgave 1.10.1 – Refleksion på lodrette og vandrette kanter
Sammenlign din løsning af opgave 1.9.2 med videoen ovenfor.
I denne video ser du
- hvordan du undgår, at bolden bliver fanget i et hjørne.
Fagudtryk som bruges i videoen
- Trinvisforbedring
Opgave 1.11.1 – Forbedring af koden
Lav en forbedring af koden, så bolden ikke fanges i et hjørne.
Opgave 1.12.2 – Lav din egen sprite
- Lav en ny sprite. Du må gerne vælge en figur fra biblioteket i Scrach.
- Tilføj forskellig kode, så du får spriten til at lave nye ting.
- Undersøg mulighederne i forskellige kodeblokke yderst til venstre.
Opgave 1.12.3 – Gem en kopi af en sprite
Gem en kopi af din sprite på din computer
- Højre-klik på spritens ikon og vælg “eksporter”.
- Navngiv sprite3-filen. Husk, du må ikke ændre filens filtype, dvs. “.sprite3”.
- Gem filen et sted, hvor du kan finde den igen.
Opgave 1.12.4 – Hent en sprite med kode fra din computer
- Vælg “Hent sprite”, når du skal lave en sprite.
- Find den gemte sprite3-fil på din computer.
Obs: metoden i opgaverne 1.12.3 og 1.12.4 kan bruges til at dele kode med den, du arbejder sammen med.
Sprite
En sprite er en figur i et spil.
Nogle sprites styres af spillerens input, mens andre sprites’ bevægelse er bestemt på forhånd af koden.
Hændelse (event)
En hændelse er noget som sker og kan sætte gang i afviklingen af koden i programmet.
Scratch kan håndtere hændelserne:
- klik på det grønne flag – bruges til at sætte spillet igang.
- klik på en sprite – input fra spilleren.
- klik på en tast på tastaturet.
- beskeder som sendes. F.eks. mellem sprites, så du kan sætte gang i andre dele af spillet.
Variabel
En variabel bruges til at gemme data, så det kan huskes og bruges senere, mens spillet stadig kører.
I scratch skal en variabel defineres (Lav variabel), før den kan bruges.
Variable kan defineres som globale (For alle sprites) eller lokale (Kun for én sprite). Hvis du bruger kloner (flere kopier af en sprite), skal variabler være lokale.
Datatyper
Data kan have forskellige typer. I Scratch arbejder vi med datatyperne tal og tekst. Scratch skelner ikke mellem forskellige typer tal, ligesom i andre programmeringssprog, der skelner mellem heltal (integer) og decimaltal (float).
Kontrolstukturer
En kontrolstruktur styrer, hvordan koden afvikles. Normalt afvikles koden i den rækkefølge blokkene sættes sammen. Kontrolstrukturer kan bruges til at gentage kode (løkker) eller springe kode over (betingede sætninger).
Løkker
I Scratch har du løkker som:
- gentager koden i løkken et bestemt antal gange
- bliver ved med at gentage koden i løkken
- gentager koden indtil en bestemt betingelse er opfyldt
Betinget sætning
Koden inde i en betinget sætning udføres, hvis betingelsen er sand.
Hvis betingelsen ikke er opfyldt, springes koden i denne blok over.
Betingelse
En betingelse er et udsagn, der kan være sandt eller falsk:
Man kan sammensætte flere udsagn med og/eller.
- Og – begge betingelser skal være sande, for at den samlede betingelse er sand.
- Eller – bare én af betingelserne skal være sande, for at den samlede betingelse er sand.
Betinget sætning af typen hvis-ellers (på engelsk if-else)
En hvis-ellers sætning kan bruges til at afvikle enten noget kode, når betingelsen er sand, eller noget andet kode i alle andre tilfælde.
2. Bevægelse med tyngdekraft
Tyngdekraften i spil
I spil vil vi gerne have, at alt bevæger sig, som i den virkelige verden. Det skal se naturligt ud, dvs. som om tyngdekraften får tingene til at falde mod jorden. Vi begynder altid med at overveje, om genstandene bevæger sig vandret uden tyngdekraft eller falder lodret med tyngdekraft.
Hvis du har fysik B, kender du måske til bevægelse på konstant acceleration, men det er ikke nødvendigt at kende de fysiske teorier for at forstå, hvad du skal. Det samme gælder matematikken bag bevægelserne. Du kender måske parabler og måske endda vektorfunktioner, men det er ikke nødvendigt for at lave dine programmer.
Du lærer om
- bevægelse påvirket af tyngdekraften
- funktioner og procedure i programmering
- parametre til funktioner og procedure
Hvordan skal du arbejde
- Du skal se videoerne og lave opgaverne i den rækkefølge, de kommer i.
- Når du laver en opgave, kan du samtidigt gense videoerne, stoppe videoen og lave den kode, som vises i videoen.
- Undervejs lærer du alle de fagudtryk, du får brug for. Øv dig i at bruge dem, så du kan beskrive koden med de rigtige fagudtryk.
Det er en god idé at se videoerne sammen med en makker, men det er vigtigt, at I begge laver opgaverne på jeres egen computer, mens I snakker om, hvad I gør. Hvis man ikke selv kan lave en kode, er det svært at forklare, hvad koden gør.
I denne video ser du
- hvordan du laver en procedure i Scratch.
- hvordan du kan bruge en procedure til at lave mere overskuelige programmer.
Fagudtryk du lærer i videoen
- funktion
- procedure
Opgave 2.1.1 – fagudtryk
Når du har set videoen, skal du forklare for din makker/en klassekammerat
- hvad bruger man en funktion eller en procedure til
- hvordan laver man en procedure i Scratch
- en fordel ved at bruge en procedure i Scratch
Opgave 2.1.2 – Lav en procedure i Scratch
Lav en procedure, som bruges til at skifte retning ligesom i koden i videoen.
Du kan arbejde videre på den kode, som du lavede i modul 1.
I denne video ser du
- hvordan du får resultatet af en beregning i en procedure i Scratch gemt, så det kan bruges i et program.
- hvordan du laver en procedure i Scratch om, så den fungerer stort set som en funktion.
Matematik som bruges i videoen
- koordinatfunktioner
- parameterfremstillingen for en lineær bevægelse – også kaldet en vektorfunktion (mat A)
Opgave 2.2.1 – Lineær bevægelse som funktion i et spil
Lav en procedure, som kan bruges til at beregne den aktuelle værdi af x- og y-koordinaterne for din sprite.
- Lav en xt- og en yt-variabel
- Definer en procedure, som beregner og gemmer de aktuelle værdier af x- og y-koordinater for lineær bevægelse
- Lav et kald til din procedure og indsæt resultatet fra variablerne i din kode.
Du kan følge instruktionerne i videoen. Arbejd videre på din tidligere kode.
Opgave 2.2.2 – Forklar din kode til din makker
Sammenlign din kode med din makkers kode og forklar de enkelte dele af koden med relevante fagudtryk f.eks. variabel, definition af procedure og procedurekald.
I denne video ser du
- hvordan du får en bold til at bevæge sig nedad med acceleration pga. tyngdekraften.
- hvordan du er nødt til at justere effekt af tyngdekraften for at få det til at se naturligt ud.
Matematik som bruges i videoen
- parameterfremstillingen for en bevægelse med konstant acceleration (kendes også fra fysik).
Opgave 2.3.1 – Bevægelse med konstant acceleration
Lav en ny procedure, som inkluderer effekt af tyngdekraften på bolden
- Definer en procedure, som beregner og gemmer de aktuelle værdier af x- og y-koordinater for bevægelse med konstant accelleration.
- Lav et kald til din procedure og indsæt resultatet fra variablerne i din kode.
- Bemærk, at du skal ændre begyndelsesbetingelserne for y0, vx og vy.
Du kan følge instruktionerne i videoen. Arbejd videre på din tidligere kode.
Opgave 2.3.2 – Forklar din kode til din makker
Sammenlign din kode med din makkers kode og forklar de enkelte dele af koden med relevante fagudtryk – f.eks. variabel, definition af procedure og procedurekald.
I denne øvelse skal du bruge en bold og en mobiltelefon.
Gå udenfor og find en mur et sted, hvor du gerne må kaste med en bold.
Send bolden ind mod muren i en blød kurve, mens din makker kigger på det fra siden.
Undersøg, hvad der sker med bolden, når den rammer muren. Det kan være en fordel at optage kastet på video, så man kan følge bolden i slowmotion.
Prøv med forskellige situationer, hvor bolden enten rammer muren oppefra eller nedefra.
I denne video ser du
- hvordan du kan lave et kast med en bold, så den bevæger sig som en parabel.
- hvordan du skal tilpasse koden, så bolden opfører sig korrekt, når den rammer muren.
Matematik som bruges i videoen
- parameterfremstillingen for en parabel
Opgave 2.5.1 – Skråt kast med bold (parabel)
- Tilpas din kode, så bolden følger en parabel.
- Tilføj ændringer i proceduren skiftRetning, så bolden opfører sig korrekt, når den rammer en kant.
Du kan følge instruktionerne i videoen. Arbejd videre på din tidligere kode.
Opgave 2.5.2 – Forklar din kode til din makker
Sammenlign din kode med din makkers kode og forklar de enkelte dele af koden med relevante fagudtryk – f.eks. variabel, definition af procedure og procedurekald
I denne video ser du
- hvordan du kan bruge en parameter til at gøre en procedure mere fleksibel.
Opgave 2.6.1 – Lav en procedure med en parameter for tyngdekraften
- Lav en ny version af proceduren MedTyngdekraft, hvor du laver en parameter til tyngdeaccelerationen.
- Eksperimenter med størrelsen af tyngdeaccelerationen. Hvornår ser det bedst ud?
Du kan følge instruktionerne i videoen. Arbejd videre på din tidligere kode.
Procedure
En procedure er noget kode, som defineres på forhånd og derefter kan kaldes, når man har brug for at denne kode afvikles.
Definition
I Scratch defineres procedure vha. “Lav en brik”.
Kald af en procedure
Når du skal bruge koden i proceduren, indsætter man et procedurekald:
I Scratch skal du definere proceduren, før den kan kaldes. Blokke vises under “Mine brikker”, når proceduren er defineret.
Funktion
Forskellen på funktion og procedure er, at en funktion returnerer en værdi. Scratch har nogle indbyggede funktioner, f.eks. de trigonometriske funktioner.
Når du bruger en funktion, får du den værdi, funktionen beregner.
Parameter
Nogle funktioner og procedurer bruger et input. F.eks. skal sinus-funktionen bruge en vinkel som input.
Dette input kaldes en parameter.
Når du definerer en procedure i Scratch, kan du tilføje en parameter.
3. Tilfældighed i spil
Tilfældigheder i spil
I spil vil vi gerne overraskes. Alt skal ikke være helt forudsigeligt. Hvor dukker den næste bold, jeg skal fange, op? Det skal man ikke vide på forhånd, for så bliver spillet let kedeligt og kan ikke spilles mange gange.
Men det er ikke helt simpelt at lave tilfældighed i spil, for computerprogrammer regner altid på samme måde. Derfor er det en hel videnskab at lave gode tilfældige tal. I de fleste programmeringssprog er der indbygget en funktion, der kan løse problemet for os, og den skal du bruge i dette modul.
Du lærer om
- hvordan du kan lave et tilfældigt tal.
- hvordan du kan styre, hvor ofte bestemte ting skal ske i dit spil.
- hvordan du kan undersøge de tilfældige tal i din computer – sammen med matematik.
Hvordan skal du arbejde
- Du skal se videoerne og lave opgaverne i den rækkefølge, de kommer i.
- Når du laver en opgave, kan du samtidigt gense videoerne, stoppe videoen og lave den kode, som vises i videoen.
- I skal lave en fælles øvelse, hvor I sammen tester jeres computeres tilfældige tal.
Det er en god idé at se videoerne sammen med en makker, men det er vigtigt, at I begge laver opgaverne på jeres egen computer, mens I snakker om, hvad I gør. Hvis man ikke selv lave kode, er det svært at forklare, hvad koden gør.
I denne video ser du
- hvordan du laver et tilfældigt tal
- hvordan du kan lave tilfældighed i programmer
Fagudtryk du lærer i videoen
- Hændelse
Opgave 3.1.1 – Lav en sprite, som siger noget tilfældigt
- Lav et nyt program.
- Lav en sprite.
- Lav en kode, som får spriten til at sige eller gøre 2 forskellige ting tilfældigt med lige stor sandsynlighed.
- Ændre sandsynligheden, så der er 10% sandsynlighed for, at spriten gør det ene og 90% sandsynlighed for at gør det andet.
- Undersøg om koden virker korrekt. Hvordan vil du ckecke, om du får den rigtige fordeling mellem de to mulige ting spriten kan gøre?
I denne video ser du
- hvordan du kan bruge tilfældighed til at styre udseende af en sprite.
- hvordan du kan lave kloner, så den samme sprite optræder mange gange.
Opgave 3.2.1 – Lav en sprite, som får en tilfældig farve
- Lav et nyt program.
- Lav en sprite, som har mindst 2 kostumer.
- Lav en kode, som får spriten til at få et tilfældigt kostume med 40% sandsynlighed for det ene. udseende og 60% for det andet..
Opgave 3.2.2 – Lav kloner af din Sprite
- Lav ændringer i dit program fra opgave 3.2.1, så du får mange kloner af spriten.
I denne video ser du
- hvordan du kan lave et bat, som spilleren kan styre.
Derefter laver du en opgave, hvor du bruger battet til at fange bolde.
Opgave 3.3.1 – Tilføj et bat til dit spil med faldende bolde
- Tilføj et bat til dit spil med faldende bolde.
Opgave 3.3.2 – Få bolden til at forsvinde, når den rammer battet
- Få bolden til at forsvinde, når den rammer battet.
Hint: Tilføj en betinget sætning til boldens kode
Den betingede sætningen skal teste om bolden rør battet.
og hvis bolden rør battet, skal man skjule bolden og stoppe scriptet.
Opgave 3.3.3 – Lav et pointsystem
- Lav en variabel “point” og sæt variablen til 0, når der trykkes om grønt flag.
- Tilføj en betinget “hvis-ellers”-sætning inden i den betingede sætning, der kontrollerer om bolden rammer battet.
- Hvis bolden er gul, skal der lægges 1 til variablen point.
- Hvis bolden ikke er gul, skal der trækkes 1 fra variablen point.
Opgave 3.3.4 – reflektion af bolde på bat (ekstra opgave)
- Få bolden til at reflektere på battet, når den rammer battet.
I denne aktivitet lærer du
- at lave et bat som kan accelerere
Opgave 3.4.1 – Lav en procedure til at styre battet
- Lav en ny procedure til at styre battet. Husk, at vælge “Kør uden skærmopdatering”.
- Flyt koden, som chekcer om venstre eller højre pil er trykket ned til proceduren.
- Tilføj en løkke, så proceduren hele tiden gentages.
- Test om battet virker som før.
Opgave 3.4.2 – acceleration af battet
- Definer en variable v – husk, at den kun skal tilhøre bat-spriten “Kun for denne sprite”.
Variablen v bruges til at styre battets hastighed.
- Nulstil v, når der klikkes på det grønne flag.
- Tilføj en opdatering af x positionen under kaldet af proceduren bat.
- Ændre bat-proceduren, så hastigheden v ændres, når der trykkes på piletasterne.
- Check, at battet nu kan accelerere, så du lettere kan nå til kanterne.
Opgave 3.4.3 – Accelereret bat med maksimal hastighed
Proceduren bat skal ændres, så hastigheden til højre og venstre ikke kan blive større end 10.
- Ændre betingelsen, så du samtidigt checker om venstre pil er trykket ned, og hastigheden mod venstre ikke er for stor. Bemærk minus foran værdien 10:
- Lav en tilsvarende for hastigheden mod højre. Overvej, hvordan betingelsen for variablen v skal se ud.
- Test, at battet nu har en maksimal hastighed på 10 til venstre eller til højre.
Opgave 3.4.4 – Accelereret bat med nedbremsning
Når der ikke trykkes på piletasterne, skal battet bremse.
“Ikke”-operatoren kan bruges til at checke, om pil-tasten ikke trykket ned.
- Tilføj en betinget sætning, hvor du tester om både venstre og højre pil ikke er trykket ned. Husk, at da begge betingelser skal være opfyldt samtidigt, skal du kombinere de to test med “og”.
Nedbremsningen afhænger af, om hastigheden er positiv eller negativ.
- Tilføje de betingede sætninger, der nedbremser battet, og test om det virker.
I denne video ser du
- hvordan du kan lave en tæller, så du kan teste, om tilfældigheden opfører sig som forventet.
Opgave 3.5.1 – Tæl antallet af kloner
- Definer en variabel og brug den til at tælle, hvor mange kloner du har lavet i alt.
- Indsæt en kode, så du tæller antallet af kloner, du har lavet i alt.
- Definer en variabel til at tælle antallet af kloner med det ene udseende, f.eks. med farven gul.
- Indsæt en kode, så du tæller antallet af kloner med det ene udseende.
- Definer en variabel til at tælle antallet af kloner med det andet udseende, f.eks. med farven lilla.
- Indsæt en kode, så du tæller antallet af kloner med det andet udseende.
Opgave 3.5.2 – Test om du tilfældigheden virker korrekt
Hvis du har valgt, at 50% af klonerne skal have det ene udseende
skal ca. hver anden klon have dette kostume.
Du skal lave mange kloner, før du kan se, om det faktisk er 50%, som får det ene udseende, og 50% der får det andet. Nu skal du teste, hvor mange kloner du skal lave, før du kan se, om det er 50%, eller om det ikke virker korrekt.
- Lav flere test og notér resultaterne.
- Sammenlign dine resultater med din makkers resultater og diskuter, hvad I kan konkludere ud fra resultaterne.
I denne video ser du
- hvordan du kan teste tilfældigheden i dit program med den statistiske metode binomialTest.
Opgave 3.6.1 – Lav en binomialtest
I denne opgave skal du teste, om tilfældighederne i dit program opfører sig som forventet.
- Overvej, hvordan du kan udføre en binomialtest som sandsynliggør, at tilfældighederne opfører sig korrekt.
- Opstil en hypotese.
- Test hypotesen.
Opgave 3.6.2 – Sammenlign dit og klassens resultater
- Du skal sammenligne din test med de andres i klassen.
- Hvor mange har forkastet deres hypotese på baggrund af testen?
- Forventer du, at hypotesen må forkastes netop dette antal gange, selv om tilfældighederne opfører sig korrekt?
Opgave 3.6.3 – Gentag testene med andre værdier af p
Nu skal du gentage din test med andre værdier af sandsynligheden for at få det ene udseende.
- Ændre sandsynligheden i din kode.
- Gennemfør testen med dit scratch-program (stikprøve).
- Bestem acceptområdet vha. binonimalTest i dit matematikprogram.
- Undersøg, om du skal forkaste nulhypotesen med den nye værdi af p.
- Gentage med forskellige værdier af p.
4. Reflektion på platforme
Du lærer om
- hvordan man kan lave refleksion på skrå kanter og platforme.
Hvordan skal du arbejde
- Du skal se videoerne og lave opgaverne i den rækkefølge kommer.
- Læse teori om projektioner, så du repeterer matematikken inden du bruger den i koden
- Når du laver en opgave, kan du samtidigt gense videoerne og stoppe videoen, og lave den kode, som vises i videoen.
Det er en god idé at se videoerne sammen med en makker, men det er vigtigt, at I begge laver opgaverne på jeres egen computer, mens I snakker om, hvad I gør. Hvis man ikke selv lave kode, er det svært at forklare, hvad koden gør.
I denne video ser du
- Hvordan du kan lave en skrå platform med en tilfældig vinkel.
Fagudtryk du lærer i videoen
- Kollision
Opgave 4.1.1 – Lav en skrå platform
Lav en udvidelse til dit gamle spil med en bold og lineær bevægelse.
- Lav en skrå platform som en ny sprite, du selv tegner.
I denne video ser du
- hvordan du opdager at bolden rammer platformen.
Fagudtryk du lærer i videoen
- Kollision
Opgave 4.2.1 – Kollision med platform
Lav en udvidelse til spillet med den skrå platform.
- Tilføj en kode, som detekterer kollisionen mellem platformen og bolden.
Opgave 4.2.2 – definer en ny skiftretning procedure
Du skal definere en ny procedure, som du kalder hver gang bolden rammer platformen.
Indholdet af proceduren kommer senere.
Platformen er en linje
Platformen er et linjestykke, dvs. en linje som har en længde og en retning.
I matematik kan du bruge en retningsvektor til at beskrive linjen, og retningen af linjen. Det er \(\vec{r}\) på figuren ovenfor. Du kan også bruge normalvektoren til linjen. Det er \(\vec{n}\) på figuren.
Beregning af hastighedsvektoren efter kollision med platformen
\(\vec{v}_{ind}\) er hastighedsvektoren for bolden, før bolden rammer platformen. Ifølge refleksionsloven, som du måske kender fra fysik, skal vinklen mellem normalvektoren \(\vec{n}\) og hastighedsvektoren før og efter kollisionen være den samme. På figuren nedenfor er vinklen ind ligeså stor som vinklen ud.
Når du skal beregne x- og y-koordinaterne for \(\vec{v}_{ud}\), skal du bruge projektionen af \(\vec{v}_{ind}\) på både retningsvektoren og normalvektoren.
Projektion af vektor på vektor
Fra formelsamlingen kender du formlen for projektion \(\vec{b}_a\) af en vektor \(\vec{b}\) på en anden vektor \(\vec{a}\).
Når vi skal beregne projektionen på retnings- eller normalvektoren er disse \(\vec{a}\) vektoren i formlen.
Vektor \(\vec{v}_{ind}\) er vektor \(\vec{b}\). Både retningsvektoren og normalvektoren kan vælges, så de er enhedsvektorer, dvs. har længden 1, hvilket gør beregningen lettere, da nævneren i brøken bliver 1.
Projektionen af \(\vec{v}_{ind}\) på retningsvektoren
Projektionen af \(\vec{v}_{ind}\) på retningsvektoren er den stiplede røde vektor på figuren ovenfor.
Man kan beregne projektionsvektoren med formlen:
Formlen bliver lidt simplere, da
x-koordinaten for projektionen bliver:
y-koordinaten for projektionen bliver:
Projektionen af \(\vec{v}_{ind}\) på normalvektoren
Normalvektoren er tværvektoren til retningsvektoren.
Projektionen af \(\vec{v}_{ind}\) på normalvektoren er den stiplede blå vektor på figuren ovenfor.
Man kan beregne projektionsvektoren med formlen:
Igen bliver formlen lidt simplere, da
Skalarproduktet af \(\vec{v}_{ind}\) og normalvektoren kan omskrives ved at indsætte koordinaterne for normalvektoren udtrykt med koordinaterne for retningsvektoren:
x-koordinaten for projektionen på normalvektoren bliver:
y-koordinaten for projektionen på normalvektoren bliver
Beregning af hastighedsvektoren efter refleksion på platformen
Hastighedsvektoren efter refleksion på platformen kan beregnes vha. de to projektionsvektorer
x-koordinaten for hastighedsvektoren efter kollisionen er:
y-koordinaten for hastighedsvektoren efter kollisionen er:
Nu er du klar til at lave koden til proceduren for at skifte retning ved en skrå platform. Videoen i næste aktivitet viser, hvordan ovenstående formler bruges i koden til proceduren.
I denne video ser du
- hvordan du beregner hastigheden efter refleksion på platformen.
Opgave 4.4.1 – hastighed efter refleksion på skrå platform
Tilføj den kode, som beregner hastighedsvektoren efter kollisionen
- Lav beregningen af vx og vy efter kollision med platformen.
- Tilføj denne kode til den nye skiftRetning-procedure.
- Færdiggør koden på samme måde som i videoen.
5. Projekt
Du skal lave et spil
- som indeholder mindst én bold eller anden genstand, som bevæger sig naturligt.
- hvor vandret bevægelse er lineær (dvs. uden tyngdekraft), og al anden bevægelse påvirkes af tyngdekraften.
- hvor mindst én ting opfører sig tilfældigt, f.eks. hvor og/eller hvornår en genstand dukker op, eller hvordan genstanden ser ud.
- som overholder modellen gameplay.
- som indeholder mindst ét motiverende element, som er tilpasset den valgte spillertype.
- som indeholder mindst ét element, som passer til den valgte spilgenre.
- hvor du kan vælge at inkludere luftmodstand, men det er ikke et krav.
Du kan læse om modellerne gameplay, spillertyper og spilgenre i dette modul.
Krav til spillets kode
Spillets kode skal indeholde
- mindst én variabel
- mindst én funktion/procedure – ”min brik” i Scratch
- mindst ét skift af kostume eller baggrund
- mindst én løkke
- mindst én betinget sætning
- mindst én hændelse ud over
Krav til arbejdsprocessen
Du skal arbejde systematisk med udviklingsprocessen. Du skal bruge og dokumentere, at du
- bruger modellen trinvis forbedring.
- vælger en målgruppe og udvikler en persona, som I inddrager, når du skal foretage valg i løbet af udviklingsprocessen.
- inddrager mulige brugere i test af protyper ved at lave 5-sekunderstest, usabilitytest og userexperiencetest.
Det er svært at være kreativ på kommando. Hvis du får besked på, at du lige nu skal finde på en idé til et spil, virker det sjældent. Måske vil du gå i stå og føle, at der ingen idéer kommer, eller du foreslå en løsning, som minder meget om et spil, du allerede kender.
Men der findes nogle teknikker, som kan hjælpe dig til at blive mere kreativ.
Ro og tid
- Bloker alle forstyrrelser – ingen notifikationer – læg mobil og computer langt væk.
- Afsæt et fast tidsrum. Lang tid nok til at du begynder at “kede dig”, og tankerne kan vandre – kort tid nok til at du føler et pres på at få nogle idéer.
- Laver du brainstorm sammen i en gruppe, skal I veksle mellem at fortælle om jeres idéer og være stille, så i hver især kan tænke selv uden at blive forstyrret
Benspænd
Et benspænd er et krav, som din idé skal opfylde. Det viser sig, at det er meget nemmere at få idéer, hvis man fokuserer på noget, frem for helt frit at skulle få idéer. I dette projekt skal du lave et spil med en “bold”. Et benspænd kunne være, at du skal finde på idéer, hvor “bolden er noget som normalt ikke flyver”.
Når du laver brainstorm i en gruppe, kan I skiftes til at finde på et benspænd. Benspændene må meget gerne være lidt fjollede eller svære at opfylde. F.eks. Find på en idé til et spil, som spilles af 2 personer, men kun styres med én knap. Efter hvert nyt benspænd skal alle have ro til at tænke og skrive/tegne egne idéer, før I snakker om idéerne.
Skriv eller tegn jeres idéer på små stykker af papir eller post-its, så I kan flytte rundt på idéerne og snakke om, hvilke idéer som kan supplere hinanden og tilsammen blive en bedre idé.
Vær positiv
Når I præsenterer idéer for hinanden i gruppen, må I ikke sige “nej” eller på andre måder være negativ overfor en idé. I skal gerne opnå en legende stemning, hvor I tør præsentere skøre idéer, som måske ender med at udvikle sig til en rigtig god idé.
Det er forbudt at sige “det er en dårlig idé”. I skal i stedet foreslå tilføjelser eller ændringer, som bygger videre på idéen. Svaret til “Vores bold kan være en flyvende hund” kunne være “Det er en god idé, så kunne hunden undgå at ramme flyvende katte, mens den samler flyvende kødben”.
Tilfældige ord og sætninger
Man kan bruge tilfældige ord til at lave gode benspænd. Enten kan man bruge enkelte ord som man trækker tilfældigt og derefter bruger I benspændet, eller man kan have flere bunker med ord, som man trækker fra og laver tilfældige sætninger.
Du skal bruge 4 ark papir. Skriv 20 ord på hvert ark og klip de enkelte ord ud. På de forskellige ark, skal der være forskellige kategorier af ord, så de kan sammensættes til sætninger.
- Navneord f.eks. hund, kat, cykel, bil, rumskib
- Udsagnsord f.eks. løber, hopper, svømmer, flyver
- Forholdsord f.eks. på, i, ovenpå, under
- Flere navneord f.eks. vand, is, bjerg
Læg de fire kategorier af ord i hver sin bunke og træk tilfældigt ét ord fra hver bunke. Nu kan de tilfældige ord sammensættes til sætningerne, som bruges som benspænd i gruppens benspænd. F.eks. “Cykel flyver under et bjerg”.
Samle idéer til et helt spil
Når I har lavet mindst 40 idéer – gerne flere – skal I sortere idéerne i gruppen, som kan bruges sammen. I skal gerne have nogle idéer til:
- hvordan skal spillet se ud?
- hvilke figurer/sprites skal der være i spillet?
- hvordan skal man styre spillet?
- hvordan vinder eller taber man spillet?
- ting som skal motivere spilleren til at blive ved med at spille
Når I har samlet én eller flere spilkoncepter, kan I gå i gang med at lave prototyper.
Det er vigtigt at lave prototyper, så du får konkretiseret og afprøvet dine idéer, inden du bruger lang tid på at programmere dit spil.
Papirprototyper
De tidlige prototyper er ofte tegninger. Lav skitser af alle skærmbilleder (baner) i spillet og af alle sprites. Du kan også bruge storyboards, hvor man tegner forløbet i spillet som en tegneserie. Her kan man lave et eller flere billeder, som f.eks. viser, hvad der sker, når spilleren trykker på en knap.
Fordele ved papirprototyper
- de er hurtige at lave
- det behøver ikke være pænt eller præcist
- du kan lave flere og hurtigt opdage, hvis der er noget, som måske er meget svært at lave.
Du kan lave prototyper i f.eks. et tegneprogram, men fordelen ved papirprototyper er, at det går hurtigere at tegne en ny, og du kan lave mange forskellige, så du kan vise forskellige prototyper til mulige brugere og teste IT-systemet, allerede inden du begynder at programmere.
Fysisk prototyper
Det kan være en fordel at klippe alle sprites ud, så du kan flytte rundt på sprites og undersøge om interaktionen mellem spiller og spillet, kan laves på den måde, du forestiller sig.
Når man laver større IT-systemer, såsom Rejsekortet, har man brug for fysiske prototyper, f.eks. en model af en checkin-stander. På den måde kan man teste, om brugerne vil kunne forstå, hvordan udstyret skal bruges og hvordan IT-systemet kommer til at fungere.
Kørende prototyper
Undervejs i programmeringen af spillet kan du sagtens have forskellige udgaver af det delvist færdige spil. Det kan du bruge som kørende prototyper og dermed lade mulige brugere teste dele af spillet.
Da du ikke har meget tid til at programme jeres spil, kan dit spil være en kørende prototype, hvor du f.eks. har lavet én eller to baner, men har skitser til flere baner eller idéer til andre udvidelser, som du gerne ville have tilføjet, hvis der var tid nok.
Målgruppe
En målgruppe er en afgrænset grupper af personer, som du forestiller dig vil bruge det spil eller IT-system, du er ved at udvikle. Beskrivelsen af målgruppen kan indeholde:
- aldersgruppe, f.eks. unge mellem 16 og 20 år.
- specielle interesser, f.eks. fodboldfans.
- et specielt formål, f.eks. personer som vil lære sprog ved at spille et spil.
- spillertype – f.eks. stræbere som motiveres af at sample point og slå en highscore.
Der et vigtigt at få beskrevet målgruppen præcist, så du kan lave gode designvalg, når du skal designe og programmere dit IT-produkt.
Persona
En persona er en beskrivelse af en konkret person på en form, som skal forestille en virkelig person. Idéen med at bruge personas er at tvinge designere af IT-systemer til at tænke på rigtige brugere, når de beskriver kravene til systemet, så de ikke kun fokuserer på de tekniske krav.
Det hjælper også at tænke med en bestemt persona, når du skal træffe valg, mens du programmerer dit spil. Hvis du har lavet en beskrivelse af en persona kaldet Nikolaj, kan du spørge sig selv: “Ville Nikolaj foretrække, at denne knap er blå eller grøn?”.
Beskrivelsen af en persona indeholder:
- et navn, f.eks. Nikolaj.
- en præcis alder, f.eks. 17 år.
- en beskrivelse af hvad personaen kan lide og ikke lide, f.eks. Nikolaj kan lide spil, hvor han kan konkurrere med andre om at få flest point.
- en beskrivelse af personaens formål med at bruge den type IT-produkt, du designer. F.eks. Nikolaj gider ikke øve sig på tyske gloser, men synes, at det ok at øve sig, hvis det er i et spil, hvor han kan konkurrere om at slå sin egen highscore.
Beskrivelsen kan også indeholde:
- hvor og hvordan personaen typisk bruger IT-systemer.
- personaens behov for et IT-system af denne type.
- hvilke krav og forventninger personaen kan have til IT-systemer af denne type.
En beskrivelse af en persona må gerne minde om en personbeskrivelse i faget dansk. Du må til gengæld ikke fortælle om, hvordan personaen bruger netop dit IT-produkt, da det er ikke designet færdigt, når du laver personaen. Persona er altså et redskab, som skal hjælpe dig med at designe dit IT-produkt.
Scenarier og storyboards
Et scenarie er en beskrivelse af et menneskes aktivitet. Den beskriver kort, hvordan IT-systemet kan bruges, f.eks. hvad man gør trin for trin, når man bruger IT-systemet. Det beskriver også den sammenhæng, brugeren er i, når systemet anvendes.
Storyboards egner sig godt til spil, hvor der fortælles en historie, som udvikler sig f.eks. med flere scener eller spillebaner. Et storyboard svarer til, at du vil lave en film og tegner eller beskriver filmens scener: hvordan ser det ud og hvad sker der i en scene.
Vandfaldsmodel
Nogle IT-produkter kan vi forestille os meget præcist. Vi kan lave en liste med ting, som systemet skal kunne, og vi ved på forhånd, hvordan det skal virke. Til den slags IT-produkter virker vandfaldsmodellen godt.
Modellen hedder vandfaldsmodellen, fordi vand altid løber én vej, nedad. Du kan altså ikke gå tilbage til en tidligere fase i denne udviklingsmodel. Vandfaldsmodellens faser kan være:
- Kravspecifikation: Udvikler og kunde bliver enige om en liste af krav, som IT-produktet skal opfylde.
- Design: Udvikleren laver et design af skærmbilleder og interaktion, som passer til kravspecifikationen, dvs. beskriver de enkelte dele mere detaljeret.
- Implementering: Udvikleren programmerer én ting ad gangen, indtil hele kravspecifikationen er opfyldt.
- Test: IT-produktet testes, og udvikleren dokumenterer, at IT-produktet virker og ser ud som aftalt.
- Aflevering: IT-produktet afleveres til kunden.
Hvis du allerede nu kan lave en præcis kravspecifikation til dit spil, hvor alt kan tegnes i papirprototyper og beskrives, så kan du bruge vandfaldsmodellen som udviklingsmodel.
Agile udviklingsmodeller
Desværre er det sjældent, at man kan beskrive alle krav til IT-produktet på forhånd, som er et krav for at bruge vandfaldsmodellen. Derfor bruger man ofte en agil udviklingsmodel, hvor man kan gå frem og tilbage mellem faserne. Agil betyder en bevægelse som er hurtig og fleksibel.
Når du skifter hurtigt frem og tilbage mellem udviklingsprocessens faser og kræver det god projektledelse, især i større projekter. Der findes mange forskellige agile udviklingsmodeller, som alle fokuserer på forskellige måder at styre udviklingsprocessen.
Når du arbejder på et mindre projekt i en lille projektgruppe, er det vigtigt, at alle gruppens medlemmer er beviste om, hvilken fase I er igang med, så I ikke blander det hele sammen. Især implementering (programmering) og design kan meget vel blive blandet sammen, hvilket gør, at man mister overblikket og bruger for meget tid på programmering.
“Trinvis forbedring” er en måde at styre udviklingsprocessen. Du arbejder på én del af projektet og går igennem faserne design, implementering og test én eller flere gange, så du trinvist forbedrer denne del. Derefter kan du gå videre til nye dele af projektet.
Interaktion kan defineres bredt som alt samspil mellem en bruger og et IT-system. Interaktionen går to veje:
- Brugeren aktiverer IT-systemet med input. Input kan f.eks. ske via tastatur, mus eller skærmen på en mobiltelefon.
- IT-systemet laver et output som ofte afhænger af brugerens input.
Samlet beskrives input- og outputmulighederne ofte som systemets brugergrænseflade, dvs. grænsen mellem menneske og IT-system. Med et godt interaktionsdesign er IT-systemet designet, så det virker godt for brugeren af IT-systemet.
Usability
IT-systemer med høj usability er lette af anvende for brugeren. I et spil med høj usability vil brugeren have let ved at forstå, hvordan spillets regler fungerer, hvordan man styrer spillet og hvad målet med spillet er.
IT-systemer som virker som andre tilsvarende IT-systemer har ofte høj usability. Hvis brugeren gør, som vedkommende plejer, er outputtet som forventet. Mange computerspil kan styres med pile-tasterne, hvor man også hopper med mellemrumstasten, og derfor forventer brugerne, at et nyt spil gør det samme.
IT-systemer med høj usability er:
- lette at lære at bruge – intuitive.
- lette at huske, hvordan man bruger.
- effektive at bruge.
- forventelige – man får det output, man forventer.
- sikre at bruge – man kan ikke lave fejl ved et tilfælde/uheld.
Userexperience
Brugerens oplevelse af IT-systemet kaldes ofte userexperience. Et spil med god userexperience er sjovt og brugeren bliver motiveret til at fortsætte med at spille spillet. God usability er ofte forudsætningen for, at et spil også kan have en god userexperience. Kort sagt er usability det tekniske i interaktionen, og userexperience er de følelser brugeren oplever ved interaktionen med IT-systemet.
IT-systemer med god userexperience er:
- tilfredsstillende – opfylder et behov.
- æstetisk behagelige – pænt design og behagelige farver.
Desuden kan IT-systemer være:
- underholdende
- sjove
- motiverende
- belønnende
Især spil skal opfylde de sidste krav for at få en høj userexperience.
Der findes forskellige typer test, som egner sig til at teste forskellige dele af et IT-produkt og bruges på forskellige tidspunkter i udviklingsprocessen. Det er vigtigt at teste ofte i udviklingsprocessen, så man hurtigt kan ændre designet, hvis det virker dårligt.
Jo flere testpersoner du bruger, jo bedre kan du regne med dine testresultater. Når du laver en test skal du planlægge testen, udføre den og til sidst konkludere, hvad du vil ændre i IT-systemet.
5-sekunders-test
Da det er vigtigt, at brugere hurtigt kan se, hvad et spil, en webside eller et andet IT-produkt kan bruges til, er det vigtigt at teste brugernes førstehåndsindtryk af et IT-produkt. I en 5-sekunderstest ser testpersonerne kort (fem sekunder) IT-produktet og skal derefter fortælle om, hvad de lagde mærke til.
En 5-sekunders-test er god til at teste det umiddelbare indtryk, f.eks. om de valgte farver signalerer, at IT-systemet henvender til den valgte målgruppe.
Planlægning af 5-sekunders-testen
- Vælg, hvilken del af IT-produktet du vil teste, f.eks. startsiden på dit spil.
- Vælg, hvem testpersonerne skal være, f.eks. personer i målgruppen, måske andre elever på skolen.
- Vælg, hvilke spørgsmål du vil stille testpersonerne. Typiske spørgsmål kan være “Hvad lagde du mærke til?”, “Hvem tror du IT-produktet henvender sig til?”, “Hvad er dit indtryk af designet?”.
Spørgsmålene skal være åbne spørgsmål, så testpersonerne ikke kan gætte, hvad du gerne vil have de skal svare. Husk, at testpersonerne ikke må kunne se IT-produktet, når de svarer på spørgsmålene.
Udførelsen af 5-sekunders-testen
Det er vigtigt, at du fortæller testpersonerne, at de kun har fem sekunder til at kigge på IT-produktet, og at de derefter skal fortælle om det uden at kunne se på det. Derefter vises IT-produktet eller prototypen i fem sekunder (tag tid). Når fremvisningen er overstået, stiller du dine forberedte spørgsmål og noterer testpersonernes svar.
Fortolkning og konklusion
Ud fra de svar, du har fået, skal du konkludere og prioritere de ændringer, du vil lave. Det kan f.eks. være, at du vil ændre farver på eller placering af de vigtigste elementer i spillet, så brugerne opdager de vigtigste elementer med det samme.
Tænke-højt-test – usabilitytest
I en tænke-højt-test afprøver testpersonerne dit IT-system, mens de fortæller, hvad de tænker undervejs. Denne type test kan være god til at forstå, hvilke dele af designet, der virker ulogisk, fordi testpersonerne f.eks. vil sige “Jeg kan ikke finde …” eller “hvordan kommer jeg videre?”.
Planlægning af usabilitytest
Hvis det er et spil, du tester, vil du ofte bede testpersonerne afprøve dit spil uden at give flere instruktioner. Hvis det er en tænke-højt-test, skal testpersonerne instrueres i at fortælle alt, de tænker undervejs.
Du skal vælge fokus for din test, f.eks. at du vil observere:
- hvor lang tid går der, før testpersonerne finder ud af spillets regler og målet med spillet.
- går spillet for hurtigt eller langsomt.
- er der tidspunkter i spillet, hvor testpersonen ikke kan komme videre. Her bliver du nødt til at hjælpe.
Du kan eventuelt afslutte usabilitytesten med nogle spørgsmål om det tekniske i spillet.
Udførelsen af usabilitytesten
Hvis I er to til at udføre testen, er det bedst, hvis den ene taler med testpersonerne, og den anden observerer og noterer reaktioner og svar på spørgsmål.
Fortolkning og konklusion
Når du har lavet testen, laver du en liste, hvor du prioriterer de forbedringer, du bør lave. Notér gerne alle mulige forbedringer og vurdér herefter, om de er ”lette”/”svære” at lave, samt om de er ”meget vigtige” eller ”mindre vigtige”. På den måde kan du lave de lette og vigtige ændringer først.
Userexperiencetest
Denne test kan ofte kombineres med usabilitytesten. Du kan tilføje nogle spørgsmål til testpersonerne, som du stiller, efter testpersonerne har lavet usabilitytesten. Husk, at det skal være åbne spørgsmål, så testpersonerne ikke kommer med ja/nej eller høflige svar.
- hvad er det sjoveste i dette spil?
- hvad skal vi ændre i spillet, for at det bliver sjovere?
- hvem passer spillet til?
A/B-test
I A/B-test afprøver du to forskellige muligheder og ser, hvad brugerne bedst kan lide. Det er meget udbredt i udviklingen af webbaserede IT-systemer, hvor du let kan ændre IT-systemet, så nogle af brugerne ser version A og andre version B. Derefter kan du undersøge om brugerne reagerer forskelligt, f.eks. om flest brugere køber en vare i en webshop, når de ser version A eller B.
Spilgenre
Spil kan opdeles i forskellige typer kaldet spilgenre. Nogle spil har elementer fra flere spilgenre, så de kan henvende sig til en bred målgruppe. Der findes mange forskellige spilgenre og måder at kategorisere spil.
Aktionspil
Dette er en meget bred spilgenre, hvor det vigtige er, at man er hurtig og har gode reflekser. Tempoet og tidspresset er en vigtig del af disse spil. Mange skydespil, hvor du enten spiller mod computeren, andre eller sammen i hold, har elementer af aktionspil.
Platformsspil, hvor du skal fange eller undgå genstande, hører også til denne spilgenre. Tempoet i denne type spil går ofte hurtigere og hurtigere, så spilleren oplever et tidspres og bliver bedre til spillet ved at spille det mange gange.
I aktionspil skal du ofte score point og undgå at miste liv eller blive skudt. En del aktionspil er korte og simple, men kan spilles mange gange for at opnå flere point.
Adventure
I adventurespil skal du f.eks. løse gåder for at komme videre i spillet. Du kan gå på opdagelse og blive ved med at finde nye ting og steder i spillet. Denne spilgenre behøver ikke at have en slutning eller et mål.
Strategi
I strategispil handler det om at vinde ved at lægge en god plan, kunne analysere mulighederne og træffe gode valg, f.eks. vælge den rigtige taktik. Den rigtige strategi eller taktik kan afhænge af modstanders valg, og derfor skal du måske tilpasse din taktik i løbet af spillet.
Strategispil kan både spilles i grupper eller mod enkelte modstandere. I nogle spiltyper skiftes modstanderne til at lave et træk, i andre spiller man mod hinanden real-time, og denne genre handler derfor både om taktik, koordination i gruppen og hurtighed.
Processpil
Processpil kaldes sandbox games på engelsk og minder mere om leg end et egentlig spil. Der er ikke et bestemt mål i spillet, og spilleren opbygger ofte sin egen verden i spillet. Det er en spilgenre, hvor der er mange muligheder og valgmuligheder, og hvor spilleren delvist kan lave sit eget spil i spillet.
Du kan læse om flere forskellige spilgenre og kombinationer af spilgenre her:
Spil er forskellige og ikke alle kan lide de samme spil. Forskellige spillertyper motiveres af forskellige elementer i spil, og derfor designes spil, så det passer til en eller flere spillertyper.
Stræbere (achievers)
Stræbere vil gerne konkurrere og være bedst. Enten konkurrerer stræbere mod sig selv og vil f.eks. forbedre sin egen high score, ellers konkurrerer stræbere mod andre spillere og vil gerne kunne sammenligne sig med dem, f.eks. om at have den bedste high score.
Stræbere motiveres ved at kunne vise egne resultater frem og kunne sammenligne sig med andre. Selv simple spil kan motivere stræbere, hvis man skal øve sig for at blive god til at spille spillet. Men også spil med mange niveau kan motivere stræbere, hvis man skal være dygtig og nå langt i spillet.
Udforskere (explorers)
For en udforsker er spillets verden og historie vigtig. Spillet skal udvikle sig og man skal gerne blive ved med at kunne opdage nye ting i spillet. Der må gerne være skjulte elementer i spillet, som ikke alle opdager, eller som først bliver tilgængelige, når man løst bestemte opgaver.
Dræbere (killers)
I spil kan man lege med at gøre ting, man aldrig ville gøre i det virkelige liv, f.eks. slå ihjel eller være destruktiv og ødelægge ting. Dræbere fokuserer ofte på magt og muligheden for at bryde med normal etik og moral. Spil, som henvender sig til dræbere, kan opleves grænseforskridende for andre spillertyper.
Sociale (socializers)
Sociale spillere vil gerne være sammen med andre om at spille og opbygge et netværk med andre spillere inden i spillet. Muligheder for at kunne kommunikere om spillet og i spillet er vigtigt for sociale. Det er vigtigere for sociale at deltage og være sammen med andre om spillet end at nå et bestemt mål.
Flere spillertyper
De fleste motiveres af forskellige elementer i spil og tilhører derfor flere spillertyper. Modellen med de 4 spillertyper kan dog hjælpe i designfasen, så du ved, hvilke elementer du skal have med i spillet for at motivere den spillertype, du udvikler spillet til.
Et spils gameplay er de rammer, der er for spillet og den oplevelse en spiller får, når spillet spilles. Et godt gameplay er tæt knyttet til begrebet userexperience.
Man kan designe et godt spil ved at arbejde med forskellige elementer i spillets gameplay, f.eks. regler, motivation, læring og identifikation.
Regler
Spillets regler dækker over, hvordan spilleren interagerer med spillet og målet med spillet, f.eks. hvordan spilleren vinder spillet. Regler skal være:
- logiske – f.eks. spilleren går til højre, når man trykker på højre piletast.
- genkendelige – spilleren gør det samme som i andre spil.
- forståelige – f.eks. bevægelser i spillet svarer til bevægelser i den rigtige verden.
Er du nødt til at forklare sine regler for spilleren, skal du overveje, om du kan forbedre spillet, så det bliver lettere for spilleren at komme i gang med spillet selv.
Motivation
Spilleren skal gerne have lyst til at fortsætte med spillet. Forskellige spillertyper motiveres forskelligt, og du skal derfor tilpasse dit spil til den spillertype, som er målgruppe for spillet.
En stræber (achiever) vil gerne slå sin egen og andre spilleres high score. Derfor kan man forbedre motivationen for denne spillertype ved at vise egen og andres high score, som den aktuelle pointscore kan sammenlignes med.
En udforsker (explorer) motiveres af at opdage nye ting i spillet. Hvis spilleren kan få adgang til flere baner eller nye områder i spillet, eventuelt ved at løse gåder eller opgaver, kan det motivere spilleren til at gå på jagt efter de nye elementer i spillet.
Læring
Læring drejer sig om følelsen af at blive bedre til at spille et spil. Når man føler, at man bliver dygtigere og opnår nye kompetencer, motiveres spilleren til at blive ved med at spille spillet. Det er vigtigt, at udfordringerne tilpasses spilleren, f.eks. tempoet i spillet eller sværhedsgraden af gåder, som skal løses.
I mange spil sættes tempoet op, jo længere spilleren når. Hvis det bliver for svært for hurtigt, er spillet demotiverende, da spilleren dermed taber hele tiden og aldrig når langt. Hvis spillet udvikler sig for langsomt, bliver det kedeligt og ensformigt. Det gode spil udvikler sig, så spilleren oplever, at man hele tiden udfordres, uden at det bliver for svært.
Læring betyder ikke, at man skal lære noget bestemt, som i skolen. Det er vigtigt, at spilleren lidt efter lidt klarer sig bedre i spillet.
Identifikation
For nogle spillere er det vigtigt, at man føler sig som en figur i spillet. Identifikation kan opnås ved at spilleren:
- ser spillet fra en sprites synsvinkel, f.eks. i skydespil.
- kan vælge sin figurs/sprites udseende.
- kan udbygge sin sprites egenskaber, f.eks. får flere muligheder jo længere man kommer i spillet.
I dette projekt skal du bruge det simple blokprogrammeringssprog “Scratch”. Fordele ved Scratch:
- Det er simpelt at programmere med blokke bl.a. fordi du har blokke, som klarer svære opgaver, som f.eks. registrering af om to sprites rør hinanden.
- Du har adgang til mange sprites/figurer.
- Spilplanen opfører sig som et koordinatsystem i matematik, så du kan bruge den matematik, du kender. I andre systemer vender y-aksen modsat.
Ulemper:
- Du er begrænset til 2D-spil. Det er svært at lave noget, som bevæger sig i 3 dimensioner.
- Du skal selv programmere bevægelsen. I nogle systemer er tyngdekraften indbygget, så bevægelsen sker automatisk.
Større spil udvikles i et avanceret udviklingsmiljø, hvor det er let at arbejde sammen, og det færdige spil kan afvikles på mange forskellige platforme, både computere, spilkonsoller og mobile enheder. Et populært udviklingsmiljø er Unity, som oprindelig var dansk.
Startknap
I denne video kan du se, hvordan du styrer et spil med beskeder.
Lister
I denne video kan du se, hvordan du kan bruge lister til at styre placering af sprites.