Slutrapport. Interaktiv Mjukvaruutvecklingsprojekt. HIF-Spelet. Ett XNA-spel. Christian Ulf

Relevanta dokument
SEGLAISOLEN.SE En Wordpres Webbsajt

Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling

Slutrapport. Super Mario klon. Tomas Wallin tw222bv WP

Mina listor. En Android-applikation. Rickard Karlsson Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

LNU INDIVIDUELLT MJUKVARUUTVECKLINGSPROJEKT. Honey Hunter. Androidspel. Martin Karlsson 1/17/2014

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS

Slutrapport YUNSIT.se Portfolio/blogg

Slutrapport för Pacman

Individuellt Mjukvaruutvecklingsprojekt. Slutrapport. Projekt: ASP.NET Applikation: Clustery Gaming Datum: Författare: Adam Gustafsson UD11

Tepz klon. - Projektrapport. Linnéuniversitetet, Individuellt mjukvaruutvecklingsprojekt Janina Bergström, WP12 Distans

SLUTRAPPORT RUNE TENNESMED WEBBSHOP

Skissa och gissa. Individuellt Mjukvaruutvecklingsprojekt, 1DV430. Christian Nilsson, cn222gc, WP

Vi är alla i gruppen väldigt intresserade av spel och vill lära oss mer om hur man skapar ett helt spel från idé till slutprodukt.

Erik Lundgren GarageLoppisen.se. Projekt i kursen Individuellt Mjukvaruutvecklingsprojekt, 1dv430

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

Erik Holmström Projektrapport- KalmarKendo Erik Holmström UD12 Individuellt mjukvaruutvecklingsprojekt

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Slutrapport Get it going contracts

[SLUTRAPPORT: DRAWPIXLZ (ANDROID-APP)] Slutrapport. Författare: Zlatko Ladan. Program: Utvecklare av Digitala Tjänster 180P

Individuellt Mjukvaruutvecklingsprojekt

VIDEODAGBOKEN. Individuellt Mjukvaruutvecklingsprojekt. En dagbok i videoform online. Robert Forsgren (rf222ce) UD

SLUTRAPPORT. Sebastianlund.com. Individuellt mjukvaruutveckingsprojekt, 1DV430. Författare: Sebastian Lund WP11 Datum:

Ett spel skapat av Albin Wahlstrand

Individuellt Mjukvaruutvecklingsprojekt

Endless shooter neon - Post mortem

Slutrapport Thunderbug

Game of 40. Regler och om sidan är in princip samma sak. Det som skiljer dem åt är att de inte har samma text.

Bakgrund. Genomförande

Priskamp. En prisjämförelsesite Björn Larsson

Laboration i datateknik

SLUTRAPPORT WEBBPROJEKT 1

ToDo ios-applikation. Mikael Östman. Mikael Östman - mo22ez Linnéuniversitetet

Del 1 och 2 HTML/CSS. Webbutveckling Laboration 1 Nicklas Bostedt

Praktikrapport. Sofia Larsson MKVA12, HT12

Självhjälpsprogram för ADHD. Del 1 Att hitta din väg

Post Mortem för Get The Treasure!

PROJEKT ALBYLEN. Datum: 25 mars AV: Magnus Lindgren, Mattias Jonsson, Alexander Paskota, Jimmie Yngvesson, Erik Nilsson

Process- och metodreflektion. Grupp 3; Ida Gustafsson, Mikael Karlsson, Jonas Lind, Hanne Sundin, Maria Törnkvist

Sammanställning av kursutvärdering Samlad bedömning

Mammahjärtat som initiativ är unikt, det finns inget liknande i Sverige idag!

Mikael Bondestam Johan Isaksson. Spelprogrammering. med CDX och OpenGL

Detaljbeskrivning av Player

Välkommen till WeOptimize

Slutrapport för Internetfonden

Space Invaders - Slutrapport

Filhanterare med AngularJS

Tre misstag som äter upp din tid och hur kan göra någonting åt dem

Labbrapport - LEGO NXT Robot

Utvärdering att skriva för webben - Snabbrapport

Nacka bibliotek. Brukarundersökning. November Genomförd av Enkätfabriken

Slutrapport för SquareShooter

Gillakampen. av Merkur Hoxha WP

2014 Serious Games Interactive ApS, All Rights Reserved

Flipped Classroom med gamification som stöd för studentaktiverande undervisningsform

