Presentation av examensarbete Kandidat/Högskoleingenjör
Titel: Utveckling av terräng- och partikeleffekter med Lightweight Java Game Library (LWJGL)
Spelutveckling i Java - Lightweight Java Game Library API
Respondent: Daniel Härnberg och Gustav Wiiala
Opponent:
Språk: Svenska
Tid: Fredag, 2012-10-26 kl 11
Plats: Forum, sal D , Isafjordsgatan 39, Kista
Sammanfattning
Denna rapport är resultatet av ett examensarbete som har utförts vid institutionen för informations och kommunikationsteknik, Kungliga Tekniska Högskolan (KTH), och omfattar 15 hp. Rapporten presenterar ett arbete där examensarbetarna har utvecklat en terräng med höjdskillnader och ljussättning, partikeleffekter (CPU-GPU implementering) som liknar ett fyrverkeri, partikeleffekter (GPU implementering) som visar olika mönster samt en kamera för att kunna observera spelvärlden från alla möjliga olika vinklar i 3D med API:et Lightweight Java Game Library (LWJGL).
Prototypen kom att kallas för Kelbur. LWJGL är ett lågnivå-API som riktar sig mot nybörjare och professionella spelutvecklare i programspråket Java. Flera tekniker exponeras istället för att mappa lågnivå-funktioner i objektorienterad programmeringsparadigm som många javautvecklare är vana vid. LWJGL hanterar sin egen grafik, ljud och styrkontroller enbart för att få en solid grund för moderna spel och en bättre användarupplevelse. Den grafiska renderingen sköts med OpenGL.
Syftet med det här examensarbetet var att utvärdera LWJGL om den är kompetent nog att användas i samband med spelutveckling. Det är känt att Java Standard Edition (Java SE) har väldigt dåligt stöd för grafikintensiva och komplexa applikationer där prestandan är väldigt viktig. Därför utvecklade vi en större grafiskt krävande applikation, för att kunna göra en samlad bedömning om hur det är att arbeta med LWJGL och vad det erbjuder en spelutvecklare.
Arbetet delades upp i tre olika faser. Den första fasen började med att skapa en kravspecifikation för den produkt som skulle utvecklas, den låg till grund för hela arbetet. Nästa steg var datainsamling med syfte att erhålla förståelse för olika tekniker och att identifiera problem. Den tredje fasen var själva utförandet där vi designade, implementerade, testade och analyserade lösningarna iterativt.
Rapporten ger läsaren en översikt över de krav som ställts på prototypen, den projektmetod som använts, tekniker som har tillämpats, alla lösningar som har tagits fram och varför LWJGL blev utvald bland många andra.
Enligt de tester som utförts så är partikelsystem A (CPU-GPU implementering) bra mycket långsammare än partikelsystem B (GPU implementering) rent prestandamässigt. När 1,5 miljoner partiklar renderades så fick partikelsystem A 5 bilder per sekund och partikelsystem B 110 bilder per sekund.
Ingenjörsmässiga metoder och standarder har använts under hela arbetets förlopp som förvärvats under civilingenjörsutbildningen informationsteknik på KTH med inriktning datalogi. Det innefattar agil systemutveckling, programmering och problemlösning. Goda kunskaper i Java, matematik och allmän IT-teknisk bakgrund förutsätts för att hänga med i alla resonemang i denna rapport.
Nyckelord: LWJGL, Lightweight Java Game Library, OpenGL, Terräng, Höjdkarta, Partikeleffekter, Partikelsystem, Vertex Buffer Object.