Tällä viikoll alkoi jälleen koulu joten loogisesti kesälomakin otti ja loppui. Päivitysten puuttuminen parilta viimeiseltä viikolta johtui allekirjoittaneen sairastumisesta jonka takia ei tullut tehtyä hommia pelin kanssa laisinkaan. Samalla unohtui myös blogin kirjoittaminen, mutteipa sisältöä olisi sen puoleen ollutkaan.
Ensi viikolla potkaisen homman käyntiin taas kunnolla tekoälyn edistämisen merkeissä. Hyökkäysmekaniikat ja logiikat ovat vielä tekemättä mutta niille on tehty jo jonkinlainen pohja jolle on hyvä lähteä rakentamaan. Viikolla päästiin jälleen testaamaan moninpeliä joka korjausten jälkeen toimi, mutta samalla löytyi uusi bugi ladatuista peleistä joka esti yksiköiden valitsemisen kun ne olivat tuotantorakennusten päällä mutta korjasin kyseisen bugin tänään Samalla löytyi myös bugi ladatusta yksinpelistä tekoälyn kanssa. Tekoäly kaatuu ensimäisen vuoronsa jälkeen mutta tiedän mistä kyseinen ongelma johtuu ja se onkin korjattavana heti ensimmäisenä ensiviikolla.
Ensi viikon muutokset:
- Bugikorjauksia
- Tekoälyn hyökkäys logiikat
perjantai 7. syyskuuta 2012
perjantai 10. elokuuta 2012
Kerrankin ajoissa
Kerrankin kerkiän ja muistan kirjoitella blogipostauksen
silloin kun olen suunnittelut sen kirjoittavani. Tällä viikolla ei ole
hirveästi raportoinnin aihetta tiistaina tekemäni postauksen takia. Peli on
vielä sisäisessä testissä, kun testaajani ei ole kerinnyt peliä kanssani vielä
testata, katsotaan jos saadaan aikaiseksi viikonlopun aikana. Viime päivityksen
jälkeen peliin on lisätty tekoälylle liikkumiskontrollit sekä rakennusten
valloituskontrollit sekä valloituslogiikat. Valloituksen mekaniikka ja logiikka
vaatii vielä hieman viilaamista ja bugikorjailua, mutta toiminnallisuus on
paikallaan.
Seuraavalla viikolla jatketaan tekoälyn eteenpäin viemistä
valloituslogiikan bugien korjaamisen merkeissä sekä aloitetaan työskentely yksikköjen
hyökkäämiskontrollien ja hyökkäyslogiikan parissa. Tavoitteena olisi myös saada
testausvaihe kunnolla käyntiin ja peli saataville kaikille halukkaille
testaajille.
Tämän viikon muutokset:
- Lisätty liikkumiskontrollit tekoälylle
- Lisätty valloituskontrollti tekoälylle
- Lisätty valloituslogiikka tekoälylle
Ensi viikon muutokset:
- Tekoälyn hyökkäyskontrollit
- Tekoälyn hyökkäyslogiikka
- Testausvaihe kunnolla käyntiin
tiistai 7. elokuuta 2012
Testaamisen tärkeys
Lykkäsin tätä postausta tarkoituksella koska Droidwars oli/on todella lähellä testausvaiheen alkua ja sen oli tarkoitus alkaa jo tänään. Eilen kumminkin kysyin kaveria testamaan peliä varmuuden vuoksi ennen isomman skaalan testausta. Tämä huomattiinkin todella tarpeelliseksi testiksi, moninpelissä kun peli kaatui tallennuksen lataamisen jälkeen. Kaatumislogit saatiin puhelimesta talteen ja tänään paikallistin ja (toivottavasti) korjasin ongelman. Tänään testaillaan kaverin kanssa vielä uudemman kerran ja jos peli suostuu toimimaan, saadaan isompi testaus käyntiin.
Viime viikolla tein suunnitelmien mukaisesti bugikorjauksia ja aloitin myös hieman tekoälypuolta. Tekoälypuolelle sain tehtyä tekoälyn kontrollit yksikköjen tekemiseen tuotantorakennuksista. Itse logiikkaa mikä yksikkö pitäisi tehdä ei ole vielä olemassa mutta se kuuluukin myöhempään vaiheeseen.
Tällä viikolla on tarkoitus tehdä lisää tekoälyn peruskontrolleja liikkumisen, valloituksen ja taistelun osalta. Näitä tehdessä tulee myös tehtyä myös tekoälyn prioriteettisysteemiä.
Viime viikon muutokset:
- Bugikorjauksia
- Tekoälyn tuotantokontrollit
Tämän viikon muutokset:
- Tekoälyn liikkumiskontrollit
- Tekoälyn valloituskontrollit
Viime viikolla tein suunnitelmien mukaisesti bugikorjauksia ja aloitin myös hieman tekoälypuolta. Tekoälypuolelle sain tehtyä tekoälyn kontrollit yksikköjen tekemiseen tuotantorakennuksista. Itse logiikkaa mikä yksikkö pitäisi tehdä ei ole vielä olemassa mutta se kuuluukin myöhempään vaiheeseen.
Tällä viikolla on tarkoitus tehdä lisää tekoälyn peruskontrolleja liikkumisen, valloituksen ja taistelun osalta. Näitä tehdessä tulee myös tehtyä myös tekoälyn prioriteettisysteemiä.
Viime viikon muutokset:
- Bugikorjauksia
- Tekoälyn tuotantokontrollit
Tämän viikon muutokset:
- Tekoälyn liikkumiskontrollit
- Tekoälyn valloituskontrollit
maanantai 30. heinäkuuta 2012
Puolivälissä
Kesäloma on kohta jo puolivälissä joten aika onkin kohta alaa tekemään Droidwarsiin tekoälyä. Tällä viikolla teen vielä huomenna bugikorjauksia ja katselen että peli on testauskunnossa. Kuun vaihtuessa aloitankin sitten tekoälyn ohjelmoimisen ja sitä on se n. kuukausi aikaa tehdä kesäloman puitteissa. Viime viikon päivitys venähti nyt maanantaille viikonloppuna olleitten sukujuhlien takia mutta parempi nyt kun ei milloinkaan.
Viime viikolla korjailin pari aikasemmin löytynyttä bugia sekä lisäsin sekä tehtaan että lentokentän valikoihin yksiköiden tietojen ja kuvauksen näyttämisen. Siivoilin myös koodista pois kaikki turhat kommentit sekä käyttämättömät koodinpätkät.
Viime viikon muutokset:
- Bugikorjauksia
- Yksiköiden tietojen näyttäminen valikoissa
Tällä viikolla tulevat muutokset:
- Bugikorjauksia
- Testausvaiheen aloitus
- Tekoälyn ohjelmoinnin aloitus
Viime viikolla korjailin pari aikasemmin löytynyttä bugia sekä lisäsin sekä tehtaan että lentokentän valikoihin yksiköiden tietojen ja kuvauksen näyttämisen. Siivoilin myös koodista pois kaikki turhat kommentit sekä käyttämättömät koodinpätkät.
Viime viikon muutokset:
- Bugikorjauksia
- Yksiköiden tietojen näyttäminen valikoissa
Tällä viikolla tulevat muutokset:
- Bugikorjauksia
- Testausvaiheen aloitus
- Tekoälyn ohjelmoinnin aloitus
maanantai 23. heinäkuuta 2012
2 Viikkoa, 1 Päivitys
Ensinnäkin: Perhana, on jäänyt jo kahtena perjantaina blogi kirjoittamatta joten nyt taas vähän myöhässä palataan ruotuun.
Viimeisen kahden viikon aikana peli on mennyt hyvin mukavaa vauhtia eteenpäin ja aikasemmin asetettuun tavoitteeseen pääseminen näyttää hyvin todennäköiseltä. Kyseinen tavoite oli siis että pelin mekaniikat olisivat valmiina tämän kuun aikana jotta ensi kuussa voi keskittyä tekoälyn tekemiseen.´
Sain lisättyä peliin kaikki yksiköt ja yksikköjä tuli 13 kappaletta. Näistä 9 on maassa kulkevia (2 jalkaväkiyksikköä, 7 ajoneuvoa) ja 4 ilmayksiköitä (2 helikopteria, 2 lentokonetta). Yksiköt liikkuminen riippuu maastosta (esimerkiksi ajoneuvot eivät voi kiivetä vuorille, mutta jalkaväki pystyy), tosin tähän on poikkeuksena lentävät yksiköt sillä ne eivät välitä maastosta laisinkaan. Yksiköille on tehty myös hyökkämisrutiinit ja yksikön tekemä vahinko perustuu niin maastoon, yksikön HP:hen kuin hyökättävän yksikön tyyppiin. Uusimpana lisäyksenä on jalkaväkiyksiköiden lastaaminen kuljetusajoneuvoihin.
Paransin myös pelin visuaalista puolta. Graafikolta en ole vielä uusia spritejä saanut mutta tein huomattavasti helppokäyttöisemmät ja paremman näköiset valikot pelin sisälle sekä liikuttelin GUI:n elementtejä järkevimpiin paikkoihin. Paransin myös yksiköiden liikkumisalueen näyttämisen hoitavaa koodia sekä lisäsin yksiköiden hyökkäysalueen näyttämisen.
Hoksasin myös viime viikolla että lisäsin kyllä peliin ilmayksiköt mutta itse pelissä ei ole laisinkaan lentokenttiä. Koodipuolella näiden lisääminen oli helppoa mutta lentokentät pitäisi vielä lisätä tilesettiin ja tehdä uusia karttoja joissa ilmayksiköitä käytetään.
Tällä viikolla tarkoitus on lähinnä karsia pelistä löytyviä bugeja ja viimeistellä sitä tekoälyn ohjelmointia sekä testausvaihetta varten.
Viime viikoilla tulleet muutokset:
- Lisätty yksiköt
- Lisätty yksiköiden hyökkääminen
- Lisätty jalkaväkiyksiköiden lastaaminen kuljetusajoneuvoihin
- Parannettu yksiköiden liikkumisalueen näyttämistä
- Parannettu yksiköiden hyökkäysalueen näyttämistä
- Paranettu pelin valikoita
Tällä viikolla tulevat muutokset:
- Bugikorjauksia
Viimeisen kahden viikon aikana peli on mennyt hyvin mukavaa vauhtia eteenpäin ja aikasemmin asetettuun tavoitteeseen pääseminen näyttää hyvin todennäköiseltä. Kyseinen tavoite oli siis että pelin mekaniikat olisivat valmiina tämän kuun aikana jotta ensi kuussa voi keskittyä tekoälyn tekemiseen.´
Sain lisättyä peliin kaikki yksiköt ja yksikköjä tuli 13 kappaletta. Näistä 9 on maassa kulkevia (2 jalkaväkiyksikköä, 7 ajoneuvoa) ja 4 ilmayksiköitä (2 helikopteria, 2 lentokonetta). Yksiköt liikkuminen riippuu maastosta (esimerkiksi ajoneuvot eivät voi kiivetä vuorille, mutta jalkaväki pystyy), tosin tähän on poikkeuksena lentävät yksiköt sillä ne eivät välitä maastosta laisinkaan. Yksiköille on tehty myös hyökkämisrutiinit ja yksikön tekemä vahinko perustuu niin maastoon, yksikön HP:hen kuin hyökättävän yksikön tyyppiin. Uusimpana lisäyksenä on jalkaväkiyksiköiden lastaaminen kuljetusajoneuvoihin.
Paransin myös pelin visuaalista puolta. Graafikolta en ole vielä uusia spritejä saanut mutta tein huomattavasti helppokäyttöisemmät ja paremman näköiset valikot pelin sisälle sekä liikuttelin GUI:n elementtejä järkevimpiin paikkoihin. Paransin myös yksiköiden liikkumisalueen näyttämisen hoitavaa koodia sekä lisäsin yksiköiden hyökkäysalueen näyttämisen.
Hoksasin myös viime viikolla että lisäsin kyllä peliin ilmayksiköt mutta itse pelissä ei ole laisinkaan lentokenttiä. Koodipuolella näiden lisääminen oli helppoa mutta lentokentät pitäisi vielä lisätä tilesettiin ja tehdä uusia karttoja joissa ilmayksiköitä käytetään.
Tällä viikolla tarkoitus on lähinnä karsia pelistä löytyviä bugeja ja viimeistellä sitä tekoälyn ohjelmointia sekä testausvaihetta varten.
Viime viikoilla tulleet muutokset:
- Lisätty yksiköt
- Lisätty yksiköiden hyökkääminen
- Lisätty jalkaväkiyksiköiden lastaaminen kuljetusajoneuvoihin
- Parannettu yksiköiden liikkumisalueen näyttämistä
- Parannettu yksiköiden hyökkäysalueen näyttämistä
- Paranettu pelin valikoita
Tällä viikolla tulevat muutokset:
- Bugikorjauksia
maanantai 9. heinäkuuta 2012
Hei hei heinäkuu
Pitkähkön tauon jälkeen taas blogin parissa. Kesäkuu tuli ja meni kouluhommia tehdessä/viimeistellessä. Nyt heinäkuussa pääsin palaamaan peliprojektin pariin ja viime viikko menikin jo sen merkeissä. Koko kesä tuleekin olemaan peliprojektin parissa työskentelyä koska sain haettua opintotuen kesälle opinnäytetyöllä.
Valitsin viikottaiseksi rytmikseni 4 päivää ohjelmointia, 1 päivä opparin kirjoittamista ja tämä tuntuu ensimmäisen viikon jälkeen hyvältä tahdilta. Kirjoituspäivänä tulee yleensä olemaan perjantai joten viikottaiset blogipäivityksetkin siirtyvät perjantaille.
Viime viikolla sain tehtyä peliin netin yli toimivan moninpelin. Moninpeli perustuu yhden tallennustiedoston lähettelemiseen edestaikaisin kahden pelaajan välillä. Eli pelaaja A ensin luo pelin palvelimelle, ja pelaaja B liittyy siihen. Tämän jälkeen pelaaja A voi tehdä siirtonsa ja lähettää talennuksen palvelimelle. Pelaaja B lataa tallenustiedoston palvelimelta, avaa sen, tekee omat liikkeensä ja lähettää tallennustiedoston taas palvelimelle.
Kyseinen ominaisuus syntyi kohtuullisen helposti sillä olin tehnyt samanlaisen toimivuuden jo aikasempaan kouluprojektiin. Toiminta ei ole vielä aivan täydellistä mutta on kumminkin jo sillä asteella että sitä voi testauksessa käyttää.
Tällä viikolla tämä päivä meni vielä moninpelisysteemin vikoja korjatessa mutta huomenna olisi tarkoitus alkaa lisäämään peliin uusia yksiköitä jotta peli saataisiin sopivaan kuntoon suljettua testausta varten. Loppuviikosta saatan lisätä muitakin ominaisuuksia, mutten vielä tiedä tarkalleen mitä. Keskiviikkona menee osa ajasta matkustamiseen kotiin Pirkkalaan jossa ollaankin loppukuu, mutta projektin työstäminen jatkuu sielläkin.
Tällä viikolla tulevat muutokset:
- Uusia yksiköitä
Valitsin viikottaiseksi rytmikseni 4 päivää ohjelmointia, 1 päivä opparin kirjoittamista ja tämä tuntuu ensimmäisen viikon jälkeen hyvältä tahdilta. Kirjoituspäivänä tulee yleensä olemaan perjantai joten viikottaiset blogipäivityksetkin siirtyvät perjantaille.
Viime viikolla sain tehtyä peliin netin yli toimivan moninpelin. Moninpeli perustuu yhden tallennustiedoston lähettelemiseen edestaikaisin kahden pelaajan välillä. Eli pelaaja A ensin luo pelin palvelimelle, ja pelaaja B liittyy siihen. Tämän jälkeen pelaaja A voi tehdä siirtonsa ja lähettää talennuksen palvelimelle. Pelaaja B lataa tallenustiedoston palvelimelta, avaa sen, tekee omat liikkeensä ja lähettää tallennustiedoston taas palvelimelle.
Kyseinen ominaisuus syntyi kohtuullisen helposti sillä olin tehnyt samanlaisen toimivuuden jo aikasempaan kouluprojektiin. Toiminta ei ole vielä aivan täydellistä mutta on kumminkin jo sillä asteella että sitä voi testauksessa käyttää.
Tällä viikolla tämä päivä meni vielä moninpelisysteemin vikoja korjatessa mutta huomenna olisi tarkoitus alkaa lisäämään peliin uusia yksiköitä jotta peli saataisiin sopivaan kuntoon suljettua testausta varten. Loppuviikosta saatan lisätä muitakin ominaisuuksia, mutten vielä tiedä tarkalleen mitä. Keskiviikkona menee osa ajasta matkustamiseen kotiin Pirkkalaan jossa ollaankin loppukuu, mutta projektin työstäminen jatkuu sielläkin.
Tällä viikolla tulevat muutokset:
- Uusia yksiköitä
maanantai 4. kesäkuuta 2012
Kesäkuu
Sitä ollaan päästy jo kesäkuun puolelle ja kesälomillekkin pitäisi lähteä kuukauden sisään. DroidWarsin teko tosin tulee ainakin näillä näkymillä jatkumaan kesälläkin, jollen töitä löydä.
Viimeviikolla sain tehtyä uudet rakennukset peliin ja sain toimimaan niiden valoittamisenkin. Uuden tilesetin teon ja lataamisen kanssa tuli väännettyä miltein tunti, kunnes huomasin että uudelleen asennettu Tiled käytti väärää pakkausmuotoa. Tämän pienen evotuksen uusien rakennusten lisäys menikin helposti. Muutin samalla mapin tietojen muodon ymmärrettävämmäksi. Rakennusten valloitus meni helpohkosti, ei tarvinnut kuin vaihtaa mapista rakennuksen neliön ID rakennuksen vallatuksi versioksi. Talojen valloitus hoituu yksiköiden HP:eiden mukaan, eli yksikkö jolla on 100 HP.ta valloittaa rakennuksen kahdessa vuorossa.
Eniten työtä tällä viikolla aiheutti uniteille lisäämäni action-menu. Menu näytetään joka kerta kun yksikkö on liikkunut ja siitä voidaan valita halutaako yksikön odottavan, hyökkäävän, valloittavan vai peruuttavan liikkumisensa. Valloitus on tosin mahdollista vain jalkaväkiyksiköillä. Isoin ongelma oli saada kyseinen menu näkymään ylipäätään mutta pitkän pähkäilyn jälkeen hoksasin ettei scenellä voi olla kuin yksi child-scene ja tässä paikalla oli tehtaan käyttämä factorymenu. Päädyin tekemään menujen vuorotteluun systeemin joka kiinnittää menun pelisceneen tarvittaessa ja irroittaa sen kun menu suljetaan.
Tällä viikolla pelin tekoon ei ole valitettavasti aikaa koska muiden kouluprojektien viimeistely vie aikaa ja viikonloppuna on luokan LAN:it. Seurasta viikostakaan en osaa sanoa, sillä muutkin projektit saattavat vaatia aikaa joten jätän sen vielä auki.
Viime viikon muutokset:
Viimeviikolla sain tehtyä uudet rakennukset peliin ja sain toimimaan niiden valoittamisenkin. Uuden tilesetin teon ja lataamisen kanssa tuli väännettyä miltein tunti, kunnes huomasin että uudelleen asennettu Tiled käytti väärää pakkausmuotoa. Tämän pienen evotuksen uusien rakennusten lisäys menikin helposti. Muutin samalla mapin tietojen muodon ymmärrettävämmäksi. Rakennusten valloitus meni helpohkosti, ei tarvinnut kuin vaihtaa mapista rakennuksen neliön ID rakennuksen vallatuksi versioksi. Talojen valloitus hoituu yksiköiden HP:eiden mukaan, eli yksikkö jolla on 100 HP.ta valloittaa rakennuksen kahdessa vuorossa.
Eniten työtä tällä viikolla aiheutti uniteille lisäämäni action-menu. Menu näytetään joka kerta kun yksikkö on liikkunut ja siitä voidaan valita halutaako yksikön odottavan, hyökkäävän, valloittavan vai peruuttavan liikkumisensa. Valloitus on tosin mahdollista vain jalkaväkiyksiköillä. Isoin ongelma oli saada kyseinen menu näkymään ylipäätään mutta pitkän pähkäilyn jälkeen hoksasin ettei scenellä voi olla kuin yksi child-scene ja tässä paikalla oli tehtaan käyttämä factorymenu. Päädyin tekemään menujen vuorotteluun systeemin joka kiinnittää menun pelisceneen tarvittaessa ja irroittaa sen kun menu suljetaan.
Tällä viikolla pelin tekoon ei ole valitettavasti aikaa koska muiden kouluprojektien viimeistely vie aikaa ja viikonloppuna on luokan LAN:it. Seurasta viikostakaan en osaa sanoa, sillä muutkin projektit saattavat vaatia aikaa joten jätän sen vielä auki.
Viime viikon muutokset:
- Lisää rakennuksia
- Rakennuksien valloitus
- Actionmenun lisäys
- Actionmenun lisäys
maanantai 28. toukokuuta 2012
Back in action
Lomilta tuli palailtua toissaviikon sunnuntaina ja viime viikolla pääsin taas pelin kimppuun. Kuten viime viikolla sanoin tarkoituksena olisi lisätä crashdump eli peli kirjoittaa kaatuessaan kaatumisen aiheuttaneen virheen tiedot tekstitiedostoon joten voin analysoida kaatumisien syytä jälkikäteen. Tähän mennessä ainut tapa päästä käsiksi kaatumisen syyhyn oli silloin kun puhelin oli kiinni tietokoneessa. Toinen edellisessä postauksessa ollut ominaisuus oli save/load mahdollisuus. Tämän implementointi meni suhteellisen helposti. Tein SaveLoadManagerin joka hallitsee kyseistä tapahtumaa. Tietojen tallennusta varten loin serialisoitavan (luokka joka on mahdollista kirjoittaa binääritiedostoksi) SaveData luokan joka sisältää tiedot kentästä, yksiköistä, pelaajista ja rakennuksista. Tiedot vain vedetään itse pelistä suoraan luokkaan joka serialisoidaan ja tallennetaan puhelimen muistiin. Itse tiedoston kooksi ei testikartalla ja neljällä yksiköllä tullut kuin 1kilobitti. Ainoa mikä aiheutti tallennuksessa/lataamisessa pientä säätöä, olivat AndEnginen muuttujat joita ei voinut serialisoida. Yksikköjen käytössä oli spriteihin liittyvät TextureAtlakset ja TextureRegionit, mutta näitä ei olisi serialisoitu kumminkaan koska niiden tallentamiseen ei ole tarvetta sillä ne rakennetaan joka tapauksessa uudestaan aina pelin käynnistyessä. AndEnginen puolelta tuli myös TMXTile joka merkkaa kartalla sijaitsevaa neliötä. Yksiköt sekä rakennukset luottavat paikanhaussaan kyseisiin tileihin joten niiden serialisointi oli tarvittavaa. Kiersin itse tilen serialisoinnin kirjoittamalla sen koordinaatit serialisoitaviin muuttujiin ja latauksen yhteydessä haen kyseisen tilen uudestaan koordinaattien perusteella.
Jo mainittujen kahden muun toimenpiteen lisäksi poistin kuvankaappaus-ominaisuuden sillä hoksasin että oma puhelimeni tukee kuvankaappausta ihan sellaisenaan. HUD:ista poistetun kuvankaappausnapin tilalle laitoin tallentamisnapin. Peliin lisäsin myös luokan joka sisältää kaikki pelin vakiomuuttujat (esimerkiksi tallennusten kansion jne.) sekä luokan Androidin "Toast" viestin näyttämistä varten.
Tällä viikolla on tarkoitus lisätä peliin loput rakennukset (kaupungit sekä päämaja) ja sotilaille toiminnallisuus niiden valloittamiseen. Jos rakennusten ja valloittamisen lisääminen sujuu nopeasti, saatan aloittaa moninpeli-ominaisuuden tekemistä niin client kuin server puolellekin.
Viime viikon muutokset:
- Talennus/Lataus lisätty
- Crashdump
- Vakiot-luokka
- Poistettu kuvankaappaus
Ensi viikolla tulevat muutokset:
- Lisää rakennuksia
- Rakennuksien valloitus
- Mahdollinen moninpelin aloitus
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
maanantai 7. toukokuuta 2012
Kiirettä
Enpä kerinnyt sitten viimeviikollakaan peliin koskea. Tälläkertaa syynä olivat vappu ja saman projektin edistäminen, yksi ryhmän jäsenistä kun lähtee matkoille tälläviikolla joten yritimme saada softan mahdollisimman valmiiksi. Tällä viikolla kumminkin peliä tulen tekemään eteenpäin, heti tämän blogipostauksen jälkeen jos tarkemmin sanotaan. Yksikköjen hyökkäämisen lisäksi tarkoitus olisi järjestellä kooditiedostoja loogisempiin paketteihin, nykyään kun ne ovat kaikki saman paketin sisällä.
Tällä viikolla tulevat muutokset:
- Yksikköjen hyökkäys
Tällä viikolla tulevat muutokset:
- Yksikköjen hyökkäys
tiistai 1. toukokuuta 2012
Myöhässä
Viimeviikolla ehdin hädintuskin ajoissa postata viikon blogipäivityksen, mutta tällä viikolla se kumminkin meni unohtumaan kokonaan, pistetään vapun piikkiin. Viime viikolla en kerinnyt DroidWarsille tehdä yhtään mitään, kun työstimme toista kouluprojektia urakalla eteenpäin. Tällä viikolla olisi kumminkin tarkoitus päästä takaisin pelin kehittämiseen ja seuraavana ominaisuutena on jo viime viikolla mainittu hyökkääminen
Tällä viikolla tulevat muutokset:
- Yksikköjen hyökkäys
Tällä viikolla tulevat muutokset:
- Yksikköjen hyökkäys
maanantai 23. huhtikuuta 2012
Juuri ajoissa
Meinasin tämän päivän blogipostaus mitlein unohtua, päivällä sitä kun en kerinnyt kirjoittamaan. Muistin kumminkin viimetingassa joten kirjoitetaan tämä vielä tämän päivän puolella.
Viime viikolla palailtiin taas pelimekaniikan ohjelmointiin pari viikkoa kestäneen kamerasäädön jälkeen. Lisäsin peliin kaksi uutta yksikkötyyppiä, jotka olivat jalkaväki ja lentävät yksiköt. Lentävät yksiköt termi kuulostaa omaan korvaan hieman hassulta, muttei niitä lentokoneiksikaan voi sanoa sillä lentäviin yksiköihin kuuluu niin lentokoneita kun helikoptereitakin. Lisätylle kuljetushelikopterille oli valmis spritekin joka tosin vaatii vielä hieman säätämistä. Peliin lisäsin myös perus kiväärimiehen jolle ei ole vielä omaa spriteä laisinkaan joten jouduin sille iskemään placeholderin. Näille yksiköille lisättiin myös omat liikkumisrutiininsa jotka lähinnä olivat vain muutoksia pathfindingiin. Lentävät yksiköt liikkuvat kaikissa eri maastoissa ilman muutoksia, jalkaväki taas voi kyllä kiivetä vuorelle mutta se kuluttaa kaiken liikkumisen.
Uusia yksikköjä lisäillessäni rupesin samalla miettimään yksikköjen lataukseen käytettyä koodin pätkää. Se kyllä toimi mutta oli hieman sekava. Optimoin koodia hieman ja samalla tein sen sellaiseksi että se osaa ladata usean yksikön kerralla. Tämä tulee varmasti tarpeen peliin tulevan tallennusmekanismin myötä.
Minulla on ollut mietinnässä pari viikkoa jo mahdollisen nettimoninpelin lisääminen peliin. Tämä tapahtuisi palvelimen kautta mahdollisesti XML tiedostoa eestaas siirtelemällä. Ensimmäinen pelaaja tekee siirtonsa, pelin tilanne tallenetaan XML tiedostoon, peli siirtää XML tiedoston palvelimelle josta toinen pelaaja ottaa sen, lataa tilanteen XML tiedostosta, tekee omat siirotonsa ja lähettää sen takaisin palvelimelle. Tämä auttaisi testausta, sillä testipelaajat voisivat pelata toisiaan vastaan, tekoäly kun tulee olemaan huomattavasti myöhäisempi juttu. Selvittilen tässä pikkuhiljaa miten tälläinen olisi mahdollista ja lisään sen peliin jos se osoittautuu helposti tehtäväksi.
Tällä viikolla ei välttämättä tule kovin paljoa päivityksiä itse peliin kun teemme hieman "urakalla" toista kouluprojektia. Jos kumminkin aikaa pelin koodauskelle löytyy on seuraavaksi vuorossa yksikköjen hyökkäys toisiin yksiköihin.
Viime viikon muutokset:
- Lisätty kiväärimies
Tällä viikolla tulevat muutokset:
- Yksikköjen hyökkäys
Viime viikolla palailtiin taas pelimekaniikan ohjelmointiin pari viikkoa kestäneen kamerasäädön jälkeen. Lisäsin peliin kaksi uutta yksikkötyyppiä, jotka olivat jalkaväki ja lentävät yksiköt. Lentävät yksiköt termi kuulostaa omaan korvaan hieman hassulta, muttei niitä lentokoneiksikaan voi sanoa sillä lentäviin yksiköihin kuuluu niin lentokoneita kun helikoptereitakin. Lisätylle kuljetushelikopterille oli valmis spritekin joka tosin vaatii vielä hieman säätämistä. Peliin lisäsin myös perus kiväärimiehen jolle ei ole vielä omaa spriteä laisinkaan joten jouduin sille iskemään placeholderin. Näille yksiköille lisättiin myös omat liikkumisrutiininsa jotka lähinnä olivat vain muutoksia pathfindingiin. Lentävät yksiköt liikkuvat kaikissa eri maastoissa ilman muutoksia, jalkaväki taas voi kyllä kiivetä vuorelle mutta se kuluttaa kaiken liikkumisen.
Uusia yksikköjä lisäillessäni rupesin samalla miettimään yksikköjen lataukseen käytettyä koodin pätkää. Se kyllä toimi mutta oli hieman sekava. Optimoin koodia hieman ja samalla tein sen sellaiseksi että se osaa ladata usean yksikön kerralla. Tämä tulee varmasti tarpeen peliin tulevan tallennusmekanismin myötä.
Minulla on ollut mietinnässä pari viikkoa jo mahdollisen nettimoninpelin lisääminen peliin. Tämä tapahtuisi palvelimen kautta mahdollisesti XML tiedostoa eestaas siirtelemällä. Ensimmäinen pelaaja tekee siirtonsa, pelin tilanne tallenetaan XML tiedostoon, peli siirtää XML tiedoston palvelimelle josta toinen pelaaja ottaa sen, lataa tilanteen XML tiedostosta, tekee omat siirotonsa ja lähettää sen takaisin palvelimelle. Tämä auttaisi testausta, sillä testipelaajat voisivat pelata toisiaan vastaan, tekoäly kun tulee olemaan huomattavasti myöhäisempi juttu. Selvittilen tässä pikkuhiljaa miten tälläinen olisi mahdollista ja lisään sen peliin jos se osoittautuu helposti tehtäväksi.
Tällä viikolla ei välttämättä tule kovin paljoa päivityksiä itse peliin kun teemme hieman "urakalla" toista kouluprojektia. Jos kumminkin aikaa pelin koodauskelle löytyy on seuraavaksi vuorossa yksikköjen hyökkäys toisiin yksiköihin.
Viime viikon muutokset:
- Lisätty kiväärimies
- Lisätty Kuljetushelikopteri
- Muutettu unittien lataamista,
- Liikkumisrutiinit lisätyille yksiköille
Tällä viikolla tulevat muutokset:
- Yksikköjen hyökkäys
maanantai 16. huhtikuuta 2012
Koodausta & Kameraa
Tällä viikolla DroidWars edistyi huomattavasti parempaa vauhtia kun edeltävällä viikolla, onneksi. Menneen viikon muutokset olivat lähes kaikki vain kameran toimintaan liittyviä ja sen sainkin suurimmaksi osaksi kuntoon. Ainut asia mitä en vielä korjannut oli zoomauksen muuttaminen laitteen resoluution mukaan, sillä sen toteuttaminen tulee vaatimaan miettimistä ja se ei ole muutenkaan tärkeyslistalla korkeimmasta päästä.
Ensinnä korjasin pelin GUI:n joka kameran resoluution muuttamisen jälkeen oli missä sattui. Nyt vuoronvaihtoikoni on aina oikeassa alakulmassa resoluutiosta huolimatta ja pelaajan nimen näyttävä teksti no aina keskellä ruutua ylälaidassa. Asetin myös kameralle rajat, jottei pelaaja voi liikuttaa kameraa kentän ulkopuolelle. Tämän kanssa tuli tapeltua hetki, ennenkuin hoksasin esimerkistä että rajojen käyttöönotolle oli vielä erillinen boolean muuttuja joka piti vaihtaa trueksi ennenkuin rajat toimivat.
Lisäsin myös peliin Andenginessä olevan screenshotominaisuuden jonka toimimaan saaminen aiheutti myös vähän ihmettelyä. Aluksi peli ei onnistunut tallentamaan kuvaa puhelimen muistiin. Tämä korjautui antamalla ohjelmalle lupa tallentaa tavaraa puhelimen muistiin (pätkä koodia AndroidManifestiin). Kun kuvan tallentaminen onnistui näkyi siinä vain tausta, muttei yksikköjä. Huomasin kumminkin että screenshotin ottava työkalu osaa ottaa kuvaansa vain asiat jotka on lisätty ennen sitä pelin näytettäväksi. Jouduin tekemään screenshotin ottamista varten pienen viritelmän joka screenshot nappia painettaessa liittää kameran peliin, ottaa kuvan ja irroittaa sen kuvan oton jälkeen. Tällä tavalla kamera saa aina kaiken mahdollisen mukaan kuvaan (GUI:ta lukuunottamatta, jota screenshotissa ei näy).
Pelin uusi ikoni jäi laittamatta, sillä kyseisestä ikonista on vain pelin käyttöön tarkoitettu 32x32 kuva ja androidin ikonit ovat tyypillisesti 128x128. Tämä lisätään kuhan graafikko saa sen tehtyä.
Pidin pelistäni myös koulun vaatiman Aiheseminaarin jossa esittelin opinnäytetyöni aiheen (Tekoäly & DroidWars). Idea otettiin positiivisesti vastaan ja sitä pidettiin hyvin mielenkiintoisena.
Viime viikko meni kameran kanssa säätäessä mutta tällä viikolla siirrytään takaisin gameplayn ohjelmointiin ja tarkoituksena olisikin lisätä uusia yksikkötyyppejä. Lisään peliin niin jalkaväkeä kuin ilmayksiköitäkin ja teen niille kuuluvat pathfinding rutiinit. Jos uusien tyyppien lisääminen sujuu helposti saatan alkaa myös työstämään yksikköjen hyökkäämistä joka tulee olemaan astetta suurempitöinen projekti.
Viime viikon muutokset:
- GUI Korjattu
- Kameran liikkeen rajaus
- Screenshot-työkalu lisätty
- Pari pientä bugia korjattu
Tällä viikolla tulevat muutokset:
- Uusia yksikkötyyppejä
- Uuden ikonin lisäys
- Mahdollisesti yksikköjen hyökkääminen
Ensinnä korjasin pelin GUI:n joka kameran resoluution muuttamisen jälkeen oli missä sattui. Nyt vuoronvaihtoikoni on aina oikeassa alakulmassa resoluutiosta huolimatta ja pelaajan nimen näyttävä teksti no aina keskellä ruutua ylälaidassa. Asetin myös kameralle rajat, jottei pelaaja voi liikuttaa kameraa kentän ulkopuolelle. Tämän kanssa tuli tapeltua hetki, ennenkuin hoksasin esimerkistä että rajojen käyttöönotolle oli vielä erillinen boolean muuttuja joka piti vaihtaa trueksi ennenkuin rajat toimivat.
Lisäsin myös peliin Andenginessä olevan screenshotominaisuuden jonka toimimaan saaminen aiheutti myös vähän ihmettelyä. Aluksi peli ei onnistunut tallentamaan kuvaa puhelimen muistiin. Tämä korjautui antamalla ohjelmalle lupa tallentaa tavaraa puhelimen muistiin (pätkä koodia AndroidManifestiin). Kun kuvan tallentaminen onnistui näkyi siinä vain tausta, muttei yksikköjä. Huomasin kumminkin että screenshotin ottava työkalu osaa ottaa kuvaansa vain asiat jotka on lisätty ennen sitä pelin näytettäväksi. Jouduin tekemään screenshotin ottamista varten pienen viritelmän joka screenshot nappia painettaessa liittää kameran peliin, ottaa kuvan ja irroittaa sen kuvan oton jälkeen. Tällä tavalla kamera saa aina kaiken mahdollisen mukaan kuvaan (GUI:ta lukuunottamatta, jota screenshotissa ei näy).
Pelin uusi ikoni jäi laittamatta, sillä kyseisestä ikonista on vain pelin käyttöön tarkoitettu 32x32 kuva ja androidin ikonit ovat tyypillisesti 128x128. Tämä lisätään kuhan graafikko saa sen tehtyä.
Pidin pelistäni myös koulun vaatiman Aiheseminaarin jossa esittelin opinnäytetyöni aiheen (Tekoäly & DroidWars). Idea otettiin positiivisesti vastaan ja sitä pidettiin hyvin mielenkiintoisena.
Viime viikko meni kameran kanssa säätäessä mutta tällä viikolla siirrytään takaisin gameplayn ohjelmointiin ja tarkoituksena olisikin lisätä uusia yksikkötyyppejä. Lisään peliin niin jalkaväkeä kuin ilmayksiköitäkin ja teen niille kuuluvat pathfinding rutiinit. Jos uusien tyyppien lisääminen sujuu helposti saatan alkaa myös työstämään yksikköjen hyökkäämistä joka tulee olemaan astetta suurempitöinen projekti.
Viime viikon muutokset:
- GUI Korjattu
- Kameran liikkeen rajaus
- Screenshot-työkalu lisätty
- Pari pientä bugia korjattu
Tällä viikolla tulevat muutokset:
- Uusia yksikkötyyppejä
- Uuden ikonin lisäys
- Mahdollisesti yksikköjen hyökkääminen
maanantai 9. huhtikuuta 2012
AFK
Peliprojekti edistyi viimeviikolla todella vähän, sillä samalle viikolle sattui niin pääsiäisen sukuloinnit kuin Lost In Joensuu 2012 (jossa TIKO:laisista koostuvan joukkueemme nimi oli tietenkin AFK). Sain kumminkin aikaiseksi kameran säätämisen laitteen resoluution mukaan sekä lisäsin päivitetyn tankin spriten sekä uudet maastojen grafiikat. Kameran resoluution säätäminen aiheutti GUI:n menemisen poskelleen, sillä en ollut tajunnut laittaa niiden paikkojen laskentaa riippumaan kameran resoluutiosta vaan olin hardkoodannut ne peliin. Myös kameran zoomaus hajosi resoluution muutoksen jälkeen, sillä senkin muuttujat oli hardkoodattu. Hardkoodauksien poisto on ykkösprioriteetilla tälläviikolla. Tarkoituksena olisi myös rajoittaa kameran liikettä (ettei pelaaja voi siirtää kameraa kokonaan pois pelialueelta) sekä pelin ikonin muuttaminen.
Viime viikon muutokset:
- Kameran resoluutio otetaan laitteen resoluutiosta
- Kameralle pistettiin maksimi/minimi zoomi
- Uusi tankin sprite peliin
- Uudet maastot peliin
Tällä viikolla tulevat muutokset:
- Rajoitus kameran liikkeelle
- Kameran zoomauksen korjaus
- GUI:n korjaus
- Uusi pelin ikoni
Viime viikon muutokset:
- Kameran resoluutio otetaan laitteen resoluutiosta
- Kameralle pistettiin maksimi/minimi zoomi
- Uusi tankin sprite peliin
- Uudet maastot peliin
Tällä viikolla tulevat muutokset:
- Rajoitus kameran liikkeelle
- Kameran zoomauksen korjaus
- GUI:n korjaus
- Uusi pelin ikoni
maanantai 2. huhtikuuta 2012
Uusi kuu, ei niin uudet kujeet
Aamulla herättyäni ja koneelle kömmittyäni huomasin että drobox synkronoi pari uutta tiedostoa ja minä tietenkin katsomaan että mitä uutta on tullut. Siellähän oli uudet maastot. Graafikko soitti sitten vähän ajan päästä ja sanoi tehneensä ne viimeyönä. Kyseisellä ihmisellä olisi kumminkin tehtävänä lopputyökin tiistaiksi. Grafiikan tekeminen oli kumminkin kuulemma hyvä paussi kirjoittamisesta joten en valita. Viikonloppuna tuli myös uusi ikoni tankille, joten projekti edistyy graafisesti hyvin mukavaa vauhtia. Tulevan kuukauden aikana saadaan mahdollisesti ensimmäiset kuvankaappauksetkin tehtyä, kuhan maastoa ensin hiotaan vähän.
Koodin puolelta tämä viikko oli aika säätämistä, huomasin nimittäin ettei minulla ole käytössä uusin versio käyttämästäni pelienginestä. Tämän huomasin oikeastaan vahingossa, sillä tarvitsin pinchzoomia ja kameran liikutusta varten multitouchia ja luulin ettei sitä vain nykyisessä versiossa ole. Huomasin kumminkin pienen kaivelun jälkeen että multitouch on erillinen plugin joka on saatavilla vain mercurial repositorystä. Hain sitten samalla sekä uusimman version enginestä sekä kyseisen pluginin. Uusi version ja engine saatiin toimimaan lisäämällä ne Eclipseen "library projekteiksi" joita ei voi laitteelle siirtää, mutta ne otetaan mukaan projekteissa jotka niitä käyttävät. Koodiin piti tehdä pieniä muutoksia enginen päivittämisen takia, mutta muutosten suuruus rajautui oikeastaan vain muutamien muuttujien tyyppien muuttamiseen.
Päivityksen jälkeen pinchzoomin ja kameran liikuttelun lisääminen oli helppoa asiaa käsittelevän esimerkkikoodin pohjalta. Ominaisuutta lisäilessäni huomasin helpomman tavan unittien valinnalle taulkoiden selaamisen sijaan. Rekisteröin vain unittien spritet kosketusaluiksi ja käytän sitä unittien valitaan. Tehtaiden kohdille piti luoda erikseen näkymätön neliö joka toimii kosketusalueena, sillä tehtaalla ei enginessä ole suoraan omaa spriteä koska se on osa karttaa. En ole täysin varma onko tämä tapa kyvempi kun taulukoiden kanssa plärääminen, mutta se pitää testata myöhemmässä vaiheessa.
Viime viikon muutokset
- Pinchzoom lisätty
- Kameran liikutus lisätty
- Valintasysteemi muutettu
Tällä viikolla tulevat muutokset:
- Uusi tankin sprite peliin
- Uudet maastot peliin
- Rajoitukset kameran liikkumiselle ja zoomaukselle
- Kameran keskittäminen pelin alussa ja vuoron vaihdossa
Koodin puolelta tämä viikko oli aika säätämistä, huomasin nimittäin ettei minulla ole käytössä uusin versio käyttämästäni pelienginestä. Tämän huomasin oikeastaan vahingossa, sillä tarvitsin pinchzoomia ja kameran liikutusta varten multitouchia ja luulin ettei sitä vain nykyisessä versiossa ole. Huomasin kumminkin pienen kaivelun jälkeen että multitouch on erillinen plugin joka on saatavilla vain mercurial repositorystä. Hain sitten samalla sekä uusimman version enginestä sekä kyseisen pluginin. Uusi version ja engine saatiin toimimaan lisäämällä ne Eclipseen "library projekteiksi" joita ei voi laitteelle siirtää, mutta ne otetaan mukaan projekteissa jotka niitä käyttävät. Koodiin piti tehdä pieniä muutoksia enginen päivittämisen takia, mutta muutosten suuruus rajautui oikeastaan vain muutamien muuttujien tyyppien muuttamiseen.
Päivityksen jälkeen pinchzoomin ja kameran liikuttelun lisääminen oli helppoa asiaa käsittelevän esimerkkikoodin pohjalta. Ominaisuutta lisäilessäni huomasin helpomman tavan unittien valinnalle taulkoiden selaamisen sijaan. Rekisteröin vain unittien spritet kosketusaluiksi ja käytän sitä unittien valitaan. Tehtaiden kohdille piti luoda erikseen näkymätön neliö joka toimii kosketusalueena, sillä tehtaalla ei enginessä ole suoraan omaa spriteä koska se on osa karttaa. En ole täysin varma onko tämä tapa kyvempi kun taulukoiden kanssa plärääminen, mutta se pitää testata myöhemmässä vaiheessa.
Viime viikon muutokset
- Pinchzoom lisätty
- Kameran liikutus lisätty
- Valintasysteemi muutettu
Tällä viikolla tulevat muutokset:
- Uusi tankin sprite peliin
- Uudet maastot peliin
- Rajoitukset kameran liikkumiselle ja zoomaukselle
- Kameran keskittäminen pelin alussa ja vuoron vaihdossa
maanantai 26. maaliskuuta 2012
Pikkuhiljaa eteenpäin
Taas blogin ääressä näin heti maanantaina. Yritän tästälähtien ottaa aina tavaksi että summaan edellisen viikon tapahtumat joka maanantai niin saadaan tämänkin kirjoittamiseen jotain järjestelmällisyyttä.
Viimeviikolla itse pelin tekeminen jäi hiukan vähälle kun piti työstää kouluprojektia (ja varsinkin siihen liittyviä dokumentointeja jotka olivat jääneet vähän retuperälle). Lauantaina palaveerasimme graafikon kanssa ja peli tuntuu sielläkin puolella etenevän ihan hyvää vauhtia. Tankin sprite vaihdettiin toiseen ja se näyttikin heti paremmalta. Spriteä pitää kumminki hieman siistiä, sillä kaikki yksityiskohdat eivät näytä kovin hyvältä itse puhelimen näytöllä.
Graafikko myös sanoi että hän saa mahdollisesti maastot valmiiksi tämän viikon aikana joten tämän jälkeen voidaan odottaa jo ensimmäisiä screenshotteja pelistä. Huomasin myös palaverin aikana että en ole käyttänyt koko puhelimen näytön resoluutiota itse pelissä joten sen korjaaminen on aika korkealla tekemislistassa. Peliin on myös tarkoitus lisätä pinchzoomauksen mahdollisuus jolloin varsinkin vähän isompien karttojen navigointi helpottuu. Myös kameran liikutus olisi tarkoitus lisätä peliin, mutta se ei ole vielä tulevan viikon todo -listassa.
Tällä viikolla valmiiksi saatiin:
- Tankille uusi sprite
- Unittien värin vaihto riippuen millä puolella ne ovat
- Korjaus pathfindingin bugiin joka kaatoi pelin
Seuraavaksi on vuorossa:
- Uudet maastot
- Tankin siistiminen
- Pinch zoomauksen tekeminen
- Screenshot -ominaisuus
- Pelin käyttämän resoluution säätäminen
Viimeviikolla itse pelin tekeminen jäi hiukan vähälle kun piti työstää kouluprojektia (ja varsinkin siihen liittyviä dokumentointeja jotka olivat jääneet vähän retuperälle). Lauantaina palaveerasimme graafikon kanssa ja peli tuntuu sielläkin puolella etenevän ihan hyvää vauhtia. Tankin sprite vaihdettiin toiseen ja se näyttikin heti paremmalta. Spriteä pitää kumminki hieman siistiä, sillä kaikki yksityiskohdat eivät näytä kovin hyvältä itse puhelimen näytöllä.
Graafikko myös sanoi että hän saa mahdollisesti maastot valmiiksi tämän viikon aikana joten tämän jälkeen voidaan odottaa jo ensimmäisiä screenshotteja pelistä. Huomasin myös palaverin aikana että en ole käyttänyt koko puhelimen näytön resoluutiota itse pelissä joten sen korjaaminen on aika korkealla tekemislistassa. Peliin on myös tarkoitus lisätä pinchzoomauksen mahdollisuus jolloin varsinkin vähän isompien karttojen navigointi helpottuu. Myös kameran liikutus olisi tarkoitus lisätä peliin, mutta se ei ole vielä tulevan viikon todo -listassa.
Tällä viikolla valmiiksi saatiin:
- Tankille uusi sprite
- Unittien värin vaihto riippuen millä puolella ne ovat
- Korjaus pathfindingin bugiin joka kaatoi pelin
Seuraavaksi on vuorossa:
- Uudet maastot
- Tankin siistiminen
- Pinch zoomauksen tekeminen
- Screenshot -ominaisuus
- Pelin käyttämän resoluution säätäminen
tiistai 20. maaliskuuta 2012
Muutoksen tuulet
Viikottaisessa julkaisurytmissä kun yritettään pysyä niin jälleen pukkaa uutta päivitystä. Viime viikolla palaveerattiin graafikon kanssa ja hän oli muutaman yksikön ikonit kerinnyt tehdäkkin jo. Kuvat näyttivät hyviä sellaisena ollessaan, mutta kun peliin ne laitoin niin eipä näyttänytkään enää niin hyvältä, pieni säätäminen on siis tarpeen.
Projektin "hallinta" oli ennen aika olematonta mutta viimeviiikolla otin siitäkin vähän paremman otteen. Ensimmäisenä bitbuckettiin mercurial repo jonne työntelen päivitykset talteen ja pystyy graafikkokin tuota kautta testailemaan grafiikoita pelissä suoraan, kuhan saa kehitysympäristön pystytettyä. Kaikki dokumentit olivat ennen google docsissa, mutta kouluprojektissa aloimme käyttää Wunderkittiä (https://www.wunderkit.com/) joten siirsin työlistat ja notet tuon puolelle. Kaikki tiedostot jaetaan dropboxin kautta.
Koodillisesti viimeviikolla sain tehtyä suunnitellun vuorosysteemin, jonka toteutuksen jälkeen tosin hoksasin ettei kyseinen systeemi toimi yhtään jollei pelissä ole GUI:ta josta vuoroa voi vaihtaa. Tekaisinpa senkin samaan syssyyn, tulipa kierrätysikonillekkin käyttöä vuoronvaihtonappulan placeholderina. Vuorosysteemi toimii siis niin että yksiköt voivat liikkua ja hyökätä vain kerran vuorossa. Graafikko löysi myös peliä testatessaan bugin: jos unitti oli valikon napin alla, valitsi peli unitin napin painamisen sijaan.
Seuraavaksi olisi tarkotus katsoa onko mahdollista vaihtaa unittien väriä koodin puolelta. Säästyy nimittäin aikaa, vaivaa sekä muistinkäyttöä kun jokaiselle pelaajavärille ei tarvitse olla omaa spriteä.
Eli summasummarum:
- Unitit eivät voi enää mennä päällekkäin
- Valikoissa ollessa et voi enää valita pelissä olevia yksiköitä.
- Lisätty GUI, jossa näkyy vuorossa olevan pelaajan nimi sekä vuoronvaihdon nappi.
- Lisätty vuorosysteemi.
Seuraavaksi vuorossa:
- Unittien värin vaihto koodillisesti.
Projektin "hallinta" oli ennen aika olematonta mutta viimeviiikolla otin siitäkin vähän paremman otteen. Ensimmäisenä bitbuckettiin mercurial repo jonne työntelen päivitykset talteen ja pystyy graafikkokin tuota kautta testailemaan grafiikoita pelissä suoraan, kuhan saa kehitysympäristön pystytettyä. Kaikki dokumentit olivat ennen google docsissa, mutta kouluprojektissa aloimme käyttää Wunderkittiä (https://www.wunderkit.com/) joten siirsin työlistat ja notet tuon puolelle. Kaikki tiedostot jaetaan dropboxin kautta.
Koodillisesti viimeviikolla sain tehtyä suunnitellun vuorosysteemin, jonka toteutuksen jälkeen tosin hoksasin ettei kyseinen systeemi toimi yhtään jollei pelissä ole GUI:ta josta vuoroa voi vaihtaa. Tekaisinpa senkin samaan syssyyn, tulipa kierrätysikonillekkin käyttöä vuoronvaihtonappulan placeholderina. Vuorosysteemi toimii siis niin että yksiköt voivat liikkua ja hyökätä vain kerran vuorossa. Graafikko löysi myös peliä testatessaan bugin: jos unitti oli valikon napin alla, valitsi peli unitin napin painamisen sijaan.
Seuraavaksi olisi tarkotus katsoa onko mahdollista vaihtaa unittien väriä koodin puolelta. Säästyy nimittäin aikaa, vaivaa sekä muistinkäyttöä kun jokaiselle pelaajavärille ei tarvitse olla omaa spriteä.
Eli summasummarum:
- Unitit eivät voi enää mennä päällekkäin
- Valikoissa ollessa et voi enää valita pelissä olevia yksiköitä.
- Lisätty GUI, jossa näkyy vuorossa olevan pelaajan nimi sekä vuoronvaihdon nappi.
- Lisätty vuorosysteemi.
Seuraavaksi vuorossa:
- Unittien värin vaihto koodillisesti.
keskiviikko 7. maaliskuuta 2012
Unohtelua
Pitkästä aikaa blogin ääressä taas, luulin että viime postauksesta olisi maksimissaan reilu viikko mutta oikea aika onkin lähellä kolmea viikkoa. En tiedä miten näin pitkä aika on päässyt kulumaan ilman blogipostauksia mutta nyt asiaan tulee kumminkin muutos.
Tämän n. kolmen viikon aikana on kumminkin tapahtunut kehitystä eteenpäin hyvää vauhtia. Uusia ominaisuuksia ovat:
- Tehtaat uusien yksikköjen luontia varten
- Tehtaan valikko
- Yksikköjen tuottaminen tehtaasta
- Ruudukko joka näyttää unitin liikkumisalueen
- Valitsemisen esto yksikön liikkuessa
Tehtaan valikoiden tekeminen haukkasi aikaa, eniten oikean tekniikan löytämiseen, andenginessä kun dokumentointia ei valitettavasti ole. Valikkojen grafiikat ovat tällähetkellä pelkästään placeholdereita joten ne eivät ole kaunista katseltavaa, toimivat kumminkin.
Yksikköjen liikkumiesalueen näyttävä ruudukko vaati myös aika paljon mietintää, varsinkin kun tällähetkellä ainut yksikkö on tankki, joka ei pysty vuorien yli liikkumaan. Isoimmat ongelmat syntyivät kun yksikön edessä oli vuori jonka pystyi kumminkin kiertämään. Systeemi ei tällähetkellä toimi aivan täydellisesti mutta sen hienosäätäminen jää myöhemmäksi. Muidenlaisten yksikköjen liikkumisruudukkojen tekeminen tuleekin olemaan helpompaa, ne kun eivät välitä vuorista.
Uusien yksikköjen tuottaminen tehtaista onnistui ilman kummempia kommelluksia. Yksiköt voivat kumminkin mennä vielä samaan ruutuun jonka muuttaminen onkin seuraavaksi vuorossa. Suurin syy miksi en ole tätä ominaisuutta vielä lisännyt on se etten ole saanut vielä mietittyä kunnollista tapaa tehdä kyseistä asiaa. Koodin pätkästä kun tulee helposti liian raskas, varsinkin jos ruudulla alkaa olla kymmeniä yksikköjä yhtäaikaa.
Seuraavaksi tulevat ominaisuudet/korjaukset:
- Yksikköjen päällekkäin menemisen estäminen
- Vuorosysteemin implementointi
Ensi viikolla on myös luvassa palaveria projektin graafikon kanssa, katsotaan mitä saadaan aikaiseksi :)
Tämän n. kolmen viikon aikana on kumminkin tapahtunut kehitystä eteenpäin hyvää vauhtia. Uusia ominaisuuksia ovat:
- Tehtaat uusien yksikköjen luontia varten
- Tehtaan valikko
- Yksikköjen tuottaminen tehtaasta
- Ruudukko joka näyttää unitin liikkumisalueen
- Valitsemisen esto yksikön liikkuessa
Tehtaan valikoiden tekeminen haukkasi aikaa, eniten oikean tekniikan löytämiseen, andenginessä kun dokumentointia ei valitettavasti ole. Valikkojen grafiikat ovat tällähetkellä pelkästään placeholdereita joten ne eivät ole kaunista katseltavaa, toimivat kumminkin.
Yksikköjen liikkumiesalueen näyttävä ruudukko vaati myös aika paljon mietintää, varsinkin kun tällähetkellä ainut yksikkö on tankki, joka ei pysty vuorien yli liikkumaan. Isoimmat ongelmat syntyivät kun yksikön edessä oli vuori jonka pystyi kumminkin kiertämään. Systeemi ei tällähetkellä toimi aivan täydellisesti mutta sen hienosäätäminen jää myöhemmäksi. Muidenlaisten yksikköjen liikkumisruudukkojen tekeminen tuleekin olemaan helpompaa, ne kun eivät välitä vuorista.
Uusien yksikköjen tuottaminen tehtaista onnistui ilman kummempia kommelluksia. Yksiköt voivat kumminkin mennä vielä samaan ruutuun jonka muuttaminen onkin seuraavaksi vuorossa. Suurin syy miksi en ole tätä ominaisuutta vielä lisännyt on se etten ole saanut vielä mietittyä kunnollista tapaa tehdä kyseistä asiaa. Koodin pätkästä kun tulee helposti liian raskas, varsinkin jos ruudulla alkaa olla kymmeniä yksikköjä yhtäaikaa.
Seuraavaksi tulevat ominaisuudet/korjaukset:
- Yksikköjen päällekkäin menemisen estäminen
- Vuorosysteemin implementointi
Ensi viikolla on myös luvassa palaveria projektin graafikon kanssa, katsotaan mitä saadaan aikaiseksi :)
torstai 16. helmikuuta 2012
Puolessavälin Helmikuuta
Helmikuu etenee ja sitä myöten myös DroidWars kehittyy eteenpäin. Kehitystahti on ollu kumminkin hitaampaa kuin haluaisin, aikaa vei kesätyöpaikkaa varten tekemäni ennakkotyö, joka ei kumminkaan riittänyt paikan saamiseen.
Uusia yksikköjä ei vielä tullut, koska haluan saada ensin yleiskuvan mitä yksikköjä peliin tulee ennenkuin alan yksikköjä lisäilemään. Myös Screenshot ominaisuus jää myöhemmäksi, napsitaan kuvia vasta kun on jotain näytettävääkin (eli uudet grafiikat).
Alkuviikon aikana sain kumminkin tehtyä DroidWarsiin yksikköjen liikkumisen rajoituksen sekä ruudukon joka ilmestyy kun yksikkö valitaan ja näyttää alueen jolle yksikkö voi liikkua. Tällähetkellä ainut yksikkö pelissä on tankki jolle ruudukon tekeminen oli kaikkein vaikeinta, sillä vuoret estävät ajoneuvojen liikkumisen. Nyt kun kaikkein hankalin on saatu tehtyä, on jalkaväen ja ilmayksikköjen likkumisalueen teko huomattavasti helpompaa.
Tällä kertaa valmiiksi saatiin:
- Yksikköjen liikkumisen rajoittaminen
- Yksikköjen liikkumisalueen näyttävä ruudukko
Myöhemmälle siirrettiin:
- Uusien yksikköjen keksiminen
- Screenshot ominaisuus
- Ingame menu
Seuraavaksi kehitykseen lähtee:
- Tehtaiden toimivuus (uusien yksikköjen luonti kartalle).
Projektia kohtaan on osoittanut kiinnostuksena yksi graafikko jonka kanssa asiasta puhuin tarkemmin viime viikolla. Myös pelin ideointiin on yksi henkilö osoittanut kiinnostusta, tiimi kasvaa siis hyvää vauhtia.
Graafikoiden haku pysyy kumminkin avoinna ja pelin kehitykseen mukaan haetaan myös seuraavista asioista kiinnostuneita henkilöitä:
- Ideointi (yksiköt, pelimekaniikat)
- Karttojen tekeminen (Ruutupohjaisia karttoja Tiled nimisellä ohjelmalla)
- Äänet (efektit, mahdolliset musiikit)
- Testaajia (vaatimuksena vähintään Androidin 2.2 versiota pyörittävä puhelin).
Isoin tarve on tällähetkellä yksikköjen/pelimekaniikkojen kehittäjille. Muut osa-alueet tulevat sitten myöhemmin mutta saa niihinkin jo ilmottautua jos kiinnostusta löytyy.
Minut saa kiinni:
juuso.hietala(at)gmail.com
Zuppi @ Quakenet
Uusia yksikköjä ei vielä tullut, koska haluan saada ensin yleiskuvan mitä yksikköjä peliin tulee ennenkuin alan yksikköjä lisäilemään. Myös Screenshot ominaisuus jää myöhemmäksi, napsitaan kuvia vasta kun on jotain näytettävääkin (eli uudet grafiikat).
Alkuviikon aikana sain kumminkin tehtyä DroidWarsiin yksikköjen liikkumisen rajoituksen sekä ruudukon joka ilmestyy kun yksikkö valitaan ja näyttää alueen jolle yksikkö voi liikkua. Tällähetkellä ainut yksikkö pelissä on tankki jolle ruudukon tekeminen oli kaikkein vaikeinta, sillä vuoret estävät ajoneuvojen liikkumisen. Nyt kun kaikkein hankalin on saatu tehtyä, on jalkaväen ja ilmayksikköjen likkumisalueen teko huomattavasti helpompaa.
Tällä kertaa valmiiksi saatiin:
- Yksikköjen liikkumisen rajoittaminen
- Yksikköjen liikkumisalueen näyttävä ruudukko
Myöhemmälle siirrettiin:
- Uusien yksikköjen keksiminen
- Screenshot ominaisuus
- Ingame menu
Seuraavaksi kehitykseen lähtee:
- Tehtaiden toimivuus (uusien yksikköjen luonti kartalle).
Projektia kohtaan on osoittanut kiinnostuksena yksi graafikko jonka kanssa asiasta puhuin tarkemmin viime viikolla. Myös pelin ideointiin on yksi henkilö osoittanut kiinnostusta, tiimi kasvaa siis hyvää vauhtia.
Graafikoiden haku pysyy kumminkin avoinna ja pelin kehitykseen mukaan haetaan myös seuraavista asioista kiinnostuneita henkilöitä:
- Ideointi (yksiköt, pelimekaniikat)
- Karttojen tekeminen (Ruutupohjaisia karttoja Tiled nimisellä ohjelmalla)
- Äänet (efektit, mahdolliset musiikit)
- Testaajia (vaatimuksena vähintään Androidin 2.2 versiota pyörittävä puhelin).
Isoin tarve on tällähetkellä yksikköjen/pelimekaniikkojen kehittäjille. Muut osa-alueet tulevat sitten myöhemmin mutta saa niihinkin jo ilmottautua jos kiinnostusta löytyy.
Minut saa kiinni:
juuso.hietala(at)gmail.com
Zuppi @ Quakenet
keskiviikko 8. helmikuuta 2012
Tilanteen katsaus
Teenpä näin heti blogin alkuun katsauksen siihen missä kunnossa peli on tällähetkellä ja mitä olisi tarkoituksena tehdä seuraavaksi.
Tällähetkellä:
- Pelin kehitysnimi on DroidWars
- Tiledillä (http://www.mapeditor.org/) tehdyt kartat latautuvat.
- Yksikköjä vain yksi (Tank)
- Yksikön piirtäminen peliin toimii.
- Yksikkö valittavissa sitä koskettamalla.
- Yksikkö liikkuu A* pathingia käyttäen.
- Yksikkö kiertää vuoret, mutta matkan pituutta ei ole rajoitettu millään tavalla.
- Peli käyttää vielä Advance Warsin spritejä.
Seuraavaksi kehityksessä:
- Uusia yksikköjä.
- Yksikköjen liikkumisen rajoittaminen.
- Ingame menu
- Screenshot -ominaisuus
Projektiin olisi tarvetta graafikolle, kun itsellä ei ole minkäännäköistä taitoa graafisella puolella. Pelin grafiikat tulevat suurimmaksi osaksi olemaan spritejä (esimerkiksi kartalla näkyvät yksiköt ovat tällähetkellä kokoa 32x 32 pikseliä). Jos joku haluaa tarttua haasteeseen (tai tuntee jonkun joka voisi olla halukas) ottakaa minuun yhteyttä.
Yhteyttä voi ottaa:
juuso.hietala(at)gmail.com tai
Zuppi@Quakenet
Tällähetkellä:
- Pelin kehitysnimi on DroidWars
- Tiledillä (http://www.mapeditor.org/) tehdyt kartat latautuvat.
- Yksikköjä vain yksi (Tank)
- Yksikön piirtäminen peliin toimii.
- Yksikkö valittavissa sitä koskettamalla.
- Yksikkö liikkuu A* pathingia käyttäen.
- Yksikkö kiertää vuoret, mutta matkan pituutta ei ole rajoitettu millään tavalla.
- Peli käyttää vielä Advance Warsin spritejä.
Seuraavaksi kehityksessä:
- Uusia yksikköjä.
- Yksikköjen liikkumisen rajoittaminen.
- Ingame menu
- Screenshot -ominaisuus
Projektiin olisi tarvetta graafikolle, kun itsellä ei ole minkäännäköistä taitoa graafisella puolella. Pelin grafiikat tulevat suurimmaksi osaksi olemaan spritejä (esimerkiksi kartalla näkyvät yksiköt ovat tällähetkellä kokoa 32x 32 pikseliä). Jos joku haluaa tarttua haasteeseen (tai tuntee jonkun joka voisi olla halukas) ottakaa minuun yhteyttä.
Yhteyttä voi ottaa:
juuso.hietala(at)gmail.com tai
Zuppi@Quakenet
Alkusanat
Enpä olisi ikinä uskonut että minäkin joskus tulisin pitämään blogia, mutta tässä sitä sitten ollaan. Kuten moni varmaan tietää, opiskelen PKAMK:lla viimeistä vuottani tietojenkäsittelyä ja sen takia opinnäytetyön tekeminen alkaa tulla ajankohtaiseksi. Opinnoissani olen keskittynyt peliohjelmointiin joten opinnäytetyöksi mietinkin jotain peleihin liittyvää. Alustaksi mahdolliselle pelille ajattelin Androidia, kun droidipuhelin tuli hankittua viime jouluna. Siitä siis etsimään että onko Androidille kehitetty mitään pelimoottoria jota voisi käyttää alustana. Googlen haku ehdottikin heti Andengineä (http://www.andengine.org/). Huomasin että kyseisellä moottorilla ruutupohjaisen pelin teko olisi suhteellisen helppoa ja tästä sainkin inspiraation.
Peli-ideani pohjautuu suhteellisen paljon Advance Wars -pelisarjaan joskin pelimekaniikkaan tulen tekemään muutoksia. Rakentelin nopeasti pienen prototyypin ja sen jälkeen opettajan puheille keskustelemaan opinnäytetyön sopivuudesta. Idea oli hyväksyttävä, joskin pelin kehityksessä pitäisi myös tutkia jotain osa-aluetta hieman tarkemmin. Valitsin tarkemmin tutkittavaksi osa-alueeksi pelin tekoälyn.
Tämä blogi tulee siis seuraamaan opinnäytetöni/pelin kehitystä kuluvan vuoden aikana. Yritän kirjoitella postauksia ainakin kerran viikkoon.
Peli-ideani pohjautuu suhteellisen paljon Advance Wars -pelisarjaan joskin pelimekaniikkaan tulen tekemään muutoksia. Rakentelin nopeasti pienen prototyypin ja sen jälkeen opettajan puheille keskustelemaan opinnäytetyön sopivuudesta. Idea oli hyväksyttävä, joskin pelin kehityksessä pitäisi myös tutkia jotain osa-aluetta hieman tarkemmin. Valitsin tarkemmin tutkittavaksi osa-alueeksi pelin tekoälyn.
Tämä blogi tulee siis seuraamaan opinnäytetöni/pelin kehitystä kuluvan vuoden aikana. Yritän kirjoitella postauksia ainakin kerran viikkoon.
Tilaa:
Blogitekstit (Atom)