Collector en Android-app för att samla saker. Kim Grönqvist (kg222dk) Slutrapport

Sociala medier för företag

Projektarbete myshop. Sandra Öigaard so222es WP12 Individuellt mjukvaruutvecklingsprojekt

ECOKEY. Ecokey - Nyckeln till en bättre miljö.

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund Marcus Widblom Senast ändrad: 13 / 05 / 08

Labbrapport: HTML och CSS

Promemoria om förutsättningarna för hur uppgifterna i detaljplaner och planbeskrivningar kan tillgängligöras och behandlas digitalt

Bestäm vilket av, eller vilken kombination av övertygande tillvägagångssätt (känsla, logik, förtroende) som du avser att använda i din presentation.

Skrivprocessen. Skrivprocessen och retoriken. Skrivprocessen Retoriken Förklaringar

MULTIPLATTFORMAR STÄLLER KRAV PÅ DIN STRATEGI OCH LEDNING

ICA SUPERMARKET SVÄRDSJÖ MINICUP 2017

Berzanspel. Läsåret 2012/2013. Projektgrupp: Henrik Adolfsson, Nils Björklund, Isak Pettersson, Villiam Rydfalk Nv3E. Handledare: Tina Bergman

Digitalt skapande i kulturskolan

Röna fingrar e gött o ha:) SLUTRAPPORT BUDGETSYSTEM LNU

Kravspecifikation TDP005 Projekt: Objektorienterat system

Förbättra din studieteknik med Matematik 5000! 12 praktiska tips!

TDP005 Projekt: Objektorienterat system

Programmeringsappar. Av Alex

Enkätresultat. Kursenkät, Flervariabelanalys. Datum: :47:04. Aktiverade deltagare (MMGF20, V10, Flervariabelanalys) Grupp:

Allt har fungerat mycket bra, men berättelseskelettet och gestaltningsövningarna var det som stack ut allra mest för mig.

KundKFF_17_Lokalbokning

DESIGNDOKUMENT 1(8) 1. Idé & koncept. Grundidé, syfte & innehåll. Målgrupp, koncept & sammanhang

TILL ÄMNESGRUPPEN. Ett upplägg för fem träffar. Vinster med kollegialt lärande

NÄRMARE VARANDRA. Övningshäfte till NIO VECKOR TILL EN STARKARE PARRELATION. Natur & Kultur

Måste alla på skolan/förskolan börja arbeta med StegVis samtidigt?

Botech AB Ledebursgatan Malmö Tel: E-post:

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Bygg ett akvarium i Scratch

ItiS Väskolan HT Din Kropp. Projekt av Arbetslag D / Väskolan

med sin nya miljö. Introduktionen med Tilla sköttes utomhus och gick bra. Resten av dagen tog vi det bara lugnt, lekte, åt och bara hade mysigt.

Innanför Mina rosa Små väggar. En självbiografi av Cassandra Solback

Innehåll. Kreativitet en introduktion 7 Varför vara kreativ på jobbet? 8. Öka kreativiteten hur gör man det? 10 Människor 11 Miljö 19 Metod 25

M atematiska cirklar. Studiehandledning

Utveckling av ett 2d spel i Java. Examensarbete av: Rickard Borg, EDTD13 Examensår: 2016 Opponent: Jesper Larsson Handledare: Jimmy Jansson

WEBDESIGN A - DTR 1210

Bilden föreställer en komplett CW-tranceiver för 80 m bandet. Pixie 2 heter den och är nyligen byggd av Sture SM7CHX.

Strukturering och Planläggning

GLÄDJE GEMENSKAP FRAMÅTANDA INNEBANDY OCH FOTBOLL

Skolbesöksmanual. Sammanställd av Djurens Rätts ungdomsgrupp i Helsingborg

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

Utvärdering Agenda 2030-träff för folkhögskolor 24 november Vår skola arbetar med Agenda 2030 idag

Li#eratur och empiriska studier kap 12, Rienecker & Jørgensson kap 8-9, 11-12, Robson STEFAN HRASTINSKI STEFANHR@KTH.SE

Kursvärdering 1DV433 Strukturerad programmering med C++ LP Lärare: Tommy Löfqvist 17 svar

Jag är tacksam för synpunkter och medskick, fördelen med en studiehandledning som sprids digitalt är att det är lätt att uppdatera den.

Konsultprofil. Per Norgren (1983) Arkitekt & webbutvecklare

