IT SELVVALGT PROJEKT Arcade spil Andreas, Emil D. og Oliver Roskilde Tekniske Gymnasium
Indholdsfortegnelse Indledning... 2 Teori... 2 Action spil... 2 Maze games... 2 2d platform... 2 Skyde spil... 2 Kamp spil... 2 Overlevelses spil... 3 Asymmetrisk... 3 Lærings spil... 3 Børene spil... 3 Seriøs lærings spil... 3 Vores spil genre... 3 Design af action spil.... 3 Design af et læringsspil.... 4 Produkt... 4 Software... 4 Krav... 5 Koden... 5 Kontrolles... 7 Test... 8 Videreudviklingen... 8 Konklusion... 8 Kildeliste... 8 Bilag af vores kode... 8... 10
Indledning Vi har i Informations Teknologi arbejdet med et projekt hvor vi selv skulle vælge hvad vi ville arbejde med, selvfølgelig inden for de IT orienteret principper. Projektets formål er at træne fagets elementer i faglige og tværfaglige sammenhæng. Vi har valgt at arbejde i et helt nyt program GreenFoot, som minder meget om Game maker. (Greenfoot bliver forklaret i Afsnittet Produkt ) Kommenterede [MFN1]: ok Teori I dette afsnit ville vi beskrive teorien for spil, samt belyse de forskellige spille typer. Vi vil til sidst kategoriserer vores eget spil, i blandt de forskellige muligheder. Der findes utrolige mange spil gerne. Nogle genre kan man spille for at fordrive tiden, andre kan ligge inde med udfordringer. Jeg vil i de beskrive nogle genrer og gennemgå deres formål. Kommenterede [MFN2]: ok Action spil Action spil er den største genre der er inden for computerspil og også en af de første genrer kom på markedet. Den er delt op i flere gruppe da den både har voldelige spil, og spil hvor det gælder om at skynde sig. Det der er fælles ved alle action spil er at det går hurtigt. Senere er der også tilføjet strategi og taktik momenter til spillet. Maze games Dette er nogle af de første action spil der hører under denne kategori. Pacman er nok det mest kendte spil der hører under denne genre. Det der er karakteristisk for denne type spil er det hele forgår i en labyrint. I dag er genren primært som et skydespil hvor spilleren bevæger sig en labyrint. Ellers kommer der næsten ikke nye spil af denne genre på markedet. 2d platform Denne type spil var også særligt oppe i 1980 hvor Game Boy og lignede hittede. Det der er karakteristik for dette spil er spilleren kigger på spillet fra siden og styrer en figur gennem forskellige baner som oftest er nogle platforme figuren opper i mellem. Her er spil som Super Mario et godt eksempel. Skyde spil Så er der skydespillende, her er der mest tale om 2d visionen som er en under genre for platforms spil. Men her hopper figuren rundt på en masse platforme og skyder fjenderne ihjel. Der er både typer hvor man selv bevæger sig men også typer hvor figuren er låst til stedet og man styrer retningen af skuddene. Kamp spil Her er den klassiske hvor man er to spiller der slår på hinanden. Både 2d og 3d ses på dette område. Det ses ofte over temaer fra tegnefilm som Dragonball og Pokemon. Men også nogle kampspil har sine egne figurer som Tekken.
Overlevelses spil Denne genre er kendt som blandinger af skydespil og overlevelses spil hvor man som forsvarsløs gemmer sig for fjenden. Det særlige ved denne genre er der blandes gyser elementerne ind i spillet. Et eksempel på et overlevelses skydespil er FEAR. Et nyere eksempel på et overlevelses spil hvor man ikke kan skyde sin fjende er Amnesia. Asymmetrisk Denne type genrer er en ældre type spil der i 2d forsøget at skabe et 3d univers. Et eksempel på dette er Congo Bongo. Se desuden figur 1. som det ligger i ordet asymmetrisk passer tingene ikke symmetrisk sammen. Derfor trykkes på pilen venstre går figuren ikke til venstre men mod venstre ned. Lærings spil Formålet med denne type spil er at lærer brugen noget om det spillet handler om, på en udholdende måde. Det kan bruges til både voksne og børn. Der er mange måder at bruge spilverden til at lærer brugeren noget om emnet. Både med tidspres eller ved at spilleren skal løse en opgave. Men også via quiz og lege. Børene spil Den mest kendte af denne genre er børnespillende. Her er Pixeline en meget kendt spilfigur, navne som Pixeline og naturfag eller Pixeline og matematik 1 er meget kendte og bliver solgt over det meste af landet. Mange læringsspil til børn er meget forskellige og prøver at fange brugeren på forskellige måder. Seriøs lærings spil Denne type læringsspil går ud på at lærere brugen noget om emnet. Men det særlige er det er meget seriøse spil som omhandler seriøse emner. Et eksempel på denne er Americas Army som unge bliver sat til at spille så de kan øve sig i at blive soldater. Vores spil genre Vores spil kan man sige er en blanding af Overlevelse/Skyde spil, da man for at overleve i rummet skal skyde det utallige asteroider som kommer i mod en. Da spillet er en inspiration fra det gammel arcade spil Asteroides, har vi valgt at bygge det på en 2d platform for at få den samme spille oplevelse. Det der var med spillende i de ældre dage, var at man kunne ikke gennemfører dem, de blev bare svære og svære. Det samme har vi gjort med vores, ved at genstarte mængden af asteroider, når den første omgang er ryddet. Kommenterede [MFN3]: ok Design af action spil. For at designe et action spil skal man havde nogle særlige elementer. Det består ofte i at havde en karakter der skal gennemgå en opgave. Der er altid en forhindring for at fuldfører denne opgave, samtidig med der er nogle bonus point rundt omkring. Et som beskrevet i afsnittet omkring action
spil, som genre, er der beskrevet en masse undertyper. Mit spil skal som nævnt tidligere være et maze spil. Spillet skal have en labyrint, en spiller, en opgave, en udfordring og en eller flere bonuspoint. Senere kan der tilføres elementer fra overlevelsesgenren. Disse elementer er at vores forsvarsløse offer skal løbe rundt og samle point mens uhyrerne/mobberen kommer efter spilleren. Den sidste del jeg skal havde med fra action spil genren er tilføjelse af faktoren tid. Dette skal få spilleren til at løse opgaven endnu hurtigere. Design af et læringsspil. For at få spil i genren alvorlige læringsspil til at fungere, skal det havde følgende elementer med, et alvorligt emne, et budskab, en metode til at lærer spilleren om emnet, og en konsekvens vis det ikke lykkes. Mit spil som handler om emnet mobning, har budskabet stop mobning. For at stoppe mobning laver jeg en historie der appellere til spillerens patos så spilleren derved for medlidenhed til den figur han/hun spiller. Spilleren skal derved leve et liv som den mobbede, og derefter havde ondt af karakteren i spillet. Det sidste element konsekvensen hvis det ikke lykkes, er når karakteren mister alle sine liv. Her vil der så ske karakteren noget forfærdeligt, som i den virkelige verden når mobning ikke bliver stoppet. Vinder spilleren i stedet spillet, vil spilleren se en lykkelig slutning for karakteren, da mobningen nu er stoppet. Produkt Vi har med vores produkt brainstormede om hvilken gerne vi skulle gå efter, samt hvad vores handling i spillet skulle være. Efter at have søgt lidt på nettet, fandt vi frem til et gammelt arcade spil ved navn Asteroids. Vi var derfra inspireret til at lave et lignende projekt. Kommenterede [MFN4]: Vores spil Kommenterede [MFN5]: Gode overvejelser om indholdet, fint med teori afsnit selv om det ikke ligger i yderkanten af formålet men det kommer til at virke velovervejet. Kommenterede [MFN6]: Ok, men lidt omvendt tankegang, når man er offeret og ikke den der kan gøre noget(mest) ved det. Det hænger ikke så godt sammen med resten: arkadespil i rummet (mon det er placeret forkert?) Kommenterede [MFN7]: Ok, men gentagelse af afsnittet Vores spil genre Software Softwaren vi brugte til at programmere vores spil var Greenfoot. Greenfoot er en interaktiv Java udviklingsplatform designet primært til undervisningsbrug på gymnasier. Det giver mulighed for nem udvikling af to dimensionale grafiske applikationer, såsom simulationer og interaktive spil.
Greenfoots programmerings model består af en World Class som overordnede, derfra kommer der et vilkårligt antal af skuespiller/objekter, der har en indvirkning i verden, og kan programmeres til at handle selvstændigt. Verden og objekterne er repræsenteret ved Java objects og defineret af Java classes. Et eksempel på det kan ses til højre: Greenfoot tilbyder metoder til nemt at programmere disse Actors, herunder metoder for bevægelse, rotation, ændringer af udseende, kollisionsdetektion, med mere. Den grundlæggende programmering i Greenfoot, består af delklasser, World og Actor. Et eksempel på Worlds underklasser repræsenterer den verden, Greenfoots udførelse vil forekomme. Actors underklasser er objekter, der kan findes og handle i den pågældende verden. Kommenterede [MFN8]: ok Krav Vores primære krav til opgaven er følgende: - Spillerende skal kunne bevæge sig rundt - En bane - Noget modstand, så som en fjende (I dette tilfælde asteroiderne) - Skal kunne forsætte til man dør Vores sekundærer krav til opgaven er følgende: - Nye baner - Nye våben - Andre asteroider, som havde forskellige evner. Vores Prototype består af: - En bane - En spiller der kan bevæge sig - Noget modstand - Man forsætter indtil man er død Grunden til at vi vælger netop lige de krav, er at det andet ville vi ikke have nok tid til at få fikset. Koden Her vil vi forklare selve koden, samt de overvejelser vi har haft undervejs. Kommenterede [MFN9]: fint Brug det til at lave en tidsplan over jeres forløb. Skriv om systemudviklingsprocessen.
Vores første overvejelser var: - Vi skulle lave et rumskib - Den skulle kunne bevæge sig via de fysiske love i rummet. - Den skal kunne affyrer missiller - Asteroiderne skal spawn tilfældigt, hvor den skal starte i en tilfældig retning Til at starte med skulle vi opstille vores Verden. Det gjorde vi ved at opsætte en solid farve i baggrunden, og derfra indsætte vores objekter. Vi fik tegnet et objekt som skulle forstille et rumskib, og sat en bevægelse på som ville tilsvare fysikkens love i rummet. Vi har indsat de forskellige textures, på vores rumskib samt asteroiderne. Vi har indsat en options hvor man kan vælge mellem 3 forskellige niveauer, hvor den eneste forskel er at antallet af asteroider er større. I stedet for at vælge med pil tasterne, har vi tilføjet denne egenskab, således at man skal med raketten skyde den mulighed man vil ind på. F. eks hvis du vil ind på Options skal man rette raketten imod options og trykke space. Kommenterede [MFN10]: ok Kommenterede [MFN11]: Bedre i vi form i stedet for jeg, når det nu er et gruppeprojekt. Kommenterede [MFN12]: Ok, vis gerne koden her eller henvis til det Kommenterede [MFN13]: ok Kommenterede [MFN14]: ok Asteroiderne er programmet således at de starter et tilfældigt sted på verden med en tilfældig retning. Koden kan ses i Bilag, hvor vi det gerne skulle være logisk hvad der er hvad. Vi kan dog komme med enkelte stykker for koden som har en stor indflydelse på spillet. Kommenterede [MFN15]: god idé!
F. eks rotationen samt farten fremad på raketten beskrives således: At både hastighed samt, (x, y) akserne er beskrevet med en værdi, hvor et simpelt tryk på en knap kan udløse dens funktion. I dette tilfælde har vi defineret pil tasterne til at udfører sådan en aktion. En anden koden som ligger inde med stor betydning, er kollisionen mellem missilen og asteroiden, hvor i at asteroiden deler sig i to, den kan beskrives ved: Her ser vi så at efter, missilen har ramt asteroiden dannes der 2 nye objekter, som er defineret med new Asteroid(1), Vi har indsat billede af en mindre asteroide til at objektivisere det nye objekt. Flere koder kan ses på vores World Class Kommenterede [MFN16]: Det ligner nu mest koden for at tegne jeres Spaceship og ikke bevægelsen. Vær lidt mere præcis, så i f.eks. skriver koden ind eller har flere kommentarer i billederne. Kommenterede [MFN17]: Hvilken kode præcis? Mon ikke det er den længere nede som hedder islarge selv om det ikke er så sigende et navn i fht. at det handler om kollision. Kommenterede [MFN18]: Ok, her giver det mening. Kommenterede [MFN19]: Den brune figur giver ikke mening. Er den spejlvendt? Kontrolles Pil tasterne Højre og Venstre Pil tast fremad Space(mellemrumstasten) Hjælper med at rotere raketten. Sætter gang i raketmotoren, som får den til at kører fremad. Skyder missiler Kommenterede [MFN20]: Ok. Vis i implementeringsafsnittet et billede af hele udviklingsmiljøet og hvordan man opsætter kode og billede/bane.
Test Vores første test virkede overhovedet ikke, vi manglede nogle få ting, det var først fjerde forsøg at vi fik den til at kører ordenligt, dog skulle vi lave nogle få ændringer, men alt i alt fungerende den som den skulle. Videreudviklingen Hvis vi skulle videreudvikle den ville vi nok tilføje de sekundærer krav, med at tilføj våben, nye baner samt anderledes asteroider. Vi ville sikkert også optimere spillet med forskellige baggrundsbilleder, samt levels. Angående våbnene havde vi to scenario, det første var at man kunne finde dem når man skyd asteroiderne, det andet var at man fik penge fra asteroiderne, som man kunne bruge til at købe forskellige ting i shoppen. Konklusion Vi kan konkludere at vi fik lavet et funktionelt spil, som både var sjovt samt udfordrende, der var ting som manglede der kunne gøre det væsentligt bedre, men da vi kun havde den tid vi nu havde, nåede vi det ikke. Vi fik programmeret spillet til at opfylde de primære krav, samt udviklet et program med en helt ny software. Kommenterede [MFN21]: Ok. Billeder og mere forklaring og hvilken rækkefølge I har arbejdet med det ville være en god idé næste gang. Stikord: systemudvikling, prototyper, test Kommenterede [MFN22]: ok Kommenterede [MFN23]: det er ok især taget i betragtning at I rimeligt sent kom i gang med det egentlige projekt. Kildeliste http://da.wikipedia.org/wiki/computerspil http://www.greenfoot.org/download Bilag af vores kode Kommenterede [MFN24]: Godt med kilder, men der skal jo dato mm på Kommenterede [MFN25]: Godt at det er med, men der mangler nogle kommentarer i koden.