Computerspil Gruppe: Julia, Rasmus N, Edgar og Frederik P Indledning Vi fik til opgave at følge den basale systemudviklingsmodel, som vi skal følge og dokumentere ud fra. Inden at dokumenterer hvordan vi laver og udtænker vores computerspil så skal vi have en plan for hvilke metoder o redskaber vi vil bruge til at udtænke vores computerspil. En dokumentation over de overvejelser vi har lavet over hvordan vi har tænke os føre vores spil frem. Her i gruppen vil vi starte ud fra planlægningen, derefter sætte kravene til spillet, finde ud af, hvordan designet skal passe overens med at ramme vores valgte målgruppe. Få designet og sat spillet sammen og undersøge de forskellige genre af spilleformer, og til sidst afprøve det. Case Vores plan er at designe et 3D spil, i programmet Unity. Vi havde tænkt os at vi ser en stort platform, hvor en bold skal køres igennem en forhindringsbane. Bolden skal derfor være i stand til at kunne køre frem, tilbage og til begge sider. Men samtidigt også være i stand til at kunne hoppe over mulige genstande.
For at gøre spillet mere udfordrende, havde vi tænkt os at tilføje et pointsystem. Du ville kunne få point, ved at samle objekter op på platformen. Hvis vi vælger at følge Laswels model, vil det lyde sådan: Afsenderen er os (gruppen), som har valgt at lave et 3D arkade-boldspil, igennem Unity. Vores mål er at gøre spillet interessant for folk i alderen fra 9 til 13, og til de eventuelle folk der måske stadig vil mindes de lidt ældre dage, hvor de stod i spillehallerne. De fem iterative aktiviteter: Iterationsplanlægning - Kravspecifikation og testspecifikation - Design - Implementering - Test Planlægning Kravspecifikation Design Implementering Afprøvning Med denne her model kaldt de fem iterative aktiviteter da de bliver gentaget så mange gange som muligt indtil der ikke er mere tid eller man syntes det man har udviklet er færdigt. Vi vil dog hellere bruge den simplificerede udgave af modellen som står til højre da den er lettere at tage stilling til. Kommunikationsplan Børn i 9-13 års alderen er ofte nysgerrige, men de kan stadig godt kan lide at søge hen til et mere tidsfordrivende arkade spil. For at gøre vores 3D-boldspil interessant for målgruppen, er det vigtigt at få nogle underholdende punkter ind, såsom et pointsystem og fangende musik. Hvad er et Arkadespil? Arkadespil er et let tilgængeligt spil, vi engang spillede på spillemaskinerne i spillehallerne rundt omkring. Et arkadespil skal være nemt, så selv nye spillere ikke skal bruge alverdens tid på at kunne finde ud af det. Der er ingen historier, eller nogle omstændig opbygning som de mere moderne spil vi ser i dag. Vi valgte at lave vores arkade-boldspil til aldersgruppen 9-13 år, fordi det ofte er unge brugere der lige finder et tidsfordrivende spil frem.
Derfor skal vi tænke. På at det er vigtigt at vores arkadespil ikke indeholder for svære udforinger, da det skal være let tilgængeligt. Men også et let overskueligt pointsystem, så en 9-13 årig ville kunne forstå konceptet. Spillet må på ingen måde indeholde for avanceret ord, eller skabe et sprog, som målgruppen ikke ville kunne forstå. Vores 3D-boldspil vil vi prøve at gøre interessant for begge køn, men da størstedelen af de computerinteresseret er drenge, er det svære at tiltrække pigernes opmærksomhed. Derfor skal vi også overveje, hvilke krav de forskellige køn ønsker i et platform spil. Når vi har fået undersøgt det, skal vi forsøge at lave at lave et godt mix, der opfylder krav hos begge køn. I bund og grund, skal vores spil bare være et du tager op, når du ikke lige har andet at tage dig til. Fremgangsmåde Panel: Her til venstre kan man se hvordan de to mest væsentlige og mest brugte vinduer i programmet Unity ser ud (Game og Scene). I det ene kan man se de ændringerne man gøre ved den scene spilet skal foregå i hvor man øverst kan se den standard vinkel og spil syn der vil være i spillet ud fra hvor man sætter kameraet. I Unity er der en standard panel som bliver brugt til i det hele taget at omformatere objekter i vores scene. Med denne kan man ændrer på objekters størrelse/volumen, rotation og rykke rundt på scenen. Dette kan kaldes den manuelle metode at omformatere objekter på
den anden ville være at ændre på vores objekts specifikationer ved at gå ind på vores inspektor som vi vil gå ind på senere. Til venstre er vores hierarki som viser alle de objekter vi har inde på vores scene. Her kan vi have et overblik over de objekter over vi har på vores scene. Vi kan her ligge andre objekter under hinanden som parent/child og i det hele taget holde styr på vores projekt. Projekt filerne er også om rygelige så vi for eksempel kan flytte dem over til en Projekt mappe. Her kan man ligge sine materialer eller objekter i mapper så man eventuelt kan drage dem hen til et objekt i scenen det samme med andre projekt filer, her kan der også være lydfiler eller flere scener. Sphere: For at lave et objekt vi kan rykke rundt som vi kan kalde vores player skal vi gå ind og vælge en kugle inde i 3D objekter da vores spil er en 3D platform spil. Denne vil på standartvis komme frem på vores scene og hierarki så vi kan ændre på denne. Efter at have valgt vores objekt som vi kan kalde hvad vi vil så vil vores inspektor komme frem som viser vores objekts specifikationer. Ved at lave et nyt materiale kan vi give vores kugle en farve her har vi givet den farven rød. Vi tilpasser den også så den får des rigtige størrelse. Vi laver også en Script så den vil kunne bevæge, hoppe og samle objekter op, denne vil vi lave ved hjælp af Visual Studio som vil komme senere. Her er vores Script som er blevet sat ind ved hjælp af add komponent som man kan se nedenunder. Herfra kan der blive sat komponenter ind i vores kugles inspektor. Herfra kan vi åbne vores script eller de aktivere denne.
Pickup: Her har vi en cube objekt som vi har sat ind på scenen denne her skal virke som Pickup hvilket betyder at den vil blive samlet op af vores player kugle. For at den ser lidt mere attraktiv ud bliver den roteret inde på vores transformer. Den får nogle forskelige vinkler på hver dens akse (x, y og z som Unity arbejder med) ved hjælp af dette kan man se dens dimensioner hvilket får spilet til at se mere 3D lignende ud. Vores cube får også et script så denne kommer til at cirkulere rundt om sig selv så det bliver mere interaktivt. For at vores cube og kugle vil kunne fuldføre disse handlinger som vores script vil tillade dem så skal vi de også have nogle fysiske egenskaber: Physics: For at vores cube kan blive opsamlet har vi brug for at sætte Is Trigger til. Trigger er et fysisk udtryk som bliver brugt lige såvel i Unity som i scripts til denne. Derfor er det vigtigt at trigger er slået til så scriptet og objektets fysiske egenskaber hænger sammen. Til venstre har vi en Rigidbody celle som hører til vores player kugle. Rigidbody ændre på objekters masse og gøre dette til en fast masse som ikke bare falder igennem det hele. Det har også en standard tyngdekraft celle som ligesom vi kender den, gøre at vi ikke bare vil svæve væk men på et bestemt tidspunkt vil falde ned, som man sådanset også kan ændre på ved at ændre på massen, som i dette tilfælde er 3 så når vi hopper ikke er for tunge men heller ikke er så lette at vi hopper alt for højt op. Kamera og lyd: Selvom der kan være flere kameraer så vil der for det meste et hoved kamera (som ved default hedder Main Camera) som vi kan forbinde med vores player ved hjælp af et script. Kameraet kan ligesom hvilket andet objekt blive flyttet og drejet på, hvor de mere detaljeret ting som vinkel kan blive gjort inde på inspektor til denne. Vi vil gerne have vores kamera til at have en konstant placering (vinkel og position) i forhold til vores kugle når den bevæger sig. Efter at have fundet en god placering laver vi et script og i stedet for at sætte kameraet som child til vores kugle som man ellers ville have troet så vil mas sætte
det respektive objekt ind i script cellen. Man kan ikke direkte sætte de to komponenter som child og parent til hinanden fordi så vil vores kamera dreje rundt om vores player uden at tage hindsyn til vores script som giver os en placering. Vi vil gerne have forskellig lyd til vores spil, både når vi udfører nogle handlinger og noget som markerer at spillet fx slutter. I modsætning til kameraet kan man godt sætte denne som child til det respektive objekt. Unity tolererer mange forskellige slags lydfiler så får det meste kan man bare importere noget lyd sætte det ind i den audioclip celle som bliver givet efter man har givet sit objekt en Audio Source inde på GameObjekt/Audio/Audio Source. I tilfældet af baggrunds musik så sætter vi det som child til Main Camera da det er det sted som er tættest på spileren. I tilfældet af hoppe eller indsamlings lyde så er vi nød til at gå over til scripts da denne skal kunne blive reproduceret ved hjælp af en bestemt handling. Da det er den samme proces tager vi hoppelyd som eksempel. Selvom vi ikke kan beskrive det så konkret som at vise scriptet (hvilket vil foregå senere) så kan vi i hvert fald sige at vi referere til vores importerede lydfile ved at referere til den mappe de ligger i ved under referencen af den handling den skal udfører (at hoppe). Her kan vi se de specifikationer og egenskaber der bliver mulighed for at ændre på. Da vores hoppelyd ikke skal køre i en lang repetition så vil vi ikke sætte loop på i sammenligning med vores baggrunds musik som gerne må kører uendeligt. For ikke at glemme at nævne, har vores Audio Source ikon som bliver vist på vores scene et lyd areal som man kan ændre størrelsen på enten manuelt eller på dens inspektor. Dette vil forstøre det areal lyden vil blive hørt på. Og da det i baggrund lydens tilfælde er forbundet til til kameraet så vil lyden/musiken konstant blive hørt. Script, Build and run: At lave scripts er en stor del af at arbejde med Unity. I vores projekt/spil har vi brugt C Sharp i stedet for JavaScript som man også kan bruge fordi script sproget virkede som det mest nemme og konventionelle, også fordi det måske var det programmerings sprog som lignede mest HTML som vi brugte under hjemmeside/portfolio forløbet. Scriptsne vil være med i projekt mappen men også til sidst her. For at bygge og hente spillet er der et vindue i Unity hvor der hedder Build Settings, File/Build Settings. Her kan man både afprøve spillet og hente det. Unity tilbyder også flere platforme som vi ikke har haft nogle overvejelser om i forhold til tid. Umiddelbart kan man køre det færdige spil på alt hvad der er pc bare man har Unity installeret ellers (andre platforme som ikke er pc) er det ikke altid nødvendigt.
Afprøvning og Konklusion: Selvom vi var bevidste at vi ikke ville nå at få gjort vores spil helt færdigt så afprøvede vi engang i mellem for at se hvor langt vi vår nået, hvad der manglede og hvad der var realistisk at nå. Som en gennemgang/overvejelse af vores forløbet, så er der flere ting som vi kunne have gjort bedre eller have gjort på andre måder. Selvom vi holdt os til de modeller der er for at systemudvikle, som iterations-modellen, så er der flere steder hvor vi er kommet ind i nogle onde cirkler under forløbet. Selvom det i det hele taget er godt at have en model at arbejde efter er det i vores tilfælde ikke sket så vi hele tiden har taget hensyn til denne. Vi lavede endda et arbejdsskema/gant-diagram som vi kunne holde os til men fik ikke helt brugt det. Årsagerne til nogle af vores organisationelle problemer har også været at nogle har været syge eller fraværende under forløbet og det har derfor været svært at aftale. I starten af forløbet har det været lidt besværligt at komme i gang da det ikke er alle der havde så meget viden om programmering eller ide om hvilket slags spil vi skulle lave og derfor er det blevet en langsom start på projektet. Dem der arbejdede med spillet under forløbet og hvordan Unity virker har skulle tage noget tid for at forstå principperne og funktionerne. Problemet her er også at for dem der dokumenterer omkring spillet på et tidspunkt får brug for mere viden omkring spillet da de ikke selv har været inde og arbejde med det. Derfor er der nogle overvejelser omkring at der næste gang kunne blive omstruktureret på arbejdsfordelingen, men som igen var der nogle der manglede. Case v2 Vores plan er at designe et 3D spil, i programmet Unity. Vi havde tænkt os at vi ser en stort platform, hvor en bold skal køres igennem en forhindringsbane. Bolden skal derfor være i stand til at kunne køre frem, tilbage og til begge sider. Men samtidigt også være i stand til at kunne hoppe over mulige genstande. For at gøre spillet mere udfordrende, havde vi tænkt os at tilføje et pointsystem. Du ville kunne få point, ved at samle objekter op på platformen. - Intet der indikerer at spillet er slut (lyd eller tekst) - Intet der indikerer point (lyd eller tekst) - Ingen Menu - Ingen Titel på vores spil
Script PlayerController:
Pickup: CameraControl: