LNU INDIVIDUELLT MJUKVARUUTVECKLINGSPROJEKT Honey Hunter Androidspel Martin Karlsson 1/17/2014 Abstrakt: Denna slutrapport berör androidspelet Honey Hunter som berör kursen Indiviudellt Mjukvaruutvecklingsprojekt I på LNU. Med stöd och frameworks från Kilobolt.com har spelet utvecklats och portats till Android vilket medfört nya programmeringserfarenheter, kunskaper och framförallt självförtroende för att utmana mig själv inom programmering. Kvaliteten på spel och testing har dessvärre drabbats av tiden att lära sig / vänja sig vid Java men det grundläggande målet var att lära sig att programmera för Android. Jag ser redan frame mot nästa projekt!
Inledning / Bakgrund Målet med detta projekt var att testa på att utveckla ett spel för Android. Jag har tidigare bakgrund som speldesigner och ett av mina mål med att läsa till webbutvecklare var även att ta mig ann mobila enheter. Jag har aldrig tidigare utvecklat inom Java, och mina C#-kunskaper var redan sedan tidigare begränsade. Jag hade för ett halvår sedan kommit över en tutorial på kilobolt.com där ägaren av sidan går genom en del grunder inom Java-programmering samt hur man utvecklar ett enkelt spel med Java samt hur man kan porta detta till Android-enheter. För egen del kändes det som ett jätteintressant steg med min bakgrund för att dels ge en ny dimension av min spelutveckling men även för att öva, förbättra och bredda mina programmeringskunskaper. Jag har tidigare utvecklat ett spel med hjälp av Game Maker som handlade om att man skulle gå över ett krigsfält och hämta mat, samtidigt som fiender sköt mot en. Fienderna reagerar på spelarens förflyttning och skjuter slumpmässig iväg skott. Detta spelet kändes som ett lagom avancerat spel för min nivå att använda som en språngbräda in i spelutveckling för mobila plattformar. Till min hjälp för det här projektet har jag användt mig av GameMaker för att återskapa mitt gamla spel, och använda det som prototyp. Därefter har jag använt mig av Eclipse för Java-utvecklingen samt Android SDK för att kunna porta det till Android-enheter. Mitt fokus har inte legat på det grafiska, men jag har varit tvungen att omarbeta den under projekttiden för att kunna lära mig att programmera in enklare animationer med Java. De grafiska bilderna är skapta i Photoshop och Graphicsgale.
Positiva erfarenheter Arbetsmetoden har varit att följa Kilobolts tutorials och använda min egna spelkod med den,. I och med att jag valt att använda ett specifikt framework som Kilobolt tillhandahållit har det varit viktigt att följa en del av hans övergripande programmeringsstruktur för att spelkoden ska hanteras på korrekt sätt. För att kunna applicera min kod på hans tutorials har detta tvingat mig att analysera hans kod, förstå hur Java, bibliotek och hans framework fungerar vilket har varit väldigt lärorikt. Att ge mig in på ett helt nytt programmeringsspråk var något av en chanstagning eftersom jag sedan tidigare inte har någon programmerarbakgrund bortsett från kursen i C#. Men efter att ha kunnat bygga upp ett spel och nu även har förståelse för hur man portar det till Android så har det gett mig mer självförtroende att utmana mig själv,. Jag har redan nu flera mer avancerade spelidéer jag skulle vilja utveckla till mobila plattformar, och jag ser verkligen fram emot de utmaningarna!
Negativa erfarenheter Även om det har varit fantastiskt att ta åt sig ett nytt programmeringsspråk som jag börjar trivas med så har kanske inlärningskurvan påverkat själva spelkvaliteten. Mitt spel jag gjorde i GameMaker för flera år sedan var kvalitetsmässigt bättre, men o andra sidan fick jag 90% av programmeringen genom simple drag-and-drop. Nytt språk har även gjort att min testning har varit mycket begränsad. Jag fick aldrig någon automatisk kodtestning att fungera och med den knappa tid jag fick över fick jag fokusera på lite blackbox-testning på de viktigaste funktionerna i spelet och sedan manuellt sitta med koden för att korrigera det som behövdes, vilket i längden inte är optimalt. I ett optimalt fall hade både portningen och testningen påbörjats tidigare för att ge utrymme för mer kvalitet. Det har varit tufft att göra det över kvartsfart, väldigt svårt att göra ärliga planeringar och det har väl stundtals kommit lite i andra hand med andra kurser parallellt som kräver sin tid med laborationer och redovisningar. I slutändan handlar det bara om min egna planering, där jag i början av projektet kanske överskattade mycket av tiden men mot slutet underskattade tiden, så det blev en svår balansgång på så sätt.
Sammanfattning Som en sammanfattning av mitt projekt så är jag väldigt nöjd med att jag kunnat ta mig ann ett nytt programmeringsspråk och lyckas porta ett spel till Android. Det har ökat mitt självförtroende att våga ta mig ann problem och nya kunskaper inom programmering och jag ser redan fram emot att lära mig mer och utveckla ett spel som jag till och med skulle kunna känna mig nöjd nog med att lägga ut på app-marknaden. Att ta sig ann så mycket nytt (för mig) inom ramen för ett litet projekt har kanske påverkat kvaliteten på spelet negativt. Spelet hade kunnat bli mycket bättre om jag hade haft förmågan att både porta och testa tidigare under utvecklingen för att på så sätt få en tydligare bild om vad jag skulle fokusera på i spelreglerna. Det positiva väger dock över det negativa! Mitt grundläggande mål var att lära mig att utveckla för Android, och jag känner att jag fått mig en bra grund att fortsätta utvecklas med och jag ser redan nu fram emot nästa projekt!