Utvecklingsverktyg För Spelmotor Kandidatuppsats
Total Page:16
File Type:pdf, Size:1020Kb
Utvecklingsverktyg för spelmotor Kandidatuppsats Andreas Palm [email protected] 15 juni 2014 Sammanfattning Detta arbete utvärderar huruvida Netbeans RCP är en lämplig plattform att bygga en kampanjredigerare för en spelmotor på. Arbetet är en del av ett större projekt där en spelmotor för Androidtelefoner skapas. Kampanjredigeraren ska kunna skapa och redigera filer i XML-format som spelmotorn använder. Den ska även kunna skapa nytt material till spelmotorn utifrån bilder. Allt detta ska fungera på flera operativsystem. Valet att använda en plattform istället för att implementera allt manuellt skedde för att påskynda utvecklingen och höja kva- liteten på programmet. Utöver Netbeans RCP gjordes en översiktsgranskning av andra plattformar och program för att se om dessa också hade kunnat vara lämpliga. Netbeans RCP visade sig vara lämpligt för att skapa kampanjredigeraren på då den tillhandahöll funktioner relevanta för kampanjredigeraren som gick att använda på flera operativsystem och programmets implementerade funktionali- tet fungerade på alla testade operativsystem. Nyckelord: Netbeans RCP, Java, kartredigerare, kampanjredigerare, kartredi- gerare, tile, campaign editor, map editor, level editor Abstract This paper examines if Netbeans RCP is a suitable platform for creating a campaign editor for a game engine on. The work is part of a larger project where a game engine for Android phones is being developed. The campaign editor must be able to modify and create files in an XML-format that the engine will then use. It must also be able to create new material for the engine from images. All of this functionality must be usable on multiple operating systems. The decision to use a platform rather than implement everything manually was made to speed up the development and increase the quality of the campaign editor. Other platforms and programs were also briefly examined to see if these could have been suitable as well. Netbeans RCP was determined to be a suitable platform for creating a cam- paign editor because it provides functions relevant to the campaign editor that are usable on multiple operating systems, and the functionality implemented in the program was usable on every tested operating system. Keywords: Netbeans RCP, Java, tile, campaign editor, map editor, level ed- itor Förord Tack till Erik Björnerhag och Daniel Warsén för deras förslag, kritik, synpunkter och hjälp med utvärderingen. Tack till Leif Lindbäck och Fredrik Lundevall för kritik, förslag och handledning. 1 Innehåll 1 Terminologi 3 2 Introduktion 4 2.1 Övergripande syfte . 4 2.2 Problembeskrivning . 5 2.3 Konkreta krav . 5 2.4 Avgränsningar . 6 2.5 Rapportstruktur . 6 3 Tidigare arbeten 8 3.1 Utvärdering av plattformar för tunga Java-klienter . 8 4 Teori 9 4.1 Resultat av litteraturstudien . 9 4.2 Plattformar och liknande verktyg till spel . 9 4.2.1 The battle for Wesnoth . 9 4.2.2 Wesnoth UMC Development IDE . 10 4.2.3 Eclipse RCP . 10 4.2.4 Netbeans RCP . 10 4.2.5 Spring RCP . 10 4.3 Val av plattform . 10 4.4 Begrepp . 11 4.5 Programmets funktionalitet . 11 5 Metod 13 6 Konstruktion 15 7 Resultat 19 8 Slutsats 22 8.1 Diskussion . 22 8.2 Konsekvensanalys . 24 8.3 Framtida arbete . 24 2 Kapitel 1 Terminologi Netbeans RCP En Java-baserad plattform som bland annat tillhandahåller funktioner och abstraktioner för grafiska komponenter.[1] Ubuntu En Linuxdistribution. GUI Graphical User Interface, grafiskt användargränssnitt. XML Extensible Markup Language, ett uppmärkningsspråk för strukturerad textdata.[2] RCP Rich Client Platform, en plattform som tillhandahåller funktioner och ab- straktioner för utveckling och körning av program på en lokal dator. 3 Kapitel 2 Introduktion Arbetet är en del av större projekt där en spelmotor utvecklas, denna ska kunna köra olika spel på mobiltelefoner med operativsystemet Android. Tanken är att användare ska kunna skapa eget material (egna spel) som spelmotorn sedan kör på telefonen. Spelmotorn är för närvarande under utveckling, arbetet är en del av utveck- lingen av denna och ska utvärdera huruvida en plattform som har föreslagits är lämplig för att skapa en kartredigerare. Materialet (spelen) som skapas till spelmotorn är turordningsbaserade tak- tikstridsspel. Spelaren går igenom en serie med scenarier där denne ska övervinna en eller flera motståndare för att ta sig nästa scenario. Spelplanen är uppbyggd av flera kvadrater som är placerade bredvid varandra, dessa kvadrater ses rakt ovanifrån. Spelmotorn läser filer i XML-format (Extensible Markup Language, ett uppmärkningsspråk för strukturerad textdata.[2]) och skapar sedan spelet utifrån dessa. 2.1 Övergripande syfte Syftet är att utröna huruvida Netbeans RCP1[3] är en lämplig plattform att utveckla ett verktyg som låter användare skapa sitt eget material till spelmotorn, en så kallad kampanjredigerare eller ”campaign editor”. Utöver detta ska övriga utvecklare kunna använda kampanjredigeraren för att skapa exempeldata för att testa om spelmotorn uppför sig som förväntat. Jag hoppas även att kampanjredigeraren ska utvecklas i takt med att spel- motorn utvecklas och får nya funktioner, kanske även av andra utvecklare i framtiden. Slutligen hoppas jag att kampanjredigeraren blir lyckat och låter användare skapa eget material utan större svårigheter, och att det i och med detta bidrar till att göra spelmotorn populär och lyckad. 1En Java-baserad plattform som bland annat tillhandahåller funktioner och abstraktioner för grafiska komponenter. 4 2.2 Problembeskrivning Spelmotorn är för tillfället tidigt i utvecklingsstadiet, men till dess lansering behövs ett verktyg som kan skapa material som motorn kör för att skapa ett spel, en kampanjredigerare. Användare av spelmotorn antas inte ha kunskap eller vilja att manuellt redigera datafiler eller använda kommandoradsverktyg för att skapa materialet, därför behövs kampanjredigeraren. Kampanjredigeraren ska erbjuda ett grafiskt gränssnitt som tillåter användare skapa och redigera alla aspekter som material tillåts innehålla. Tanken är även att kampanjredigeraren ska användas av övriga utvecklare av spelmotorn för att få fram exempeldata, som de kan använda för att verifiera att motorn fungerar korrekt. För att påskynda utvecklingen och öka kvaliteten av kampanjredigeraren kommer existerande plattformar och verktyg som antingen tillhandahåller all eller delar av funktionaliteten som krävs, eller plattformar som underlättar ut- vecklingen av grafiska gränssnitt, exempelvis GUI-komponenter, att användas. Netbeans RCP hittades som en möjlig plattform att bygga kampanjredigeraren på, därför ska det utvärderas huruvida denna är en lämplig plattform att bygga kampanjredigeraren på. Det kan även finnas andra lämpliga plattformar eller program, dessa ska undersöaks för att se utifall någon av dem verkar erbju- da bättre funktionalitet än Netbeans RCP, i så fall bör denna plattform eller program utvärderas istället. 2.3 Konkreta krav För att plattformen (Netbeans RCP) ska anses lämplig krävs följande: Plattformen ska erbjuda abstraktioner och funktioner för grafis- ka gränssnitt, exempelvis grafiska komponenter Av egen erfarenhet tenderar GUI2-kod att kräva väldigt mycket tid och arbete för att producera ett bra och enhetligt resultat. Genom att använda en plattform som förenklar detta hoppas jag att kunna minska mängden arbete som krävs, höja kvaliteten på gränssnittet och påskynda utveck- lingen. Programmet ska kunna redigera alla aspekter av materialet spel- motorn kan spela upp En användare ska inte behöva manuellt redigera datafiler för att producera fungerande material, går inte detta att uppnå är plattformen otillräcklig. Alla funktioner ska fungera på både Windows 7 och Ubuntu3 Linux En funktion anses fungera om den producerar avsett resultat. Målet är att användare ska kunna skapa material även om de inte använder Windows. Programmet ska erbjuda en grafisk vy för att redigera spelmo- torns datafiler på Windows 7 och Ubuntu Linux Alla funktioner som implementeras grafiskt ska kunna användas grafiskt oavsett operativsystem, potentiella användare förutsätts inte ha kunskaper eller intresse av att använda kommandoradsverktyg. 2Graphical User Interface, grafiskt användargränssnitt. 5 Programmet ska kunna känna igen en mapp med ett visst filin- nehåll som ett projekt Detta för att användare enkelt ska kunna hitta och känna igen spelmotorns datafiler på hårddisken via programmet. Programmet ska kunna läsa in grafiskt material från bilder och skapa nya resurser utifrån dessa Användare måste kunna skapa nya grafiska resurser som sedan kan använ- das till materialet denne skapar eftersom själva spelmotorn inte nödvän- digtvis innehåller allt grafiskt material som en användare vill ha. Programmet ska kunna spara det som användaren har skapat med programmet Filerna som sparas måste följa strukturen som spelmotorn använder. Programmet ska kunna öppna tidigare skapat material Användare måste kunna vidareutveckla befintligt material. 2.4 Avgränsningar Programmet ska inte redigera bilder, video eller ljud Det finns redan program som gör detta, sådan funktionalitet överlåts till dessa. Windows 7 och Ubuntu Linux är de operativsystem som pro- grammet ska testas på Jag har tillgång och erfarenhet av dessa operativsystem. Det skulle vara en fördel att testa på fler plattformar, men jag har inte tillgång till alla olika operativsystem och detta riskerar att ta för lång tid. Detta utesluter inte att programmet testas på andra operativsystem av andra personer. Ingen hänsyn tas till huruvida programmet fungerar på Windows XP Microsoft har upphört att ge support för detta operativsystem[4].