0RELOH$UNDQRLGV *UXSSPHGOHPPDU Edlund, Louise Ekdahl, Johan Fernström, Jesper Jansson, Fredrik Larsson, Helene Malmén, Per Sölen, Baran Wiksten, Oskar
I dagens samhälle spelar mobiltelefonen en allt större roll. De används i första hand för att hålla kontakt med andra människor via traditionella telefonsamtal, men mobiltelefonen har även många andra användningsområden. Man kan använda den för positionering, för att betala då man handlar varor i en affär och det finns till och med mobiltelefoner med inbyggd kamera och radio. Faxmöjligheter och tillgång till sin e- brevlåda via mobiltelefonen är redan gammal skåpmat. Givetvis finns också olika spel på telefonerna. Lagringsrutrymmet i en mobiltelefon är relativt litet, och möjligheten att se många detaljer och färger på de små skärmarna är i dagsläget blygsam. Steget är fortfarande långt till den prestanda som en vanlig persondator erbjuder och detta faktum medför begränsningar för de spel som kan erbjudas. Genom att sätta oss in i de begränsningar som det innebär att utveckla ett spel till mobiltelefoner har vi insett att den marknad som öppnar sig för de som behärskar den kunskapen är lockande. Utvecklingen av nya mobiltelefoner är explosionsartad och många företag slåss om att ha bäst design och mest tilltalande funktionalitet. I jakten om kundernas gunst är utbudet av spel och andra finesser på mobiltelefonerna viktiga konkurrensmedel. Vi är därför övertygade om att efterfrågan på spel till mobiltelefoner kommer öka kraftigt, utvecklingen av spel till mobiltelefoner bara börjat. Det spel som vi valt att presentera heter Mobile Arkanoids. Designen är stilren och konceptet beprövat. Spelet är välkänt och älskat av många. Spelarens uppgift är att med hjälp av en studsande boll krossa de block som finns utplacerade på spelplanen. Detta görs genom att styra den paddel som bollen tillåts studsa mot och därigenom påverka bollens färdriktning. Spelreglerna är enkla och det tar inte mer än några få ögonblick från det att spelet är installerat på telefonen tills dess att man är i full gång med att spela. 2
,QQHKnOOVI UWHFNQLQJ 1. Bakgrund...4 1.1. Målgrupp...4 2. Målsättning...)HO%RNPlUNHWlULQWHGHILQLHUDW 3. Utvecklingsarbetet...4 3.1 Datormiljö och programvara som använts...4 3.2 Funktioner i systemet...5 3.2.1 Användargränssnitt...5 4. Testkörning och eventuella förändringar...6 4.1. Problem hos bollen...6 4.2. Mindre estetiska problem...6 4.3. Kvarstående problem som ej åtgärdats...7 4.3.1. Bollen kan "fastna inuti paddeln...7 5. Utveckling av spelet i framtiden...7 5.1. Funktionalitet vi strukturerat, men inte implementerat...7 6. Nedlagd tid...8 7. Resultat...9 8. Referenser...9 3
%DNJUXQG Detta projekt genomfördes våren 2002 som ett obligatoriskt moment i kursen Programutvecklingsprojekt 2D1954 på Kungliga Tekniska Högskolan. Uppgiften bestod initialt i att för företaget Jadestone ta ett befintligt spel till spel- och chat-handdatorn Cybiko Extreme, (lanseras i Sverige våren 2002), och programmera om det till lämplig java-mobil. Efter undersökning kom gruppen fram till att de spel som idag finns på marknaden inte är tillräckligt kreativa och intressanta att spela. Gruppen framförde då en önskan till uppdragsgivaren Jadestone att själva hitta ett annat spel och programmera det till en javamobil. Önskan bifölls och valet föll tillslut på spelet Arkanoids, ett spel som funnits länge. Att gruppen valde Arkanoids beror just på att det är ett välkänt spel för de blivande användarna. Projektnamnet valdes till Mobile Arkanoids, för att användarna ska känna igen sig och genast förstå vad det är för spel redan då de ser namnet. 0nOJUXSS Spelet vänder sig framförallt till målgruppen ungdomar mellan 12-18 år, men även andra intresserade mobilanvändare. Huvudmålgruppen är lämplig eftersom de är vana vid spel i olika former, och lätt tar till sig ny teknik och nya produkter. 0nOVlWWQLQJ Målsättningen är att göra ett enkelt spel med grundläggande funktionalitet enligt det traditionella konceptet för Arkanoids. Grundläggande funktionalitet innebär: en bana med block, en studsande boll och en paddel som rör sig horisontellt. Utöver detta ska antal kvarvarande bollar synas. Då spelet är över skall slutsumma samt texten Game Over presenteras på skärmen. Möjlighet skall finnas att utöka spelets funktionalitet i efterhand på ett enkelt sätt. Strukturen skall läggas upp på ett sådant sätt att man lätt ska kunna lägga till ytterligare funktioner. 8WYHFNOLQJVDUEHWHW DWRUPLOM RFKSURJUDPYDUDVRPDQYlQWV Utvecklingen av spelet har främst skett på PC-datorer med olika utvecklingsplattformar för Javaprogram (JBuilder från Borland), med tilläggspaketet Java 2 Micro Edition Toolkit från Sun Microsystems för att kunna programmera spelet till de javamobiler som kommer senare i år. För mer utförlig information om hur spelet är uppbyggt samt modell- och klientdiagram hänvisar vi till Systembeskrivningen (bilaga 2). 4
)XQNWLRQHULV\VWHPHW Spelet Mobile Arkanoids går ut på att krossa block med hjälp av att styra en paddel så att bollen studsar på paddeln och upp på blocken. Vissa av banorna kräver dock att man träffar samma block flera gånger innan det försvinner. Paddeln styr man åt vänster och höger med hjälp av sifferknapparna 4,6 eller med piltangenterna, beroende på vilken mobiltelefon man använder. I användarmanualen hänvisar vi till respektive mobiltelefons manual för att utröna vilket av ovanstående alternativ man ska välja. För mer utförlig information om hur spelet fungerar hänvisas Användarmanualen (bilaga 1). $QYlQGDUJUlQVVQLWW Mobiltelefoner är relativt små, vilket innebär att det är svårt att få spelen tydliga. Mobile Arkanoids är konstruerad så tydligt som möjligt, vilket medför att förekomsten av detaljer begränsats. Utseendet på spelet är dock detsamma för olika telefoner. Spelet finns både i färg- och gråskala då många telefoner saknar färgskärm. Nedan visas hur det kan se ut på två olika typer av emulatorer (simulerade telefoner). Nedanstående visar spelet på en standard-emulator, dvs en mycket enkel representation av en java-mobil. Denna är dock fullt tillräcklig för att simulera hur spelet kommer att se ut på verkliga mobiler. 5
På en Motorola har spelet nedanstående utseende: 7HVWN UQLQJRFKHYHQWXHOODI UlQGULQJDU Under testkörningsveckan upptäcktes vissa problem hos spelet. Dessa åtgärdades och skapade dessutom möjligheter att lägga till vissa funktioner hos spelet. 3UREOHPKRVEROOHQ Ett problem som uppstod var att bollens hastighet minskade eller stannade plötsligt efter kollision. Detta problem åtgärdades genom förändring av den kollisionsalgoritm som använts för bollens rörelse. 0LQGUHHVWHWLVNDSUREOHP Under testveckan upptäcktes att det inte fanns någon information om vilken poäng man har för tillfället eller vilken nivå man befann sig på, vilket åtgärdades. Det bestämdes också att det skulle läggas in en ny funktion, som gjorde att det för vissa banor skulle krävas flera studsar på blocken innan dessa försvann. Det lades till en del meddelanden såsom Ball Lost när man missar bollen, eller Game Over om det är den sista bollen, och samtidigt kommer då ett ljud spelas upp. Spelet gjordes även om så att det skulle passa till de mobiltelefoner som har färgskärm. Det gjordes också ett par mindre ändringar som var av mer estetisk karaktär. Blocken flyttades så att det skulle se snyggt ut på mobilens skärm, och antalet rader ökades också, med en ny rad för varannan ny nivå. Bollen gjordes också något större då den till en början var svår att se. 6
.YDUVWnHQGHSUREOHPVRPHMnWJlUGDWV %ROOHQNDQIDVWQD LQXWLSDGGHOQ Ett annat problem som upptäcktes under testveckan var att bollen fastnade inuti paddeln. För att motverka att detta ska uppstå förminskades paddelns höjd, vilket minskar sannolikheten att bollen hamnar inuti den. Dessutom ställdes bollens riktning om, vilket ytterligare förminskar sannolikheten att detta sker. Vi ställde dessutom om bollens riktning något ytterligare förminskar sannolikheten att detta sker. En korrekt lösning av detta problem skulle vara att göra samma kollisionsalgoritm när man förflyttar paddeln som vi använde för bollen, dvs betrakta paddeln som en "boll" och bollen som en kloss. Det skulle göra att paddeln inte får förflytta sig till en position som är upptagen av bollen. En sådan implementation skulle vara korrekt, men vi anser vår modell vara tillräcklig för uppgiften. 8WYHFNOLQJDYVSHOHWLIUDPWLGHQ Spelet är enkelt konstruerat och grundläggande. Det är även strukturerat på så sätt att fler funktioner finns tillgängliga för implementation. Dessa funktioner har dock inte implementerats, delvis p.g.a. tidsbrist. Spelet är programmerat så att man enkelt kan lägga till dessa nya funktioner hos spelet, och på så sätt utveckla det vidare. )XQNWLRQDOLWHWYLVWUXNWXUHUDWPHQLQWHLPSOHPHQWHUDW )OHUEROODU Eftersom spelet redan är strukturerat för en boll så är det inget problem att införa flera bollar. Dessa kommer då att ärva de egenskaper som är typiska för den ursprungliga bollen. Vidare skulle även bollarna kunna studsa mot varandra. Dessa enkla förändringar skulle troligen lyfta spelet betydligt och troligtvis blir då spelet roligare för användaren. 2OLNDNROOLVLRQVPRGHOOHU Det är strukturerat för att bollen ska kunna studsa olika beroende på var på paddeln bollen träffar, så förändrar man dessa modeller kan man få en rörelse hos bollen som inte är given. $QQDWXWVHHQGH P.g.a. den strukturering som är gjord är det trivialt att göra t.ex. en applet av spelet, med samma funktionalitet och utseende. 2OLNDW\SHUDYSDGGODU Att ha paddlar med olika funktioner skulle även det lyfta spelet betydligt. Genom att ge paddeln någon form av skjutförmåga eller göra 7
den större alternativt mindre, kan man minska respektive öka svårighetsgraden på spelet för spelaren. $YDQFHUDGHEDQRU Block av olika storlek, form och "hårdhet" är möjliga, vilket skulle göra att spelet blir svårare att klara på de högre banorna. %RQXVSRlQJ För att göra spelet än mer attraktivt kan man t.ex. låta saker ramla ner då man lyckas krossa vissa block, och om man lyckas fånga dessa saker får spelaren bonuspoäng. 1HGODJGWLG Detta projekt har tagit oss 98 timmar att genomföra, inklusive projektmöten och möten med uppdragsgivaren. Planering och programmering tog 49 timmar, och dokumentationen samt göra hemsidan tog 49 timmar. 8
5HVXOWDW Detta projekt har genomförts med lyckat resultat. Målet att konstruera ett spel för mobiltelefoner har lyckats. Spelets funktionalitet har blivit så grundläggande som gruppen projekterade för men tillåter utbyggnad. Målet var att man med relativt enkla medel ska kunna komplettera spelet med ytterligare funktionalitet och det har efterstävats samt uppfyllts. Svårigheter såsom brist på tillgång av mobiler som stöder Java har eliminerats med hjälp av emulatorer. Inga möjligheter att testa spelet på en riktig mobiltelefon har funnits varför det är svårt att bekräfta att spelet verkligen fungerar på en sådan, men tester på emulatorer tyder på att spelet är korrekt. Gruppen hoppas inom en snar framtid få möjlighet att testa spelet på en riktig mobiltelefon. 5HIHUHQVHU Programmeringsgruppen har löst de problem och frågeställningar som uppstått helt på egen hand utifrån de kunskaper de tillförskansat sig genom tidigare utbildning. Programmet JBuilder från Borland samt tillhörande Java 2 Micro Edition Toolkit från Sun Microsystems har använts för att kunna programmera spelet till mobiltelefoner. För mer information se: http://www.borland.se http://java.sun.com/ Utöver gruppens egna kunskaper har Jadestone fungerat som rådgivare inför programmeringstekniska beslut. Kontaktpersoner på Jadestone är: o Tommy Palm, tommy.palm@jadestone.se o Patrik Roos, patrik.roos@jadestone.se 9