KORT FÖR ATT LEDA DISKUSSIONEN

Kursutvärdering av Tekniker för webbdesign samt Tekniker för webbdesign, distans, 7,5hp (31KTW1, 31ETW1, 31FTW1), höstterminen 2016

Transkript:

1 Slutrapport Interaktiv Mjukvaruutvecklingsprojekt HIF-Spelet Ett XNA-spel

2 Med den här rapporten avser jag att förmedla min bild av hur jag anser att mitt mjukvaruutvecklingsprojekt gick och hur jag gick tillväga för att nå det resultat jag nu kan presentera. Med facit i hand kan jag säga att XNA är ett alldeles utmärkt verktyg för spelutveckling, och inte bara konsolspel(läs Xbox 360) som många, helt felaktigt, har bilden av. Det går alldeles ypperligt att sätta sig in i för den oinvigde. Med en enkel och tydlig struktur är det lätt att förstå hur det är avsett att användas. I rapporten redovisar jag min inlärningsprocess för XNA-ramverket och för att skapa ett simpelt spel; i mitt fall ett s.k. catching-game där spelaren styr en karaktär som rör sig sidleds och fångar objekt som faller ovanifrån. En typ av spel som tilltalar såväl nostalgiker som casual-spelare. Att spelet är centrerat kring Helsingborgs IF är inget som förstör upplevelsen för den oinitierade då hela spelet är gjort med glimten i ögat.

3 Förord Inledningsvis fick vi kursdeltagare ett val att välja ett projekt fritt med de kunskaper vi införskaffat oss hittills som underlag. Med ASP.NET och databashantering-kurser precis avslutade kände jag att jag behövde prova på något nytt. Då jag inte längre direkt spelar spel kan mitt val av projekt tyckas vara ett tämligen ologiskt sådant, men samtidigt insåg jag att kodningens värld är förhållandevis mångfacetterad, och därför insåg jag att kan det vara intressant att lära sig, inte minst inför framtiden. Valet av spel var inte särskilt svårt, då jag växte upp med lite simplare spel, ofta av just den typen jag valde. När det sedan kom till val av språk blev det desto svårare. Jag ville inledningsvis göra något i HTML5, alternativt Javascript. Istället valde jag ett fegare val i XNA, då resten av gruppen valt detta språk. I och med att mina kunskaper var så begränsade ansåg jag då i stundens hetta att det skulle vara lättare att få hjälp vid behov vid valet av XNA. Slutligen gällde det valet av bakgrund till spelet. Detta var det lättaste beslut jag tagit under mitt år på skolan. Givetvis skulle det vara laget som ligger mig närmast om hjärtat, och trippelmästarna överlägsna i vårt avlånga land. Samtidigt insåg jag, så här i främmande stad, att spelet behöver göras med humor i fokus, så att det skall gå att spela utan att vara insatt i ämnet. I introduktionen som följer förklarar jag hur jag som helt ovetande satte mig in i XNA och vilka svårigheter jag stötte på.

4 Inledning Målet med projektet som helhet har hela tiden varit att sätta sig in i XNA-ramverket för att bygga en bra grund inför framtiden. Att man sedan använder sig av C# är givetvis också det en bonus då man förnyar sina gamla kunskaper. Att göra något helt nytt tilltalade mig väldigt mycket, och trots att spel inte riktigt är mitt forté så var det klart intressant att ta in. Inledningsvis fokuserade jag mycket på grafik då jag insåg att det blir lättare att jobba med direkt respons i form av bildligt innehåll. Det är så mycket lättare att testa med riktiga modeller istället för placeholders. När jag sedan kom igång med kodandet insåg jag att det var en viss tröskel att komma över, men XNA är ändå förhållandevis enkelt att komma in i. Det är uppbyggt av ett antal olika klasser som alla fyller olika funktioner. Som ett praktexempel finns det en klass som heter Draw, där all grafik du ska använda dig av ritas upp. Har du gjort det en gång är det lätt att göra om. För den som funderar på XNA som plattform för ett spel har jag bara positiva saker att dela, även om det kräver en hel del jobb. Tutorials finns i mångfald och att titta på dessa är ett råd jag har ett ge, då grunden till de flesta spel i mångt och mycket är densamma, inte minst i plattformsspel.

