SPELET CAVE GENERATION: EN STUDIE OM PROCEDURELL GENERERING I 2D-PLATTFORMSSPEL
|
|
- Berit Jakobsson
- för 6 år sedan
- Visningar:
Transkript
1 SPELET CAVE GENERATION: EN STUDIE OM PROCEDURELL GENERERING I 2D-PLATTFORMSSPEL Examensarbete Systemarkitekturutbildningen Nick Johannesson Simon Kevin VT 2018:KSAI07
2
3 Systemarkitekturutbildningen är en kandidatutbildning med fokus på programutveckling. Utbildningen ger studenterna god bredd inom traditionell program- och systemutveckling, samt en spets mot modern utveckling för webben, mobila enheter och spel. Systemarkitekten blir en tekniskt skicklig och mycket bred programutvecklare. Typiska roller är därför programmerare och lösningsarkitekt. Styrkan hos utbildningen är främst bredden på de mjukvaruprojekt den färdige studenten är förberedd för. Efter examen skall systemarkitekter fungera dels som självständiga programutvecklare och dels som medarbetare i en större utvecklingsgrupp, vilket innebär förtrogenhet med olika arbetssätt inom programutveckling. I utbildningen läggs stor vikt vid användning av de senaste teknikerna, miljöerna, verktygen och metoderna. Tillsammans med ovanstående teoretiska grund innebär detta att systemarkitekter skall vara anställningsbara som programutvecklare direkt efter examen. Det är lika naturligt för en nyutexaminerad systemarkitekt att arbeta som programutvecklare på ett stort företags IT-avdelning, som en konsultfirma. Systemarkitekten är också lämpad att arbeta inom teknik- och idédrivna verksamheter, vilka till exempel kan vara spelutveckling, webbapplikationer eller mobila tjänster. Syftet med examensarbetet på systemarkitekturutbildningen är att studenten skall visa förmåga att delta i forsknings- eller utvecklingsarbete och därigenom bidra till kunskapsutvecklingen inom ämnet och avrapportera detta på ett vetenskapligt sätt. Således måste de projekt som utförs ha tillräcklig vetenskaplig och/eller innovativ höjd för att generera ny och generellt intressant kunskap. Examensarbetet genomförs vanligen i samarbete med en extern uppdragsgivare eller forskningsgrupp. Det huvudsakliga resultatet utgörs av en skriftlig rapport på engelska eller svenska, samt eventuell produkt (t.ex. programvara eller rapport) levererad till extern uppdragsgivare. I examinationen ingår även presentation av arbetet, samt muntlig och skriftlig opposition på ett annat examensarbete vid ett examinationsseminarium. Examensarbetet bedöms och betygssätts baserat på delarna ovan, specifikt tas även hänsyn till kvaliteten på eventuell framtagen mjukvara. Examinator rådfrågar handledare och eventuell extern kontaktperson vid betygssättning. BESÖKSADRESS: JÄRNVÄGSGATAN 5 POSTADRESS: ALLÉGATAN 1, BORÅS TFN: E-POST: INST.HIT@HB.SE WEBB: I
4 II
5 Svensk titel: Spelet Cave Generation: En Studie Om Procedurell Generering i 2D-Plattformsspel Engelsk titel: Cave Generation the game: A study about procedural generation in 2D platform games. Utgivningsår: 2018 Författare: Nick Johannesson, Simon Kevin Handledare: Anders Gidenstam III
6 Abstract This study examines different design choices within computer games to create interesting and varied levels that can appeal to both seasoned gamers and newcomers in one of the most popular hobbies in the world. Designing a level is a time-consuming process, and a way to shorten this work is to let a computer create the levels based on specific instructions, through a process called procedural generation. The goal of this study is to find out what design choices that needs to be taken into account in order to create programs to procedurally generate levels in games that are tailored for a specific target audience. The research question of this study is: Which elements are required in a 2D-platforming game in order for players to enjoy it? And which of the examined PCG-algorithms and parameter settings are suitable for creating a game that fulfils these requirements? In order to do this, a computer game was developed which used various forms of procedural generation. Respondents from target audiences based on their gaming habits were interviewed in order to find out what aspects people from each group looked for in a video game, and the in-house developed computer game was designed based on the respondents answers. After this a larger number of people tested the game and answered a survey, which was later compiled and analysed to find out which aspects of the games generated levels that the players from each target audience felt that the computer had been successful in. A part of the results that we found in this study are among other thing that people who play games more often are more motivated by a score system than other players who play less. And that all target audiences prefer varied level design. Keywords: Procedural Content Generation, Game Design, Level Design, Platforming Games, Video Games, Computer Games IV
7 Sammanfattning Denna studie undersöker olika designval inom datorspel för att skapa intressanta och varierade nivåer som kan tilltala både erfarna spelare och nybörjare inom en av de populäraste fritidsaktiviterna i världen. Att designa en nivå i ett spel är en tidskrävande process, och ett sätt att korta ner på detta arbete är att låta en dator skapa nivåer efter specifika instruktioner, genom en process som kallas för procedurell generering. Målet med denna studie är att ta reda på vilka designval som som behöver tas i åtanke för att skapa program för att procedurellt generera nivåer i spel som är anpassade efter en specifik målgrupp. Studiens forskningsfråga lyder: Vilka element krävs i ett 2D-plattformsspel för att spelare skall tycka om spelet? Samt vilka undersökta PCG-algoritmer och parameterinställningar lämpar sig för att skapa ett spel som uppfyller dessa önskemål? För att göra detta utvecklades ett datorspel som använde sig av olika former av procedurell generering. Respondenter från olika målgrupper utformade efter deras spelvanor intervjuades för att ta reda på vilka aspekter personer från varje grupp letade efter i ett datorspel, och det egenutvecklade spelet utformades efter respondenternas svar. Efter detta så fick ett större antal informanter testa spelet och svara på enkätfrågor som sedan sammanställdes och analyserades för att ta reda på vilka aspekter av spelets genererade nivåer som informanterna från varje målgrupp tyckte att datorn hade lyckats med. En del av de resultat vi fått från studien var bland annat att folk som spelar ofta blir mer motiverade av ett poängsystem än folk som spelar mer sällan, samt att alla målgrupper tyckte om en stor variation mellan nivåerna. Nyckelord: Procedurell Generering, Speldesign, Nivå-design, Plattformsspel, Tv-spel, Datorspel V
8 Innehållsförteckning 1 Inledning Bakgrund och problembeskrivning Syfte och Frågeställning Avgränsningar Disposition Teori Spelets implementation Spelet Implementerade algoritmer Generering av bana Förfining av nivå Placering av start- och målpositioner Placering av fiender och bottenlösa hål Ökning av svårighetsgrad Verifiering av spelbarhet Paketen Metod Metodtillämpning Resultat Intervjuer Presentation av insamlad enkätdata Analys av resultat Analys av intervju-resultat Analys av enkät-data Diskussion Slutsats Vad som skiljer vår studie från tidigare studier Fördelar och nackdelar med valda metoder Framtida forskning VI
9 1 Inledning Ett populärt tidsfördriv för många människor idag är spel, Fullerton (2008) säger att spel är den näst populäraste formen av underhållning efter tv tittande. Spel kan förekomma i många olika former, exempelvis: brädspel, kortspel, rollspel eller datorspel. Enligt Byrne (2004) består ett datorspel av bild, ljud, kinematografi, programmering och konst. Det är en designers, mer specifikt en nivå-designers, uppgift att sammanfoga alla dessa komponenter till ett spel. Vad händer om man låter en algoritm sköta denna uppgift? Fullerton (2008) påstår att det är kombinationen av utmaning, tävling och interaktion som gör ett spel roligt, denna studie kommer att ta reda på detta stämmer överens med vad ett antal spelare från olika målgrupper tycker gör ett 2D-plattformsspel roligt. Dessutom kommer studien att undersöka om en samling av algoritmer klarar av att skapa nivåer i ett spel med hjälp av Procedural Content Generation(PCG), så att spelet uppfyller spelarnas krav. 1.1 Bakgrund och problembeskrivning Procedural Content Generation innebär skapandet av data algoritmiskt istället för manuellt (Shaker, Togelius & Nelson, 2016). Data i denna kontext kan då vara spelelement i egenskap av: texturer, banor, spelregler, spelhändelser o.s.v. PCG började användas under 1980-talet i spelbranschen för att automatiskt skapa texturer. Därmed slapp man spendera dyrbart lagringsutrymme på att lagra texturerna. I andra fall använde man det för att skapa procedurellt genererade slumpmässiga nivåer (Rogue, 1980) för att motivera spelaren att spela spelet igen. Eller för att automatiskt generera hela spelvärldar (Elite, 1984) för att undkomma hårdvarubegränsningar i dåtidens hårdvara. Idag när diskutrymme inte längre är ett lika stort problem används PCG allt mindre för att generera texturer och banor i utbyte mot färdigdesignade världar och nivåer för att ha en mer konsistent och högkvalitativ design. Däremot används fortfarande PCG-algoritmer flitigt för att automatisera repetitiva handlingar, till exempel som att placera ut vegetation i spel med hjälp av exempelvis SpeedTree (IDV Inc, 2017) eller för att skapa och placera ut vapen och föremål i spelvärldar (Borderlands, Gearbox 2009). Idag används främst PCG i spelgenren Roguelikes, döpt efter spelet Rogue (Dotson, 2016) som kännetecknas av att alla nivåer är procedurellt genererade för att ge en unik nivå varje gång en person spelar igenom det. En genre som på senare tid börjat få fler spel med genererade nivåer är 2D-plattformsspel-genren, där spel såsom Flinthook (Tribute Games, 2017) och Spelunky (Mossmouth LLC, 2008) använder sig av PCG för att skapa unika banor precis som hos Roguelikes. Genren 2D-plattformsspel går ut på att en karaktär rör sig i en tvådimensionell rymd för att ta sig från start till mål med hjälp av att bland annat springa och hoppa. Det har forskats en del hur man kan skapa hela banor eller delar av banor med hjälp av Procedurell Generering. Exempelvis i en studie av Smith, Treanor, Whitehead och Mateas (2009) där spelnivåer skapas av en rytmbaserad algoritm, där en specifik spelrytm skapas baserat på de handlingar en spelare bör genomföra för att få en varierad spelupplevelse. Eller en studie av Reis, Lelis och Gal (2015) där automatiskt genererade sektioner av banor rangordnades av mänskliga spelare och sedan sammanfogades de högst rankade banorna för att skapa stora banor som skulle vara roliga att spela. Denna algoritm var dock designad för att skapa banor i ett redan existerande spel, Infinite Mario Bros (IMB)
10 De studier som undersökts visar hur ett av alla undersökta spelelement kan implementeras med hjälp av PCG, själva genereringen av nivån. Ingen undersökt studie har försökt skapa ett en hel spelupplevelse med PCG. En spelupplevelse klassar vi som en sammanslagning av alla spelets spelkomponenter, och inte bara själva nivån. Utöver detta problem har en andel av de tidigare studierna inte heller undersökt spelbarheten för ett helt spel, utan endast undersökt huruvida de individuella nivåer som genererats blir spelbara. Denna studie kommer att undersöka flera olika former av procedurell generering för att få fram ett att paket av algoritmer som sedan förväntas skapa en sekvens av banor som leder till en helt procedurellt genererad spelupplevelse till skillnad från de andra studiernas fristående banor. Banorna kommer sedan att utvärderas utifrån delar av Fullerton (2008) definition av nöjesfaktor i spel hos de som testar spelet inom kategorierna: bana, estetisk tilltalande layout, fiender/hinder samt svårighetsgraden att nå målet. 1.2 Syfte och Frågeställning Syftet med denna studie är att få reda på vad de spelare som testar vårt spel tycker gör ett 2Dplattformspel roligt att spela och om vårt spel som bygger på ett PCG-system kan uppfylla dessa krav för ett intressant spel. Dessa svar kan sedan användas av andra spelutvecklare för att få reda på vad spelare vill ha i ett 2D-plattformsspel. Vi har valt att ha denna konkreta frågeställning som besvaras i denna rapport: Vilka element krävs i ett 2D-plattformsspel för att spelare skall tycka om spelet? Samt vilka undersökta PCG-algoritmer och parameterinställningar lämpar sig för att skapa ett spel som uppfyller dessa önskemål? 1.3 Avgränsningar Studien har endast fokus på spelgenren 2D-plattformsspel. Därför kan inte våra resultat nödvändigtvis alltid tillämpas för alla andra spelgenrer. 1.4 Disposition Kapitel 2 beskriver teorin bakom studien i form av hur tidigare studier använt sina algoritmer. Kapitel 3 beskriver hur implementationen av spelet har gått till. Kapitel 4 beskriver metoderna som använts för att samla in data till denna studie. Kapitel 5 beskriver metodtillämpningen samt hur de olika paketen konfigurerats Kapitel 6 innehåller resultatet som samlats in med den valda metoden. Kapitel 7 innehåller en analys av våra resultat samt vad dem innebär. Kapitel 8 består av en sammanfattande diskussion
11 2 Teori De tidigare studier som undersökts har använt sig av PCG för att skapa nivåer i ett redan färdigt spel som är utvecklat av en tredje part. Spelet som används i dessa studier är en Super Mario Bros. klon, i form av IMB (Infinite Mario Bros). I de två studier som undersökts har två olika algoritmer för bangenerering tagits upp. Den ena studien av Smith, Treanor, Whitehead och Mateas (2009) behandlar deras algoritm Launchpad som skapar banor i IMB utifrån segment eller rytm-grupper. Hur banorna ser ut kontrolleras av hur rytmen som matas in ser ut. Rytmen genereras med en två-stegs, grammatiksbaserad ansats. I det första steget skapas en rytm som efter existerande fysiska begränsningar säger hur spelaren bör röra sig. I det andra steget skapas geometriska former efter hur den genererade rytmen ser ut. Flera rytmsegment slås sedan ihop och olika former av fiender placeras ut på banan. De tar i sin studie upp att det inte endast är en spelbar bana som avgör om ett spel är kul att spela. De menar att det är viktigt att spelet erbjuder spelaren en utmaning i form av skiftande svårighetsgrad, med bland annat rörliga plattformar och fiender. De tar upp ett antal triggers som även kan läggas till i 2D-plattformsspel för att göra dem mer utmanande. Dessa triggers kan exempelvis ändra fysiska aspekter i spelet som gravitation eller hastighet. Författarna säger att dessa metoder kan öka spelupplevelsen men att de inte skulle gå att implementera i Launchpad på grund av att det då inte går att garantera att man kan klara av rytm-grupperna. I den andra studien av Reis, Lelis och Gal (2015) undersökte författarna problemet med att avgöra om en bana genererad med PCG faktiskt är kul att spela. Författarna använde en algoritm, NLG (Notch Level Generator), som slumpmässigt skapade små delar av banor i IMB. Algoritmen skapade ungefär 2000 små banor som sedan fick utvärderas av mänskliga spelare i kategorierna: nöje, huruvida de är estetiskt tilltalande och svårighetsgrad. En annan algoritm, Human Computation Tension Arc-Based-level generator (HCTA), användes sedan för att sammanfoga de kortare banor som spelarna testat. HCTA börjar med att hämta ett antal, Γ, nivå-snuttar genererade med PCG, sedan rankar mänskliga spelare banorna utefter de tre tidigare nämnda kategorierna och banorna annoteras med l Γ, därefter sammanfogas banor med olika värden på Γ för att skapa en större bana. Slutligen jämfördes banor skapade med HCTA med andra metoder för bangenerering. Författarna kom fram till att deras metod kunde skapa banor som deras speltestare tyckte var roligare att spela än andra undersökta metoders banor
12 3 Spelets implementation Detta kapitel beskriver hur spelet som utvecklats under studiens gång implementerats och spelets handling. Dessutom beskrivs de algoritmer som använts under implementationen av spelet. 3.1 Spelet Spelet är skapat med C#-ramverket MonoGame och Visual Studio. Detta ramverk valdes på grund av tidigare erfarenheter med miljön och ramverket. Själva grunden till spelet bygger delvis på Krarups (2013) instruktion för skapande av 2D-plattformsspel. En bana i spelet representeras av en 2D-matris av celler med olika egenskaper. Cellerna kan antingen vara ett block eller ett tomrum vilket bestämmer om spelets karaktärer kan röra sig på dem. Dessutom finns det på varje bana en cell som innehåller startpositionen för spelaren samt en cell som innehåller målet som spelaren skall nå. Spelet innehåller ett frö (seed) som bestämmer hur banan kommer att initialiseras, ifall inget frö specificeras så genereras ett frö utifrån systemtiden. I spelet finns även karaktärer som antingen är spelare eller fiender. Karaktärerna har samma storlek som en cell, påverkas av gravitation, kan röra sig åt höger och vänster samt kan hoppa. Fiendekaraktärerna är antingen rörliga karaktärer likt spelaren eller statiska spikar. De rörliga karaktärerna rör sig i ett bestämt mönster från deras startpositioner och hoppar automatiskt när de är intill en vägg. Spelarkaraktären tar in input från spelaren och rör sig utifrån denna input i samma begränsningar som andra karaktärer. Spelkaraktären har ett antal liv och om liven tar slut dör spelaren. Spelaren kan utföra ett så kallat superhopp som låter spelaren hoppa mer än dubbelt så högt som vanligt, till kostnad av ett liv. En spelomgång är tänkt att innehålla fem olika banor med antingen samma parameterinställningar eller nya inställningar för varje bana som gradvis ökar svårighetsgraden. Efter att fem banor spelats får spelaren se sin statistik innehållande antal klarade banor samt antal kvarvarande liv. 3.2 Implementerade algoritmer Spelet bygger på fyra underkategorier av PCG-algoritmer som tillsammans bygger upp ett så kallat algoritmpaket d.v.s. en implementation eller konfiguration av parametrar från följande kategorier: Generering av bana För att generera en bana krävs först att cellerna i 2D-matrisen på något sätt initialiseras som ifyllda eller tomma. Spelet innehåller två algoritmer för att utföra denna uppgift: Random Placement och Drunkard Walk. Random Placement börjar med tomma celler. Algoritmen itererar genom alla celler och utifrån fröet och förbestämda odds bestäms det om ett block ska placeras i cellen eller inte. Parameterinställningar för denna algoritm är oddsen för att ett block ska placeras. Pseudokoden för Random Placement algoritmen är följande: - 4 -
13 RANDOMPLACEMENT(width, height, setting) 1 FC = setting.fillchance 2 INITIALIZE Map(width,height) 3 for each width 4 for each height 5 if rnd < FC 6 Map[width,height] = FILLED 7 else 8 Map[width,height] = EMPTY 9 return Map Den implementation av Drunkard Walk som vi har infört börjar med en matris fylld med block. Från fasta startpositioner placeras flera Walkers ut som rör sig slumpmässigt inom matrisen, och varje besökt cell blir en tom cell. Det går även att modifiera vikterna åt vilket håll de rör sig. Parameterinställningar för denna algoritm är vikterna för de olika riktningarna, antalet walkers, distansen de går och distansen mellan startpositionerna. Pseudokoden för Drunkard Walk är följande: DRUNKARDWALK(width, height, setting) 1 Stp = setting.steps 2 Wlkr = setting.walkers 3 Dir = setting.directions 4 INITIALIZE Map[width,height] 5 FILL Map[width,height] 6 for each Wlkr 7 for each Stp 8 sx = CLAMP(sX, 0, width) 9 sy = CLAMP(sY, 0, height 10 for each Dir 11 if rnd < Dir.Chance 12 Map[sX,sY] = EMPTY 13 return Map Förfining av nivå De ovanstående algoritmerna skapar endast en grov layout som inte lämpar sig för en spelnivå. Banan måste nu förfinas för att en spelare skall kunna röra sig på den. Cellular Automata itererar genom varje cell i matrisen och ändrar värdet på cellen utifrån hur cellens grannar ser ut. Om fler än ett förbestämt antal grannceller är ifyllda kommer även denna cell fyllas i. Om färre än det bestämda antalet grannceller är ifyllda kommer cellen att tömmas. Parameterinställningarna är antalet iterationer som algoritmen skall köras, huruvida ändringen av banan sker under inläsningen av banan eller om en kopia av banan ändras efter att den lästs in helt, samt hur många grannar som måste vara ifyllda för att en cell skall bli ifylld. Pseudokoden för Cellular Automata är följande: - 5 -
14 CELLULARAUTOMATA(width, height, setting) 1 Iter = setting.iterations 2 for each Iter 3 for each width 4 for each height 5 walls = GETSUROUNDINGWALLS(width, height) 6 if walls < setting.maxwalls 7 Map[width, height] = EMPTY 8 if walls > setting.maxwalls 9 Map[width, height] = FILLED 10 return Map Figur 1 Exempel på hur en nivå ser ut innan förfiningsalgoritmen har körts Figur 2 Exempel på hur en nivå ser ut efter förfiningsalgoritmen Cellular Automata har körts Placering av start- och målpositioner För att placera ut startpositionen för spelaren används en algoritm som hittar det första tomma blocket på X-axeln i 2D-matrisen. Detta görs genom att stega igenom alla block från koordinaterna X-min och Y-max i matrisen tills ett tomt block hittas. När en giltig startposition har genererats skapas en mål-cell. Detta görs genom att placera ut målet på det sista tomma blocket på X-axeln. Om målet inte ligger precis ovanpå ett ifyllt block flyttas det ner tills det nuddar ett ifyllt block. För att kontrollera att målet faktiskt går att nå från starten används en pathfinding-algoritm skapad av Husse (2010) som i sin tur bygger på Franco (2006) A-star implementation. En djupare beskrivning av denna algoritm går att se under rubrik i rapporten. Denna algoritm undersöker om det finns en väg av celler från startcellen till målcellen. Om ingen väg hittas genereras en ny målcell genom att flytta cellen ett steg närmare startcellen. Denna kontroll körs ett fördefinierat antal gånger och om den aldrig hittar en giltig väg genereras en helt ny bana utifrån det frö som angivits
15 De parametrar som går att modifiera hos denna algoritm är hur många steg som målet flyttas innan en ny bana skapas, vart startpositionen för spelaren skall vara i matrisen samt ifall målet skall vara på marken eller i luften. Nedan följer pseudokod för hur start och målpositionerna genereras: STARTANDGOALPLACEMENT(setting) 1 Map[width, height] = GETMAP() 2 for each width 3 for each height 4 if Map[width, height] = EMPTY 5 Map[width, height] = START 6 for each REVERSE(width) 7 for each REVERSE(height) 8 if Map[width, height] = EMPTY 9 Map[width, height] = GOAL 10 TESTSOLVEABLE(START, GOAL) 11 return START, GOAL Placering av fiender och bottenlösa hål Till sist placeras ett antal fiender ut på banan. Fiendernas positioner väljs helt slumpmässigt ut men måste uppfylla ett antal krav. Fiender får inte placeras inom tre celler från spelaren, fiender får inte placeras i samma block som en annan fiende, fiender får inte placeras i en ifylld cell. Om något av dessa krav inte uppfylls genereras en ny startposition för fienden. Fiender kan antingen vara statiska eller rörliga. Efter att fienderna genererats placeras ett antal hål ut på banan. Hålen placeras slumpmässigt ut på banan utifrån två kriterium: hålen måste vara minst en cell ifrån varandra och hål kan bara placeras vid ett visst djup. De parametrar som kan ändras för denna algoritm är antalet fiender som placeras ut samt hur långt fiendernas startpositioner måste vara från varandra. Hålplaceringens parameter är hur många celler från banans botten marken som krävs för att ett hål skall kunna skapas. Pseudokoden för att generera fiender är följande: ENEMYPLACEMENENT(setting) 1 E = setting.enemiescount 2 Chance = setting.enemytypechance 3 for each E 4 if randomvalue < Chance 5 E = STATICENEMY() 6 E = MOBILEENEMY() 7 SpawnPoint = GENERATERANDOMPOINT() 8 if SpawnPoint!= setting.playerspawnpoint 9 PLACEENEMY(E, SpawnPoint, Map) Pseudokoden för att generera bottenlösa hål följer nedan: - 7 -
16 PITFALLPLACEMENT(setting) 1 PF = setting.numberofpitfalls 2 Positions[width, height] 3 for each width 4 for each height 5 if ALLOWEDPOSITION(Map[width, height]) 6 Positions[width, height] = ALLOWED 7 for each PE 8 RandomPosition = RANDOMINDEX(Positions.ALLOWED) 9 PLACEPITFALL(RandomPosition) Ökning av svårighetsgrad Ett system som ökar svårighetsgraden utifrån hur väl spelaren presterar under tidigare nivå. Om en spelare avslutar en bana med två eller fler återstående liv aktiveras systemet och ändrar vissa specifika inställningar för att öka svårighetsgraden. Vilka inställningar som ändras beror på parametern IncrementChance. Denna parameter är beroende på spelets seed, detta innebär att ett förbestämt seed alltid kommer att öka svårighetsgraden på samma sätt. Detta system har möjligheten att ändra: antalet bottenlösa hål, bredden samt djupet på hålen och antalet fiender. Pseudokoden för ökningen av svårighetsgrad är följande: INCREASEDIFFICULTY(setting) 1 IV = setting.incrementablevalue 2 for each IV 3 if randomvalue < setting.incrementchance 4 IV Verifiering av spelbarhet För att verifiera att den genererade nivån var möjlig att klara av användes en pathfindingalgoritm, A*, som letade efter en väg mellan start och mål. Ifall algoritmen inte hittade en väg genererades en ny nivå och pathfinding-algoritmen försökte igen. Russel och Norvig (2009) påstår att algoritmen är väldigt effektiv och expanderar det minsta möjliga antalet noder för sin heuristik, och därför valdes A* då verifiering är en tidskrävande process som behövde en så tidseffektiv algoritm som möjligt. Pseudokoden för verifiering är följande: TESTVALIDITY(setting, map) 1 valid = RUNASTAR(map) 2 while valid = false 3 map = GENERATEMAP(settings) 4 valid = RUNASTAR(map) Paketen En modell-klass innehållande alla ovan nämnda parametrar skapades. Denna modell innehöll bland annat hur många liv en spelare kan ha samt vilken algoritm som skall användas för generering av banan. Att ha en sådan modell underlättar arbetet för att snabbt kunna skapa olika banor med antingen fördefinierade inställningar eller möjligheten att ändra parameterinställningar innan en ny bana genereras
17 4 Metod Denna studie innehåller två etapper av datainsamling. Till att börja med hölls ett antal intervjuer med ett antal utvalda informanter. Därefter utfördes ett speltest av ett egenutvecklat 2D-plattformsspel för att samla in data med hjälp av en tillhörande enkätstudie. Innan datainsamlingen påbörjades valdes tre målgrupper av testspelare ut för studiens genomförande: folk som spelar datorspel dagligen, folk som spelar ibland, samt folk som aldrig eller mycket sällan spelar spel. Något som kunde hjälpa till att hitta målgrupperna var respondenternas utbildning. Därför samlades även denna data in för att kunna få svar med mer variation hos målgrupperna. En hypotes om att samma algoritmpaket skulle vara populära hos folk med samma utbildning skapades. Intervjuerna hölls med det som Robson (2016) kallar semi-structured interviews(semistrukturerade intervjuer) vilket innebär att ett antal fördefinierade punkter tas upp under intervjun, men inga specifika frågor är förbestämda. Detta gör att intervjun inte har ett förbestämt upplägg och kan se olika ut från respondent till respondent beroende på vad de svarar. De punkter som tog upp var bland annat: tidigare erfarenhet av 2D-plattformspel, vad gjorde andra 2D-plattformsspel roliga, vad som gjorde dem mindre roliga, hur viktigt är det att spelutvecklaren lägger ner mycket tid på designen samt ifall de trodde att en dator kan skapa ett lika bra spel som en mänsklig designer. För att samla in enkätdatan spelade testspelare från de tre målgrupperna först ett antal banor skapade av olika PCG-algoritmpaket i spelet. Därefter svarade de på en enkät med frågor kring vad de tyckte om banorna. Enkäten innehöll dessutom frågor om 2D-plattformsspel i allmänhet samt vad spelarna tyckte om vårt spel i relation till dessa frågor. Enkäten bestod av 12 kryssfrågor samt två fritextfrågor där respondenterna fick kryssa i den ruta de tyckte stämde överens bäst med frågan på en skala 1-3. Denna form av blandad datainsamling valdes eftersom studien har en tidsbegränsning som inte tillåter utförandet av djupare intervjuer med alla testspelare. Alla intervjuer spelades in och transkriberades för att underlätta analysen av den insamlade datan. För att analysera datan som samlades in i intervjuerna användes delar av metoden som Robson (2016) kallar thematic coding approach (tematisk kodning). Analysen av enkätdatan gjordes genom att dela upp alla svar i delkategorier och sedan leta efter samband och trender i svaren i varje delkategori. Då både intervjuerna och enkätstudien innehåller människor behöver självklart etiska betänkligheter tas i åtanke. Alla intervjuade informanter är helt anonyma och likaså alla enkätens respondenter. Alla medverkande har innan de deltagit i studien givit oss sitt muntliga medgivande och har vetat om sin rättighet att inte medverka. Alla medverkande har fått reda på vad det är för sorts data som samlas in och vad datan ämnas användas till. Vi hoppas att intervjuernas resultat hjälper oss att besvara den första delen av forskningsfrågan: Vilka element krävs i ett 2D-plattformsspel för att spelare skall tycka om spelet? Dessutom hoppas vi att enkätens resultat hjälper oss att besvara den andra delen av forskningsfrågan: Samt vilka undersökta PCG-algoritmer och parameterinställningar lämpar sig för att skapa ett spel som uppfyller dessa önskemål? - 9 -
18 5 Metodtillämpning Samtidigt som designen och implementationen av spelet påbörjades, tillfrågades två informanter från varje målgrupp att delta i en intervju om deras spelvanor, erfarenheter och åsikter kring spelgenren 2D-plattformsspel. Spelets uppbyggnad och funktioner beskrivs djupare i studiens Teorikapitel. Intervjuerna har främst skett på campus för Högskolan i Borås. Denna plats valdes eftersom det rör sig mycket studenter med olika former av utbildningar där. Intervjuerna hölls med metoden semi-structured interviews, som innebär att intervjun inte hade en förbestämd riktning. Ett antal punkter togs upp under varje intervju, men beroende på vad informanterna svarat om punkterna kunde olika frågor ställas under varje intervju. För att analysera den insamlade datan från intervjuerna transkriberades alla intervjuer och analyserades sedan med tematisk kodning. Alla transkriberade intervjuer går att hitta i Appendix 1. Vi hittade frågor och svar som dök upp i alla eller flera av intervjuerna och grupperade svaren efter ämnen. Därefter letade vi efter de mest frekventa svaren och antog att dessa svar stämde mest överens med informanternas målgrupps åsikter kring ämnet. Vi försökte hitta liknande åsikter hos informanter ur samma målgrupp men även likheter och skillnader mellan informanter ur olika målgrupper. Utifrån svaren som samlats in under dessa intervjuer skapades sedan ett tiotal enkätfrågor som alla testspelare skulle få svara på i samband med speltestet. Enkäten designades i ordbehandlingsprogrammet Microsoft Word (2013). För att inte låta enkäten ta för mycket tid innehöll den endast drygt ett dussin frågor som fick plats på ett A4-papper. Enkätens i sin helhet hittas i Appendix 2. Enkätens första frågor baserades dels av samma frågor och de svar vi fick under de inledande intervjuerna men mer inriktat mot vårt specifika spel istället för 2D-plattformsspel överlag. Sedan fanns det även tre frågor som ställdes i den tidigare studien av Reis, Lelis och Gal (2015) kring spelets nöje, estetiskt tilltalande nivåer och svårighetsgrad. Slutligen ställdes två frågor där respondenterna fick svara med egna ord. Dessa frågor hade vi även ställt till alla informanter i de tidigare intervjuerna: Tycker du att det är viktigt att en spelutvecklare lägger ner mycket tid på att designa en nivå? och Tror du att en dator kan göra ett lika bra spelnivåer som en människa?. Analysen av all data som samlats in med enkäterna genomfördes dela in alla svar utefter spelat algoritmpaket och målgrupp. Spelarnas totala poäng analyserades för att se om det påverkade hur de svarade på frågorna. Dessutom undersöktes det om en relation mellan målgrupp och utbildning kunde hittas. Speltesten hölls främst på samma plats som intervjuerna, så att testspelare från de tre specifika målgrupperna enkelt skulle kunna hittas. Dessa målgrupper valdes för att få en större mångfald på svaren, då olika sorters spelare kan ha olika åsikter om vad som gör ett spel underhållande, och för att se ifall några algoritmpaket lämpade sig bättre för specifika målgrupper. Testspelarna fick testa ett algoritmpaket utifrån de förbestämda paket vi skapat. Målet var att få samma mängd testspelare för varje paket
19 Varje speltestare fick testa ett av de tre olika algoritmpaketen. Spelaren fick spela fem nivåer genererade av det valda algoritmpaketet med ett slumpmässigt valt seed. Varje nivå gav spelaren tre liv där nivåns slut gav spelaren ett poäng per återstående liv, och man kunde maximalt få 15 poäng efter fem nivåer. Spelets svårighetsnivå ökade om spelaren fick mer än två poäng efter att de klarat en nivå. Efter att spelarna spelat klart fick de fylla i enkäten och spelarnas poäng loggades. Spelet innehöll en beskrivning av kontrollerna som gick att nå från huvudmenyn, men vi fanns även tillgängliga på plats för att förklara otydligheter ifall testspelarna fann något oklart. Detta var för att alla som testade spelet skulle ha samma förutsättningar. De möjliga inställningarna för de olika algoritmpaketen går att se i Figur 1. Figur 3 möjliga inställningar för algoritmpaket De olika attributen bestämmer följande inställningar för genereringen av nivåer: DrunkardDirections: Vikterna som bestämmer sannolikheterna att en walker i DrunkardWalk-algoritmen skall gå åt en viss riktning. DistanceBetweenEnemies: Antalet pixlar som den ena fienden flyttas om två fiender startar på samma position. DistanceBetweenWalks: Antalet vertikala block mellan varje walker i DrunkardWalkalgoritmen. EnemiesCanJump: Bestämmer om fiender kan hoppa eller inte. EnemyCount: Sammanlagda antalet fiender och spikar som skapas vid banans generering. GoalOnGround: Bestämmer om mål-positionen måste vara på marken eller inte. IncrementChance: Den procentuella chansen att inställningarna ökar då svårighetsgraden ökar. IncrementDifficulty: Bestämmer om svårighetsgraden skall ökas då spelaren får mer än 2 poäng på en bana. Påverkar EnemyCount, NumberOfPitfalls, PitfallMaxHeight, och PitfallWidth
20 IterationsOfSmoothmap: Antalet iterationer som MapCleanup-algoritmen körs. MapGeneratorType: Vilken algoritm som används för att generera banan, kan antingen vara RandomPlacemnt eller DrunkardWalk. NumberOfNeighborCells: Antalet celler som krävs för att en cell skall bli ifylld eller inte i Cellular Automata-algoritmen. NumberOfPitfalls: Antalet bottenlösa hål i en nivå. NumberOfSteps: Antalet steg en Walker tar i DrunkardWalk-algoritmen. NumberOfWalks: Antalet Walkers i DrunkardWalk-algoritmen. PitfallMaxHeight: Antalet block ett bottenlöst hål kan sträcka sig i höjd. PitfallWidth: Antalet block ett bottenlöst hål sträcker sig i bredden. PlayerLives: Antalet liv en spelare börjar med i varje nivå. RandomFillPercent: Chansen att ett tomt block fylls i, i RandomPlacement-algoritmen. Seed: Det frö som används vid alla slumpmässiga val. Ifall det är tomt så skapas ett seed utifrån tiden när spelet startar. StartPositionForWalkers: Positionen för den första Walkern i DrunkardWalk-algoritmen, senare Walkers position bestäms av DistanceBetweenWalks. StaticEnemyChance: Oddsen att en fiende blir rörlig eller statiska spikar. UseCopy: Bestämmer om huruvida ändringen av banan sker under inläsningen eller om en kopia av banan ändras efter att den lästs in helt i CellularAutomata-algoritmen
21 Paket 1 hade som mål att skapa mer organiska nivåer som simulerade grottor, vi valde att endast ha ett fåtal fiender. Nivåerna hade många mjuka former. Se bilden i Figur 2. Algoritmpaket 1 hade följande inställningar: Seed IncrementChance 66 IncrementDifficulty true EnemyCount 2 DistanceBetweenEnemies 10 EnemiesCanJump true StaticEnemyChance 30 GoalOnGround true UseCopy true IterationsOfSmoothMap 2 NumberOfNeighborCells 4 MapgeneratorType DrunkardWalk DistanceBetweenWalks 5 NumberOfSteps 250 NumberOfWalks 5 DrunkardDirections 20,20,20,40 StartPositionForWalkers (0,0) RandomFillPercent 45 PlayerLives 3 NumberOfPitfalls 0 PitfallMaxHeight 6 PitfallMaxWidth 2 Figur 4: Exempel på hur nivåer ser ut i Algoritmpaket
22 Paket 2 använde en annan algoritm för att generera den generella layouten, vilket gav mer slumpmässiga nivåer istället för de tunnelliknande nivåerna från paket 1. Paket 2 karaktäriserades av många mindre hängande plattformar och ofta väldigt kantiga strukturer. Vi ökade även antalet fiender. Se bilden i Figur 3. Algoritmpaket 2 hade följande inställningar: Seed IncrementChance 50 IncrementDifficulty true EnemyCount 4 DistanceBetweenEnemies 10 EnemiesCanJump true StaticEnemyChance 60 GoalOnGround true UseCopy true IterationsOfSmoothMap 2 NumberOfNeighborCells 4 MapgeneratorType RandomPlacement DistanceBetweenWalks 5 NumberOfSteps 250 NumberOfWalks 5 DrunkardDirections 20,20,20,40 StartPositionForWalkers (0,0) RandomFillPercent 45 PlayerLives 3 NumberOfPitfalls 0 PitfallMaxHeight 6 PitfallMaxWidth 2 Figur 5: Exempel på hur nivåer ser ut i Algoritmpaket
23 Paket 3 använde samma grundläggande nivå-genererings algoritm som paket 1, men kännetecknades av en total avsaknad av rörliga fiender där tunnlarna istället blockerades av många fler spikar och bottenlösa hål. Se bilden i Figur 4. Algoritmpaket 3 hade följande inställningar: Seed IncrementChance 75 IncrementDifficulty true EnemyCount 2 DistanceBetweenEnemies 10 EnemiesCanJump true StaticEnemyChance 100 GoalOnGround true UseCopy true IterationsOfSmoothMap 2 NumberOfNeighborCells 4 MapgeneratorType DrunkardWalk DistanceBetweenWalks 5 NumberOfSteps 250 NumberOfWalks 5 DrunkardDirections 20,20,20,40 StartPositionForWalkers (0,0) RandomFillPercent 45 PlayerLives 3 NumberOfPitfalls 2 PitfallMaxHeight 7 PitfallMaxWidth 2 Figur 6: Exempel på hur nivåer ser ut i algoritmpaket
24 6 Resultat Två etapper av datainsamling har skett under studiens gång och resultaten för dem kommer att redogöras i detta kapitel. 6.1 Intervjuer Studien innehöll sex stycken intervjuer med informanter från varje tidigare nämnd målgrupp; tre informanter tillhörde målgruppen som spelade dagligen, två informanter spelade sällan och en informant spelade aldrig datorspel. Alla informanter fick frågan vad de tycker gör ett spel kul, och alla svarade att de tyckte om att bli utmanade i spelen. Tre av respondenterna tyckte att det var viktigt att spelet blev svårare ju mer man spelade spelet. Alla fick också frågan vad de tycker gör ett spel mindre roligt, hälften av dem tog upp svårighetsgraden som ett exempel, två tyckte inte om det när ett spel blev för svårt, och den tredje tyckte inte om det när det blev för enkelt. Andra svar var: reklam i spelet, att spelet blir för verklighetstroget till kostnad av spelglädje, och enformiga nivåer. Vid frågan på hur de ville bli utmanade i spel svarade målgruppen som spelar ofta: att det beror på spelets mål, de gillade både precision och att slåss mot fiender. De tyckte att det var viktigt att spelet var konsekvent och att resultatet inte styrdes av slumpen. Målgruppen som spelade sällan och målgruppen som aldrig spelade tyckte däremot om när spelet blev svårare med tiden. Ingen av informanterna tyckte att bra grafik var en viktig faktor för spelupplevelsen i ett 2Dspel, dock så svarade vissa att en unik och intressant stil kunde förbättra upplevelsen. De informanter som fick frågan om de föredrog långa eller korta nivåer svarade att de berodde på vilken form av spel, alla tyckte dock längden på banorna inte behövde vara samma för varje bana. När informanterna blev tillfrågade om de tyckte att det var viktigt för spelutvecklaren att lägga ner mycket tid på att designa banorna svarade majoritet av dem att det inte var tiden som lagts på designen som spelade roll utan helheten som gjorde spelet bättre. Den avslutande frågan, ifall de tillfrågade trodde att en dator skulle kunna skapa en lika bra nivå som en mänsklig designer, hade dessa svar från målgruppen som spelade ofta: så länge datorn och människan har samma förutsättningar kan de göra lika bra banor men datorn saknar den mänskliga känslan och kan inte uppnå samma resultat. Målgruppen som spelade sällan trodde inte att en dator skulle kunna göra lika bra banor som en människa. Målgruppen som aldrig spelade spel trodde garanterat att en dator skulle kunna skapa lika bra banor som en mänsklig designer
25 6.2 Presentation av insamlad enkätdata Här presenteras den insamlade datan, dessutom presenteras enkätens alla frågor. Enkäten innehöll följande frågor: Fråga 1: Längden på banorna Fråga 2: Ökningen av svårighetsgrad Fråga 3: Variationen mellan nivåerna Fråga 4: Fördelningen mellan fiender och spikar Fråga 5: Fiendernas påverkan på spelupplevelsen Fråga 6: Utmaningen att nå målet Fråga 7: Mängden hål Fråga 8: Poängsystemet som motivationskälla Fråga 9: Enkelhet i inlärning Fråga 10: Nöje i hela spelupplevelsen Fråga 11: Estetiskt tilltalande layout Fråga 12: Svårighetsgraden i allmänhet Fråga 13: Är det viktigt att spelutvecklaren lägger ner mycket tid på designen? Fråga 14: Kan en dator göra lika bra nivåer som en människa Tabell 1: Alla frågor i enkäten. Nedan presenteras de tabeller och grafer som används för att visualisera resultaten av de olika frågorna i enkäten. Den insamlade råa datan går att hitta i Appendix 3. Enkätfrågorna 1 12 presenteras som en tabell i Figur 5 där frekvensen av varje svar, 1-3, redovisas fördelat på paket och målgrupp. Dessutom presenteras även en graf med fördelningen av utbildning hos alla respondenter, samt en graf med fördelningen av de tre målgrupperna hos alla respondenter. Det presenteras även en graf med antalet poäng alla respondenter fått under deras speltest. Stapeldiagram valdes eftersom som dessa är bra på att representera oberoende värden medan cirkeldiagram utmärker sig med egenskapen att visa andelar av en helhet. Till sist presenteras tre liggande stapeldiagram som visar svaren på enkätens sista två frågor indelat i de tre målgrupperna samt fördelningen av målgrupperna för varje algoritmpaket
26 Poäng Fråga 1 Fråga 2 Fråga 3 Fråga 4 Fråga 5 Fråga 6 Fråga 7 Fråga 8 Fråga 9 Fråga 10 Fråga 11 Fråga 12 Paket 1 Aldrig 1P P P Paket 1 Ofta 1P P P Paket 1 Sällan 1P P P Paket 2 Aldrig 1P P P Paket 2 Ofta 1P P P Paket 2 Sällan 1P P P Paket 3 Aldrig 1P P P Paket 3 Ofta 1P P P Paket 3 Sällan 1P P P Tabell 2: Frekvens av varje svar på enkätfrågorna 1-12, indelat i paket och målgrupper
27 Figur 7: Utbildningen för alla respondenter Figur 8: Andelar av de olika målgrupperna hos respondenterna
28 Figur 9: Spelarnas genomsnittliga highscore för varje algoritmpaket samt det totala medelvärdet av alla spelares highscore. Figur 10: Fördelning av svar på fråga 13 Är det viktigt att spelutvecklaren lägger ner mycket tid på designen
29 Figur 11: Fördelning av svar på fråga 13, Är det viktigt att spelutvecklaren lägger ner mycket tid på designen, indelat i de tre målgrupperna Figur 12: Fördelning av svar på fråga 14, Tror du att en dator kan skapa lika bra nivåer som en människa?
30 Figur 13: Fördelning av svar på fråga 14, Kan en dator göra lika bra nivåer som en människa?, indelat i de tre målgrupperna Figur 14: Antalet respondenter från varje utbildning indelat i målgrupper
31 7 Analys av resultat Detta kapitel innehåller en analys av all data som samlats in under studiens gång samt en beskrivning av hur datan som samlats in under den inledande intervjufasen påverkade spelets utveckling innan enkätstudien och de resterande speltesterna påbörjades. 7.1 Analys av intervju-resultat. Ett frekvent svar bland de intervjuade var att svårighetsgraden bör ökas under spelets gång. Därför valde vi att implementera ett system som ökar svårighetsgraden i takt med spelarens färdigheter i spelet. Eftersom informanterna svarade att ett spel som är för svårt minskar spelglädjen så gjordes valet att endast öka svårighetsgraden då spelaren gjorde bra ifrån sig under en nivå istället för att konstant öka svårighetsgraden med tiden. Detta gjorde så att om spelaren hade svårigheter med den initiala svårighetsgraden så skulle den inte öka förrän spelaren var redo att spela svårare nivåer. En annan punkt som uppmärksammades var att informanterna inte tyckte att det var viktigt med bra grafik. Därför gjordes valet att inte fokusera på att även generera texturer med hjälp av PCG, så som det gjordes i spel från 1980-talet. På frågan där informanterna fick svara på vad som förstörde spelglädjen sades det att enformiga nivåer kunde vara tråkiga. Själva målet med att använda PCG för att skapa banor är just för att undvika detta
32 7.2 Analys av enkät-data I Figur 8, tabellen med fördelningen mellan de tre målgrupperna: spelar ofta, spelar sällan och spelar aldrig, går det att utläsa att målgruppen som spelar ofta uppgör drygt hälften av alla respondenter. I Figur 7 kan vi avläsa att fler än två tredjedelar av alla respondenter läser utbildningar riktade mot informatik, där datorer används till en stor del. Därifrån kan man anta att de är mer bekanta med datorer och datorspel än respondenter med andra utbildningar. Detta styrker vi med Figur 14 som visar relationen mellan utbildning och indelning i målgrupp. Vi kan se att drygt 14/15 av alla i målgruppen som spelar ofta läser en utbildning med inriktning mot informatik. Figur 15: Fördelning av spelare från varje målgrupp som spelade varje algoritmpaket. Spelarnas genomsnittliga highscore i de tre algoritmpaketen skiljer sig inte så mycket mellan de tre målgrupperna. Dock kan vi i Figur 9 se att algoritmpaket 1 hade det högsta genomsnittliga highscore och att algoritmpaket 2 hade de lägsta genomsnittliga highscore. Poängen visar på detta vis en antydan till svårighetsgraden mellan de olika paketens nivåer, där paket 2 skapade svårare nivåer än de andra, och detta backas upp av svaren på fråga 12 Svårighetsgraden i allmänhet ; detta kan ses i Tabell 2 där algoritmpaket 2 har fått högst frekvens av svar att spelet var för svårt. Vi kan dock se i Figur 15 ovan att paket 2 hade en större andel av testspelare från målgruppen som aldrig spelar gentemot de två andra algoritmpaketen. Som vi kan utläsa ur Tabell 2 har endast en respondent svarat att banorna var för långa. Vi kan då konstatera att detta endast är ett avvikande värde och att ungefär 3/4 av respondenterna tyckte att banornas längd var lagom. Svaren på fråga 2, Ökningen av svårighetsgrad, visar att drygt 58 % tyckte att ökningen av svårighetsgraden endast var okej, dock kan detta bero på att många spelare fått låga poäng och aldrig upplevt att svårighetsgraden faktiskt ökat. Även fråga 3, Variationen mellan nivåerna har ungefär samma svar som fråga 2, spelarna tycke att variationen mellan nivåerna var okej
33 Resultaten från fråga 4 och 5, Fördelningen mellan fiender och spikar samt Fiendernas påverkan på spelupplevelsen, kan vara missvisande då algoritmpaket 3 inte innehöll några fiender utan endast spikar. Detta kan ha bidragit till att en del respondenter inte har svarat på frågan eller gett den ett lågt betyg. Dock finns de en del respondenter som ändå givit detta algoritmpaket ett högt betyg, detta kan bero på att de faktiskt föredrar spelet utan fiender. Respondenterna kan också ha tolkat frågan som att spikarna är fiender. Bortsett från algoritmpaket 3 tyckte dock ungefär hälften att fiendernas påverkan på spelupplevelsen var bra. I Figur 16 nedan kan vi se att en större andel av de som tillhör målgruppen spelar ofta tycker att fienderna påverkar spelupplevelsen till det bättre gentemot de andra två målgrupperna. Vi kan också se att bland de i målgruppen som aldrig spelar så fanns det ingen som tyckte att fienderna hade en negativ påverkan på spelupplevelsen. Figur 16: Svar på fråga 5 Fiendernas påverkan på spelupplevelsen indelat i målgrupper. Svaren på fråga 6, Utmaningen att nå målet visar att hälften av spelarna tyckte att utmaningen att nå målet var bra, hälften av spelarna tyckte att utmaningen var okej och endast två spelare tyckte inte om utmaningen att nå målet. Fråga 7, Mängden hål har på paket 3, där vi hade betydligt fler hål, fått högre poäng jämfört med på paket 1 och 2 där alla spelare inte kommit så långt att hål börjat genereras vilket kan ha påverkat deras svar. Även fråga 8, Poängsystemet som motivationskälla hade blandade svar men vi kan se, i Figur 17 nedan, att bland de som spelar ofta fanns det en större andel respondenter som motiverades starkt av poängsystemet jämfört med de som spelade sällan eller aldrig. Vid en närmare analys av relationen mellan spelarnas poäng och deras svar på fråga 5 och 8 hos målgruppen som spelar ofta kan vi i Figur 18 nedan se att det dock inte fanns något som tydde på att spelarna skulle tycka sämre om fienderna om de samtidigt tyckte att det var viktigt med poängräkningen
34 Figur 17: Alla svar på fråga 8 Poängsystemet som motivationskälla, grupperade efter målgrupp. Figur 18: Spelarnas poäng samt deras svar på fråga 5 och 8 hos målgruppen som spelar ofta
SPELTESTNING FUZZY LOGIC. Kandidatuppsats i Informatik. Patrik Lundqvist Michael Enhörning VT 2010
SPELTESTNING FUZZY LOGIC Kandidatuppsats i Informatik Patrik Lundqvist Michael Enhörning VT 2010 Svensk titel: Speltestning Engelsk titel: Gametesting Utgivningsår: 2010 Författare: Patrik Lundqvist, Michael
Programmeringsuppgift Game of Life
CTH/GU STUDIO TMV06a - 0/0 Matematiska vetenskaper Programmeringsuppgift Game of Life Analys och Linär Algebra, del A, K/Kf/Bt Inledning En cellulär automat är en dynamisk metod som beskriver hur komplicerade
Business research methods, Bryman & Bell 2007
Business research methods, Bryman & Bell 2007 Introduktion Kapitlet behandlar analys av kvalitativ data och analysen beskrivs som komplex då kvalitativ data ofta består av en stor mängd ostrukturerad data
Genetisk programmering i Othello
LINKÖPINGS UNIVERSITET Första versionen Fördjupningsuppgift i kursen 729G11 2009-10-09 Genetisk programmering i Othello Kerstin Johansson kerjo104@student.liu.se Innehållsförteckning 1. Inledning... 1
Kravspecifikation. TDP005 Projekt: objektorienterade system. Version 4.0 Datum Anna Ahlberg Johan Almberg
Kravspecifikation TDP005 Projekt: objektorienterade system Version 4.0 Datum 2008 12 05 Anna Ahlberg Johan Almberg 1 Innehållsförteckning 1. Spelidé...3 1.1 Svårighetsgrad...3 2. Målgrupp...3 3. Spelupplevelse...3
Flaxande Fågel. Introduktion. Level
Level 2 Flaxande Fågel All Code Clubs must be registered. Registered clubs appear on the map at codeclub.org.uk - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do. Introduktion
Kursintroduktion. B-uppsats i hållbar utveckling vårterminen 2017
Kursintroduktion B-uppsats i hållbar utveckling vårterminen 2017 People build up a thick layer of fact but cannot apply it to the real world. They forget that science is about huge, burning questions crying
Muntlig examination ett alternativ till skriftlig tentamen?
Miniprojekt, pedagogisk kurs för universitetslärare II, vt 2002 Jessica Johansson och Christine Holmström, Företagsekonomiska inst Muntlig examination ett alternativ till skriftlig tentamen? Inledning
Anvisningar till rapporter i psykologi på B-nivå
Anvisningar till rapporter i psykologi på B-nivå En rapport i psykologi är det enklaste formatet för att rapportera en vetenskaplig undersökning inom psykologins forskningsfält. Något som kännetecknar
Titel Mall för Examensarbeten (Arial 28/30 point size, bold)
Titel Mall för Examensarbeten (Arial 28/30 point size, bold) SUBTITLE - Arial 16 / 19 pt FÖRFATTARE FÖRNAMN OCH EFTERNAMN - Arial 16 / 19 pt KTH ROYAL INSTITUTE OF TECHNOLOGY ELEKTROTEKNIK OCH DATAVETENSKAP
6. a) Visa att följande vektorer är egenvektorer till matrisen A = 0 2 0 0 0 0 1 1, och ange motsvarande
MÄLARDALENS HÖGSKOLA Akademin för utbildning, kultur och kommunikation Avdelningen för tillämpad matematik Examinator: Erik Darpö TENTAMEN I MATEMATIK MAA5 Vektoralgebra TEN2 Datum: juni 25 Skrivtid: 3
Kravspecifikation TDP005 Projekt: Objektorienterat system
Kravspecifikation TDP005 Projekt: Objektorienterat system Innehållsförteckning 1. Spelidé 3 2. Målgrupp 3 3. Spelupplevelse 3 4. Spelmekanik 3 5. Regler 3 5.1 Spelplan 3 5.2 Spelaren 3 5.3 Token 3 5.4
Decentraliserad administration av gästkonton vid Karlstads universitet
Datavetenskap Opponent(er): Markus Fors Christian Grahn Respondent(er): Christian Ekström Per Rydberg Decentraliserad administration av gästkonton vid Karlstads universitet Oppositionsrapport, C/D-nivå
Programmeringsappar. Av Alex
Programmeringsappar Av Alex Omdöme 4/5 40 Kr 10+ År Robot School Robot School kommer från företaget Next is Great I appen Robot School hjälper man roboten R-obbie att nå sitt batteri genom att placera
- A Scrum Planning Tool Case Study to Evaluate the The Rich AJAX Platform
Datavetenskap Opponent(er): Jhonny Carvajal Johan Bjärneryd Respondent(er): Fredrik Häggbom Erik Olsson Haglund Scrumptious - A Scrum Planning Tool Case Study to Evaluate the The Rich AJAX Platform Oppositionsrapport,
Rutiner för opposition
Rutiner för opposition Utdrag ur Rutiner för utförande av examensarbete vid Avdelningen för kvalitetsteknik och statistik, Luleå tekniska universitet Fjärde upplagan, gäller examensarbeten påbörjade efter
Kandidatexamensarbete-i-
Kandidatexamensarbete-i- Medieteknikvid-CSC,-KTH Freemium-gaming 9Hur$drivs$spelare$till$att$köpa$virtuella$objekt$i$Freemium5spel? Freemium-gaming 5How$are$players$driven$to$buy$virtual$goods$in$Freemium$games?
Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling
Rune Tennesmed Oskar Norling Individuellt Mjukvaruutvecklingsprojekt Webbprogrammerare H12 Oskar Norling 2012-05-30 Abstrakt Denna rapport handlar om mitt mjukvaruutecklingsprojekt som jag och en klasskompis
I figur 1 och 2 redovisas betygsfördelningen på delproven i svenska 1 respektive svenska som andraspråk 1.
Resultat från kursprov 1 våren 16 Tobias Dalberg, Kristina Eriksson, Harriet Uddhammar Institutionen för nordiska språk/fums Uppsala universitet Kursprov 1 vårterminen 16 hade temat Att göra gott? Här
Tor Sterner-Johansson Thomas Johansson Daniel Henriksson
Lab 4: Anti Tower Defence Oskar Mothander Alan Mendez Larsson dit06omr dit06mln Lärare: Handledare: Johan Eliasson Johan Granberg Tor Sterner-Johansson Thomas Johansson Daniel Henriksson Innehåll 1. Problemspecifikation...
MinMax Algoritmen Implementation och optimering. Joakim Östlund 15 juni 2004
MinMax Algoritmen Implementation och optimering Joakim Östlund 15 juni 2004 1 Samanfattning MinMax är en algoritm som kan användas i turbaserade spel för att skapa en virituell motståndare. Algoritmen
Procedurell generering av grottsystem för dataspel Jämförelse av procedurellt genererade osymmetriska banor
Procedurell generering av grottsystem för dataspel Jämförelse av procedurellt genererade osymmetriska banor Procedural generation of caves for computer games Comparison of procedurally generated nonsymmetrical
TDP005 Projekt: Objektorienterat system
. TDP005 Projekt: Objektorienterat system Kravspecifikation Författare, dylma900@student.liu.se, albve061@student.liu.se Höstterminen 2016 Version 1.1 2016-11-16 1 Revisionshistorik Ver. Revisionsbeskrivning
Föreläsning Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-20 Idag Grafer: Terminologi. Datastrukturer. Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. (Vi får
Flipped Classroom med gamification som stöd för studentaktiverande undervisningsform
Slutrapport för TUFF-projektet 2017 Flipped Classroom med gamification som stöd för studentaktiverande undervisningsform Campus Gotland Projektdeltagare: Maria Fredriksson Avd för kvalitetsteknik Inst
Föreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2012-11-13 Idag Mer om grafer: Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. Floyd-Warshall. Topologisk sortering
SCHEMA FÖR SLUTPRESENTATIONER
SCHEMA FÖR SLUTPRESENTATIONER Examensarbete med inriktning mot dataspel design - juni 2015 Nedan presenteras schemat för presentationer och opponering för kandidatarbeten med inriktning mot dataspel design.
Li#eratur och empiriska studier kap 12, Rienecker & Jørgensson kap 8-9, 11-12, Robson STEFAN HRASTINSKI STEFANHR@KTH.SE
Li#eratur och empiriska studier kap 12, Rienecker & Jørgensson kap 8-9, 11-12, Robson STEFAN HRASTINSKI STEFANHR@KTH.SE Innehåll Vad är en bra uppsats? Söka, använda och refera till litteratur Insamling
Ökat personligt engagemang En studie om coachande förhållningssätt
Lärarutbildningen Fakulteten för lärande och samhälle Individ och samhälle Uppsats 7,5 högskolepoäng Ökat personligt engagemang En studie om coachande förhållningssätt Increased personal involvement A
Eggnappers GDD. High Concept. Genre. Grafisk stil. Features
Eggnappers GDD High Concept 2-4 spelare utkämpar en kamp mot varandra som pingviner i ett fartfyllt actionspel där de ska ta så många ägg som möjligt ur varandras nästen. Spelarna ska sedan springa med
Studenters erfarenheter av våld en studie om sambandet mellan erfarenheter av våld under uppväxten och i den vuxna relationen
Studenters erfarenheter av våld en studie om sambandet mellan erfarenheter av våld under uppväxten och i den vuxna relationen Silva Bolu, Roxana Espinoza, Sandra Lindqvist Handledare Christian Kullberg
Björn Åstrand
HÖGSKOLAN I HALMSTAD Examensarbete Instruktioner Halvtidseminarium 2014 HT Björn Åstrand 2014-10-08 Björn Åstrand 2014 1 Halvtidsseminarium Vid halvtidsseminariet presenteras hittills uppnådda resultat
Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1
Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut
Kriterier för bedömning av examensarbete vid den farmaceutiska fakulteten
Kriterier för bedömning av examensarbete vid den farmaceutiska fakulteten 1 Inledning Vid den farmaceutiska fakulteten har det sedan 2005 funnits kriterier för bedömning av examensarbete (medfarm 2005/913).
Social innovation - en potentiell möjliggörare
Social innovation - en potentiell möjliggörare En studie om Piteå kommuns sociala innovationsarbete Julia Zeidlitz Sociologi, kandidat 2018 Luleå tekniska universitet Institutionen för ekonomi, teknik
Syns du, finns du? Examensarbete 15 hp kandidatnivå Medie- och kommunikationsvetenskap
Examensarbete 15 hp kandidatnivå Medie- och kommunikationsvetenskap Syns du, finns du? - En studie över användningen av SEO, PPC och sociala medier som strategiska kommunikationsverktyg i svenska företag
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2 Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok,
Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem
Översikt Stegvis förfining Pseudokod Flödesdiagram Dekomposition KISS-regeln Procedurell dekomposition DRY-regeln Algoritmer Sortering och sökning Stegvis förfining Metod för att skapa ett program från
I tabell 1 redovisas betygsfördelningen på delproven i svenska 1 respektive svenska som andraspråk 1.
Resultat från kursprov 1 våren 2017 Ylva Nettelbladt, Kristina Eriksson, Harriet Uddhammar Institutionen för nordiska språk/fums Uppsala universitet Kursprov 1 vårterminen 2017 hade temat Vad jag vill
Föreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-13 Idag Grafer: Terminologi. Datastrukturer. Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. (Vi får
Bakgrund. Frågeställning
Bakgrund Svenska kyrkan har under en längre tid förlorat fler och fler av sina medlemmar. Bara under förra året så gick 54 483 personer ur Svenska kyrkan. Samtidigt som antalet som aktivt väljer att gå
PROCEDURELL GENERERING AV NIVÅER TILL PUSSELSPEL MED EVOLUTIONÄRA ALGORITMER
Malskapada v Henrik PROCEDURELL GENERERING AV NIVÅER TILL PUSSELSPEL MED EVOLUTIONÄRA ALGORITMER Att formulera en evalueringsmetod PROCEDURAL GENERATION OF LEVELS FOR PUZZLE GAMES WITH EVOLUTIONARY ALGORITHMS
Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,
Snake Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola, 2015-05-18 Oskar Petersen, I-12 Handledare: Bertil Lindvall Abstract Denna rapport beskriver ett projekt där ett klassiskt
PROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration
Procedurella Grottor TNM084. Sammanfattning. Alexander Steen
Procedurella Grottor TNM084 Alexander Steen alest849@student.liu.se 13-01-12 Sammanfattning Denna rapport beskriver en metod för att skapa procedurella grottor. Grottorna består utav sammanlänkade rum
Sam Ansari Nv3a Tensta Gymnasium
Sam Ansari Nv3a Tensta Gymnasium 1 Innehållsförteckning Bakgrund...3 Syfte...3 Metod och Material...3 Resultat...4 Diskussion...12 Slutsats...14 Källförteckning...15 Processrapport...16 2 Bakgrund Hur
TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET
UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt
Estetisk- Filosofiska Fakulteten Svenska. Susanna Forsberg. En skola för alla. att hjälpa barn med ADHD och Aspergers syndrom. A School for Everyone
Estetisk- Filosofiska Fakulteten Svenska Susanna Forsberg En skola för alla att hjälpa barn med ADHD och Aspergers syndrom A School for Everyone helping children with ADHD and Aspergers syndrome. Examensarbete
Riktlinjer och mallar för betygskriterier inom grundutbildningen i biologi (beslutat av BIG: s styrelse den 13 juni 2007)
Riktlinjer och mallar för betygskriterier inom grundutbildningen i biologi (beslutat av BIG: s styrelse den 13 juni 2007) Rektors och fakultetens riktlinjer Rektor utfärdade i juni 2006 riktlinjer för
Förskola i Bromma- Examensarbete. Henrik Westling. Supervisor. Examiner
Förskola i Bromma- Examensarbete Henrik Westling Handledare/ Supervisor Examinator/ Examiner Ori Merom Erik Wingquist Examensarbete inom arkitektur, grundnivå 15 hp Degree Project in Architecture, First
Spelutveckling Spelbalans. Design och produktion
Spelutveckling Spelbalans Design och produktion Tre balanser Spelare spelare Rättvist multiplayer (inkluderar AI-spelare) Spelare gameplay Balansera utmaningar och stöd gentemot belöningar och straff Gameplay
Kursutvärdering Matematisk analys IV H11
Matematisk analys IV, höstterminen 20. Responses: 9 Kursutvärdering Matematisk analys IV H. Du är Kvinna 33 3 Man 67 6 2. Varför har du läst denna kurs? Intresse för ämnet 33 3 Lättare att få jobb Förkunskapskrav
Space Invaders - Slutrapport
Projekt inda14 Sida 1 av 6 Space Invaders - Slutrapport A. Projektplanen Programbeskrivning Vi tänker göra en version av det gamla arkadspelet Space Invaders i java. Spelet går ut på att spelaren styr
Nonogram
Nonogram. Vad är nonogram? Nonogram är små enkla men fascinerande pyssel som ursprungligen kommer från Japan. De har också givits ut i söndagsbilagan i engelska dagstidningar under flera år. Idén bakom
Spel som interaktiva berättelser
Spel som interaktiva berättelser Finns många typer av interaktivt berättande; ska titta närmare på spel eftersom de exemplifierar en rad aspekter av interaktivt berättande väldigt tydligt. Kan förstå spel
Föreläsning 6: Analys och tolkning från insamling till insikt
Föreläsning 6: Analys och tolkning från insamling till insikt FSR: 1, 5, 6, 7 Rogers et al. Kapitel 8 Översikt Kvalitativ och kvantitativ analys Enkel kvantitativ analys Enkel kvalitativ analys Presentera
Analys av BI-system och utveckling av BIapplikationer
Computer Science Fredrik Nilsson, Jonas Wånggren Daniel Strömberg Analys av BI-system och utveckling av BIapplikationer Opposition Report, C/D-level 2005:xx 1 Sammanfattat omdöme av examensarbetet Vi tycker
Blockkedjor. en introduktion för datavetare. Rikard Hjort, 24 maj 2019
Blockkedjor en introduktion för datavetare Vem är jag? Varför ska ni lära er om blockkedjor? Alla ska gå härifrån och kunna... förklara Bitcoin är uppbyggt bygga en egen blockkedja läsa på själva om blockkedjeprojekt
Föreläsning 8 Datastrukturer (DAT037)
Föreläsning 8 Datastrukturer (DAT037) Fredrik Lindblad 1 22 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037
SPELTESTNING FUZZY LOGIC. Kandidatuppsats i Informatik. Patrik Lundqvist Michael Enhörning VT 2010
SPELTESTNING FUZZY LOGIC Kandidatuppsats i Informatik Patrik Lundqvist Michael Enhörning VT 2010 Svensk titel: Speltestning Engelsk titel: Gametesting Utgivningsår: 2010 Författare: Patrik Lundqvist, Michael
Mobil streckkodsavläsare
Avdelningen för datavetenskap Martin Persson Jan Eriksson Mobil streckkodsavläsare Oppositionsrapport, D-nivå 2005:xx 1 Generell utvärdering av projektet Projektet gick ut på att undersöka hur bra olika
Adding active and blended learning to an introductory mechanics course
Adding active and blended learning to an introductory mechanics course Ulf Gran Chalmers, Physics Background Mechanics 1 for Engineering Physics and Engineering Mathematics (SP2/3, 7.5 hp) 200+ students
3/30/12. Föreläsning 2: Datainsamling - Observation, enkät, intervju. Stjärnmodellen. Översikt. Analys. Prototyper Krav. Design
Föreläsning 2: Datainsamling - Observation, enkät, intervju Att läsa: Kapitel 7 i Rogers et al.: Interaction design Stjärnmodellen Analys Utvärdering Implementation Prototyper Krav Design 100326 Datainsamling
Att intervjua och observera
Att intervjua och observera (Även känt som Fältstudier ) Thomas Lind Institutionen för informationsteknologi Visuell information och interaktion 2014-01-27 Påminnelser från högre ort Gruppindelning! Välj/Hitta
Projektmodell med kunskapshantering anpassad för Svenska Mässan Koncernen
Examensarbete Projektmodell med kunskapshantering anpassad för Svenska Mässan Koncernen Malin Carlström, Sandra Mårtensson 2010-05-21 Ämne: Informationslogistik Nivå: Kandidat Kurskod: 2IL00E Projektmodell
LARS. Ett e-bokningssystem för skoldatorer.
LARS Ett e-bokningssystem för skoldatorer. Därför behöver vi LARS Boka dator i förväg. Underlätta för studenter att hitta ledig dator. Rapportera datorer som är sönder. Samordna med schemaläggarnas system,
Make a speech. How to make the perfect speech. söndag 6 oktober 13
Make a speech How to make the perfect speech FOPPA FOPPA Finding FOPPA Finding Organizing FOPPA Finding Organizing Phrasing FOPPA Finding Organizing Phrasing Preparing FOPPA Finding Organizing Phrasing
JavaScript Block Editor:
Micro:bit Tärningen Att räkna med slumpen genom t.ex. tärningsslag och föra statistik över antal slag kan vara tidskrävande. Speciellt om man ska gör 100 st eller 1000 st kast. Genom att använda programmering
Första hjälpen år. Nyhetsrapportering s. 9 Enkätundersökning s. 10
Första hjälpen år 7 Innehåller regler och mallar för: Muntligt framförande s. 2 Intervju s. 3 Datorskrivna arbeten s. 4 Bokrecension s. 5 Fördjupningsarbeten s. 6 Labbrapporter s. 7 Källor s. 8 Nyhetsrapportering
Datavetenskapligt program, 180 högskolepoäng
GÖTEBORGS UNIVERSITET UTBILDNINGSPLAN IT-fakultetsstyrelsen 2013-02-14 Datavetenskapligt program, 180 högskolepoäng (Computer Science, Bachelor s Programme, 180 credits) Grundnivå/First level 1. Fastställande
Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.
Tentamen Programmeringsteknik I 2011-03-17 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift
PROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration
Kursrapport för Miljöpolitikens villkor (SK1224), VT 2018
Kursrapport för Miljöpolitikens villkor (SK1224), VT 2018 SK1224 Miljöpolitikens villkor, 15 hp Fördjupningskurs i statsvetenskap, grundnivå Kursansvarig lärare: Frida Boräng, frida.borang@pol.gu.se Medverkande
Lathund fo r rapportskrivning: LATEX-mall. F orfattare Institutionen f or teknikvetenskap och matematik
Lathund fo r rapportskrivning: LATEX-mall F orfattare forfattare@student.ltu.se Institutionen f or teknikvetenskap och matematik 31 maj 2017 1 Sammanfattning Sammanfattningen är fristående från rapporten
Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson
Minesweeper Individuellt Mjukvaruprojekt Joakim Jonsson 08 06 2013 Abstrakt Nedan följer en slutrapport för projektet inom kursen Individuellt Mjukvaru utvecklingsprojekt. Jag har under dessa 10 veckor
Resultat från det nationella provet i svenska 1 och svenska som andraspråk 1 våren 2018
Resultat från det nationella provet i svenska 1 och svenska som andraspråk 1 våren 2018 Arjann Akbari, Anni Gustafsson Institutionen för nordiska språk Uppsala universitet Det nationella provet i svenska
Utbildning: Kandidatutbildning i fri konst med inriktning mot fotografi Bachelor of Art in Photography
GÖTEBORGS UNIVERSITET Konstnärliga fakultetsnämnden Högskolan för fotografi Utbildningsplan Utbildning: Kandidatutbildning i fri konst med inriktning mot fotografi Bachelor of Art in Photography Examen:
PROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration
BESKRIVNING AV DISPLAY
Inledning 1 DREAM styrsystem TALGIL erbjuder högeffektiva och anmärkningsvärt ekonomiska lösningar för hantering av medelstora till stora bevattningssystem. Systemet utnyttjar modern teknik för hårdvara
Algoritmer, datastrukturer och komplexitet
Algoritmer, datastrukturer och komplexitet Övning 10 Anton Grensjö grensjo@csc.kth.se 9 november 2017 1 Idag En konstruktionsreduktion Fler bevis av NP-fullständighet 2 Teori Repetition Ett problem tillhör
INSTITUTIONEN FÖR MATEMATIK OCH NATURVETENSKAP. Fastställd i institutionsstyrelsen 2003-06-11 Dnr 853/333-03
INSTITUTIONEN FÖR MATEMATIK OCH NATURVETENSKAP LOKAL UTBILDNINGSPLAN MEDIEINFORMATIKPROGRAMMET 120 POÄNG MI03 Fastställd i institutionsstyrelsen 2003-06-11 Dnr 853/333-03 INNEHÅLL LOKAL UTBILDNINGSPLAN
Ekvivalensrelationer
Abstrakt datatyp för disjunkta mängder Vi skall presentera en abstrakt datatyp för att representera disjunkta mängder Kan bl.a. användas för att lösa ekvivalensproblemet avgör om två godtyckliga element
Titel: Undertitel: Författarens namn och e-postadress. Framsidans utseende kan variera mellan olika institutioner
Linköping Universitet, Campus Norrköping Inst/ Kurs Termin/år Titel: Undertitel: Författarens namn och e-postadress Framsidans utseende kan variera mellan olika institutioner Handledares namn Sammanfattning
Systemvetenskap. Spelblog. Game Jams
Systemvetenskap Spelblog Game Jams Christoffer Lundberg 2017 Game Jam Tema 48h Jobba i ett nytt team Testa andras spel Ludum Dare 34 December 2015 Helt online Kände få sedan innan Första unity spelet
Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00
1 ( 7) Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker/kompendier (ej anteckningar,
SVENSKARNA OCH IOT INTERNET OF THINGS HISS ELLER DISS FRÅN SVENSKARNA?
SVENSKARNA OCH IOT INTERNET OF THINGS HISS ELLER DISS FRÅN SVENSKARNA? INDENTIVE AB 1 SVENSKARNA OCH IOT INTERNET OF THINGS HISS ELLER DISS FRÅN SVENSKARNA? Dörrar, larm, lampor, bilar, uppvärmning och
Goals for third cycle studies according to the Higher Education Ordinance of Sweden (Sw. "Högskoleförordningen")
Goals for third cycle studies according to the Higher Education Ordinance of Sweden (Sw. "Högskoleförordningen") 1 1. Mål för doktorsexamen 1. Goals for doctoral exam Kunskap och förståelse visa brett
Focus on English 9. Teacher s Guide with Projects
Focus on English 9 Teacher s Guide with Projects Focus on English är ett nyskrivet läromedel för åk 7 9. Goda engelskkunskaper är ett av elevernas viktigaste redskap för det livslånga lärandet. I boken
Instruktion/råd för muntlig presentation
Instruktion/råd för muntlig presentation Som läkare kommer du många gånger under ditt yrkesliv att behöva hålla muntliga presentationer. Det kan vara presentation av egen forskning på konferenser, utvecklingsarbete
Spel(ar)kultur. Spelfortbildning april Matilda Ståhl Åbo Akademi
Spel(ar)kultur Spelfortbildning april 2019 Matilda Ståhl Åbo Akademi Matilda Ståhl Pedagogie magister - Spel, lärande och genus Doktorand inom pedagogiska vetenskaper - Visuell identitetskonstruktion i
Kvalitetsarbete I Landstinget i Kalmar län. 24 oktober 2007 Eva Arvidsson
Kvalitetsarbete I Landstinget i Kalmar län 24 oktober 2007 Eva Arvidsson Bakgrund Sammanhållen primärvård 2005 Nytt ekonomiskt system Olika tradition och förutsättningar Olika pågående projekt Get the
135 poäng inom programmet 2 st askultationer Håll ögon och öron öppna. Fråga, fundera
Kandidatexamen i Grafisk design & kommunikation Inför ditt examensarbete...! Information om examensarbete, 16 hp! Inför ditt examensarbete...! Gamla exjobb på liu.div-portal.org!! Redan nu: 135 poäng inom
Bedömningsmall, Examensarbete 2015-04-12 Högskoleingenjör Riktlinjer för kvalitetskriterier för bedömning av examensarbete Examensarbetet bedöms med hjälp av kriterierna: Process, Ingenjörsmässigt och
Alumnstudie: Civilingenjörsutbildningen i molekylär bioteknik och bioinformatik (X)
Alumnstudie: Civilingenjörsutbildningen i molekylär bioteknik och bioinformatik (X) Appendix C - Jämförelse: Doktorand/disputerad och övriga Enkätundersökning riktad till de med godkänt examensarbete i
Artificiell intelligens En agent som spelar Black Jack Andreas Perjons [andpe813]
1 Artificiell intelligens En agent som spelar Black Jack Andreas Perjons [andpe813] Linköpings Universitet 2019 2 Innehåll Introduktion...3 Metod..4 Programmets komponenter.4 Resultat...5 Diskussion...7
"Distributed Watchdog System"
Datavetenskap Emma Henriksson Ola Ekelund Oppositionsrapport på uppsatsen "Distributed Watchdog System" Oppositionsrapport, C-nivå 2005 1 Sammanfattande omdöme på exjobbet Projektet tycks ha varit av
Matthew Thurley Industriell bildanalys (E0005E) Response rate = 65 %
Matthew Thurley Industriell bildanalys (E000E) Response rate = % Survey Results Legend Relative Frequencies of answers Std. Dev. Mean Question text Left pole % % Right pole n=no. of responses av.=mean
HexaFlip. Kravspecifikation
HexaFlip Kravspecifikation Dokumentversion 1.0 Martin Larsson marla316@student.liu.se Carl Lindwall carli914@student.liu.se Senast modifierad 2009 02 17 Sammanfattning Detta dokument skall ligga som grund
PROCEDURELLT GENERERADE DUNGEONS MED BSP OCH SHORTEST PATH
Malskapada v Henrik PROCEDURELLT GENERERADE DUNGEONS MED BSP OCH SHORTEST PATH En Teknisk Utvärdering PROCEDURALLY GENERATED DUNGEONS USING BSP AND SHORTEST PATH A Technical Evaluation Examensarbete inom
Föreläsning 2: Datainsamling - Observation, enkät, intervju. Att läsa: Kapitel 7 i Rogers et al.: Interaction design
Föreläsning 2: Datainsamling - Observation, enkät, intervju Att läsa: Kapitel 7 i Rogers et al.: Interaction design Stjärnmodellen Analys Utvärdering Implementation Prototyper Krav Design 100326 Datainsamling