Game Development Week 3

Förra veckan jobbade jag mycket med kodning i bakgrunden till spelet. Jag jobbade med ScreenManager, HoverCraftTurret, InputManager, LightManager, PlayerShip, de olika menyerna som main menu, pause menu och spelfönstret och jag gjorde en soundmanager.

ScreenManager gick bra att skriva, jag kollade upp en tutorial på github som gick igenom bra hur man gjorde. Det tog ungefär en timme att bli klar med. Sedan gjorde jag även de olika fönsterna som man ser när man startar spelet och när man spelar. Det var från samma tutorial så det tog lika lång tid och lika smärtfritt. När jag var klar med screenmanager och de olika screensen så började jag att arbeta på ljusmotorn, jag kollade runt på internet efter ett bra alternativ av olika ljusmotorer och hittade en som hette Let There Be Light. Jag laddade ner koden för att se om jag skulle kunna skriva den själv men insåg fort att det skulle ta lika lång tid att skriva en ljusmotor som det skulle ta att skriva hela spelet, om inte längre. Jag började försöka implementera denna motor i spelet men märkte att det var ganska krångligt eftersom man behövde ladda ner extra bibliotek till c++ för att det skulle funka. Men jag läste forumtråden och såg att skaparen hade släppt en version 2 som fanns att ladda ner gratis, så jag gjorde det och märkte att denna var lättare att använda och man behövde bara använda SFML och inte glew som behövdes för LTBL 1. Trots att det var lättare att förstå så har jag fortfarande inte fått det att funka än, men jag kämpar för att få det implementerat i spelet.

Jag har också jobbat en del med PlayerShip tillsammans med Alfons som hade uppgiften från början men han behövde lite hjälp med matematiken på hur skeppet ska svänga, så jag hjälpte honom med den uppgiften och det gick bra. Problemet var pga. att man svänger med wasd och skeppet vänder sig mot riktningen man trycker och samtidigt får fart åt det hållet. När t.ex. skeppet pekar åt 90° vilket är knappen D och man vill åka 270° alltså till vänster, vilket är knappen A, så måste man skriva if(playership.getRotation() < 270 && playership.getRotation() >= 90) så ska skeppet rotera 1.8° per frame i klockans riktning. Detta måste man göra för alla riktningar så att man kan vända åt alla håll från alla håll utan att skeppet snurrar åt fel håll. Men matematiken löste sig ganska snabbt när jag hjälpt till och skeppet åkte mycket fint över skärmen.

Det sista jag jobbade med förra veckan var en soundmanager. Den gick väldigt bra utan några fel. Det behövdes inte många rader kod för att det skulle funka. Koden laddar in en plats från datorn i string form och gör en buffer som sedan görs till ett sound som returnas tillbaka till klassen som använder ljudet.49bf3dcc5b66552e3cf0761e189737fe

One thought on “Game Development Week 3

  1. Hej!
    Texten är väldigt informativ och det är är lätt att förstå vad du har gjort under veckan. Det är även tydligt att förstå hur du sedan har implementerat det i koden. Eftersom jag själv också programmerar så förstår jag precis hur ni gått tillväga för att lösa problemet angående er PlayerShips rörelse.Det kan dock vara svårt för en person som inte är insatt i programmering att förstå hur ni gjort.

    Jag tycker du har beskrivit hur du har jobbat med eran LightManager väldigt bra. Det är även väldigt bra att se exakt vilka problem som du stött på under arbetet med LightManagern. Det hade dock varit intressant om du beskrivit mekaniken bakom eran LightManager, så att det blir lättare att förstå varför ni har en och vad exakt den skall göra. Just nu förstår jag att du stött på problem med själva implementeringen av den i ert program. Det låter även som att den har en viktig funktion i ert spel. Men jag har ingen aning om så är fallet.

    Texten överlag har en bra struktur där du går igenom en sak i taget. Det är även bra att du nämner de olika sidor och källor som du använt för att lösa dina uppgifter.

    MVH // Tim Rojo

    Like

Leave a comment