5 Positiva Erfarenheter Jag är mycket nöjd med valet av plattform för mitt spel, och även typen av spel som visade sig vara en mycket bra grund för att bygga även andra spel i framtiden, såsom breakout, Pong, tetris och så vidare. Listan kan i det närmaste göras oändlig. För en inbiten supporter av ett fotbollslag som mig visade det sig också mycket lyckat att välja just det tema jag valde. Bildmaterial var desto svårare att hitta då bevakningen från svensk fotboll är väldigt mycket sämre än i exempelvis England. Visst är det bättre nu än tidigare, men jag fann fortfarande att det inte var det lättaste. Annars finns det ett stort antal historier och händelser som präglar laget i fråga. Inte minst negativa sådana där det alltid uppskattas med lite häcklande. Jag ville samtidigt att spelare som har någon eller väldigt lite koll alls lätt skulle kunna ta in allt material, och det tycker jag att jag lyckats med synnerligen väl. Med en enkel How-To- Play-sektion är det enkelt att ta in spelkonceptet. Att jag sedan valde att ta bort ett antal av de fallande föremål som jag inledningsvis ville ha med var det bästa jag kunde gjort då detta möjliggjorde att en större målgrupp i slutändan kan njuta av spelet. Spelet i sitt nuvarande skick tycker jag absolut är underhållande och det tyckte jag visade sig på redovisningen, som jag tycker gick tämligen väl.

6 Negativa Erfarenheter Med facit i hand kanske jag hade tjänat på att bygga den absoluta grunden med basfunktionalitet allra först, då jag underskattade tiden det skulle ta något. Då hade jag också insett att det är mycket lättare att jobba med sprites än att hämta in det externa klassbiblioteket GIFAnimation som använder sig av.gif-filer istället för statiska bilder i en.png-fil. Detta innebar att jag slet med något i alltför många timmar som senare ersattes mot något som tog 2-3h att fullända. Planeringsmässigt finns det mycket att förbättra. Iterationsplanen lades det inte tillräcklig fokus på inledningsvis, dessutom var utformningen och formatet fel på grund av slarv. Detta ledde ofrånkomligen till problem senare under projektets slutgång. Felprioritering av de olika delarna av projektet ställde också till med en del problem, vilket ledde till en oregelbunden arbetsbörda under de flesta veckorna. Jag tänkte fel innehållsmässigt för spelet, då jag proppade ett tämligen simpelt spelupplägg med alltför många funktioner. Hade dessa implementeras hade jag varit tvungen att ta bort dessa för att tillgängligheten skulle vara acceptabel. Just kodandet hade kunnat struktureras upp mycket bättre, och så som jag utformat det hade man kunna strukturera upp det ganska rejält. I min kod finns all kod för huvudkaraktären och dess egenskaper inuti själva basklassen, Game1. Sedan är jag nöjd med strukturen för det andra, där jag korrekt delat upp det i klasser så som GameObject och GameMenu. Jag hade sedan ganska stora problem med en del av målen, och det var att alltid ge objekten som faller en slumpmässig funktion, och i nuläget är det inte optimalt, men fungerar. Att jag blev tvungen att skära ner på spelets innehåll på grund av tidsbrist var det absolut bästa som kunde hända, och därför väljer jag att inte inkludera det i denna sektion. Annars skulle det givetvis vara en självklar negativ erfarenhet. Den del som jag är missnöjd med att jag inte fick med i slutändan var införandet av flera tidsbaserade nivåer i spelet, något jag har en god bild av hur jag ska göra, men som på grund av tidsbrist inte blev av.

7 Sammanfattning Det blir antagligen inga fler spel från min sida på ett bra tag, men känner mig klart nöjd med projektet i helhet och att det var en fräsch vind som behövdes för min personliga utveckling inom webbprogrammeringens ramar. XNA är ett mycket trevligt ramverk som jag absolut kan tänka mig att arbeta med igen dock. I framtiden gäller det att vara mycket mer noga med planering och faktiskt använda och framförallt respektera de verktyg som finns för just detta. Iterationsplan har jag insett är mycket värdefullt för en webbprogrammera för det mesta, inte minst för en själv. Spelet i det skicket det är i nu skulle jag vilja påstå är till 90% klart. Ett fåtal förändringar och lite strukturering av koden och så vill jag hävda att det är så färdigt det kan bli. Framtiden för spelet blir att optimera positionsmässig slumpning av fallande objekt, och att införa tidsbaserade nivåer där hastigheten för föremål som faller ökar. Detta innebär också att den fasta poänggränsen som i nuläget är satt givetvis tas bort.

8