keskiviikko 16. toukokuuta 2012
"Lomalla"
Viime viikolla pääsin vihdoinkin takaisin pelin pariin parin viikon tauon jälkeen. Heti ensimmäisenä mielessä oli paljon puhuttu yksikköjen hyökkäys mutta päädyin kumminkin tekemään ensimmäisenä päivänä jotain ihan muuta. Ensimmäiseksi jaoin source-tiedostot järkeviin paketteihin (ne ovat tähän asti olleet kaikki samassa paketissa) ja muutin koodin rakennetta paljon muutenkin. Lisäsin myös asynkronisen lataamisen (eli tiedostojen lataamisen taustalla). Peli näyttää nyt latausruudun peliä aloitattessa ja lataa tiedostot taustalla ja peliruutu näytetään vasta kun lataus on valmis.
Seuraavana päivänä pääsin lopulta pääasian kimppuun eli hyökkäyksen implementointiin. Päätin tehdä hyökkäämisen niin että sekä hyökkäävä että "puollustava" yksikkö lähetetään apuluokalle joka laskee oikean määrän vahinkoa ja lisää mahdolliset maastobonukset ja palauttaa tehdyn vahingon. Pelissä hyökkäys suoritetaan ensin liikkumalla vihollisyksikön viereen, valitsemalla yksikkö uudestaan ja tällöin mahdollisiin hyökkäyksen kohteisiin piirtyy päälle punainen neliö. Lasketut vahingot vähennetään yksikköjen healthista ja jos yksikön health tippuu nollaan tai sen alle, se poistetaan pelistä. Poistin alussa vahingossa yksiköen spriteen liittyvät tiedot joka osoittautui virheeksi, kaikki pelin samaa tyyppiä olevat yksiköt kun käyttävät periaatteessa vain samaa spriteä jonka väri on koodillisesti vaihdettu. Tämän pienen ajatteluvirheen korjauksen jälkeen hyökkäys toimi vallan loistavasti. Tässä yhteydessä lisäsin ominaisuuden joka tummentaa yksikköjen spriteä hieman kun yksikkö on tehny kaiken mahdollisen vuorollaan (liikkunut maksiminsa sekä hyökännyt)
Aloitin tekemään myös peliin tallennus/lataus ominaisuutta. Ajoin ensin kirjoittaa kaiken pelin datan (valittu kartta, pelaajien ja yksikköjen tiedot jne.) XML tiedostoon ja tallentaa sen mutta mietin että helpompaa saattaa olla tehdä vain serialisoitava tallennusluokka johon asetataan kaikki tarvittavat tiedot. Ainoana huolena on serialisoidun tiedoston koko, pitää kokeilla ja sen jälkeen päättää aijonko sitä käyttää. Hankin myös ilmaisen palvelimen mahdollista multiplayer-ominaisuutta varten. Multiplayer pitäisi saada aikaiseksi aika aikaisessa vaiheessa nimittäin se helpottaisi testausta, yksin pelaaminen ilman tekoälyä kun on hieman tylsää.
Tällä viikolla ei tule mitään uusia päivityksiä sillä olen vierailulla vanhempieni luona ja en saa täällä koodaukseen keskityttyä kunnolla. Pelin pariin palaan siis ensi viikolla jonka jälkeen ja uutta blogipostausta nähdään siitä seuraavan viikon maanantaina. Ensi viikolla olisi tarkoitus tehdä aloitettu tallennus/lataus ominaisuus loppuun. Yritän myös lisätä "crash dump" ominaisuuden. Peli kaatuilee välillä oudosti ja olisi mukava tietää mistä kaatuminen loppuu. Yritän saada kaatumisen syyn talteen tekstitiedostoon ennen kaatumista, mutten ole vielä täysin varma miten sen aion tehdä.
Viime viikon muutokset:
- Hyökkäys lisätty
- Koodin rakennetta muokattu
- Asynkroninen lataus lisätty
- Tallennus/Lataus toimintoa aloitettu
Ensi viikolla tulevat muutokset:
- Tallennus/Lataus
- Crash dump
Tilaa:
Lähetä kommentteja (Atom)
Ei kommentteja:
Lähetä kommentti