tiistai, 8. tammikuu 2008

Game wizardin suunnittelua

Alkuhuipun jälkeen koodaaminen on hieman väistynyt muiden asioiden tieltä, joten suuria muutoksia ei ole juuri tullut. Jokseenkin alituinen tietokoneella oleminen rassaa ja tästä syystä on helppo löytää muutakin tekemistä. Lisäksi koulu alkoi tänään, joten luvassa voi olla jonkin ajan päästä hieman hiljaisempia aikoja. Positiivisena puolena voisi mainita, että tarina alkaa olla kehittämiskelpoisessa pisteessä, mutta siitä en aio kertoa enempää. (Tulevasta) kiireestä huolimatta koetan koodata peliä eteenpäin parhaani mukaan.

Uusina asioina sivuilta löytyvät hienoinen dokumentti game wizardista, http://koti.mbnet.fi/~deluxo/dokumentti.txt, sekä tietenkin alustava layoutti kyseisestä sovelluksen osasta, http://koti.mbnet.fi/~deluxo/wizard.png. Ruma kuin sika pienenä, tiedän, mutta paneelit on nyt aseteltu paikoilleen. Ja ettei nyt sattuisi mitään erehdyksiä, niin kyseinen kuva on siis screenshotti sovelluksesta, ei photoshopilla tehty leiskaesitelmä. Jopa omalla esteettisellä silmälläni tehdään parempaa jälkeä kuin tuo. :P

Ongelmina tuli esille jar-tiedoston kääntäminen exe-tiedostoksi. Ainakaan jar2exe wizard 1.8 ei kyseistä käännöstä osannut tehdä. Täytynee kokeilla joko jotain muuta ohjelmaa tai sitten lukea tämä artikkeli läpi. Vaikka suoritettavan tiedoston jakaminen sivuilla olisikin parempi tapa esittää sovelluksen toimintaa kuin screenshotit, ajattelin siirtää tämän huolen kuitenkin hamaan tulevaisuuteen. Yksi tapa on tietenkin ladata Netbeans ja ajaa sourcet sillä.

Tajusin, ehkä turhankin selvän asia, että frame tarvitsee taaksensa aina jonkin koko ruudun (tai ikkunallisessa tilassa koko ikkunan) peittävän paneelin. Mikäli tällaista ei aseteta, taustapaneeliksi asetetaan automaattisesti Container-luokan olioon viimeisenä lisätty näkyvä paneeli. Täten tähän paneeliin ei vaikuta millään tavalla JPanelin setbounds-metodilla tehdyt kokorajoitukset, vaan se on aina koko ruudun kokoinen. Tämä tuskin jää viimeiseksi oppimakseni asiaksi paneeleista, sillä käytän niitä ensimmäistä kertaa. Välillä olisi helpompaa mikäli olisi joku selittämässä, eikä tarvitsisi koko ajan edetä kantapään kautta.

Lisäksi itse sovelluksen toimintaan liittyy kaksi ongelmaa, joita en ole vielä saanut ratkaistuksi. Ensimmäinen liittyy fullscreen-tilan käyttöön, sillä sovellus ei muutu ikkunalliseksi vaikka GraphicsDevice-luokan olion setFullScreenWindow()-metodille antaakin parametriksi arvon null (kuten esimerkiksi tässä tutoriaalissa mielestäni sanotaan, toivottavasti joku kykenee selkiyttämään asiaa). Ehkä ongelma kuitenkin ratkeaa tarpeeksi hinkkaamalla. Totta puhuen varastin suurimman osan fullscreen-koodista jostakin tutoriaalista jota en enää muista ja sovelsin sitä turhankin nopeasti käytäntöön. Täytyy ottaa asiosta paremmin selvää kunhan saan tärkeämmät asiat alta.

Toinen ongelma liittyy hiiren kursorin käyttöön sovelluksen tilojen valitsemisessa. Sovelluksen tilojen valitseminen toimii tällä hetkellä niin, että alkuvalikossa käyttäjä valitsee haluamansa tilan (play, settings tai game wizard) painamalla niitä symboloivia "nappeja". En tiedä onko kyseiseen toimintoon mitään oikotietä, mutta itse olen toteuttanut toiminnon niin, että otan kyseisen kuvan x- ja y-position ja lisään niihin kuvan leveyden verran pikseleitä, jonka jälkeen vertailen if-lauseella klikkaako käyttäjä näiden koordinaattien sisältä. Näyttää kuitenkin siltä, että annetut koordinaatistopisteet heittelevät fullscreen- ja window-modien välillä, sillä samat koordinaatit jotka toimivat window-modessa osuvatkin liian alas kun kyseessä on fullscreen-tila.

Joka tapauksessa, takaisin koodauspöydän ääreen.

perjantai, 4. tammikuu 2008

Aloittaminen on aina vaikeaa

Enkä nyt puhu koodausprosessista. Ensimmäinen merkintä on aina haastava.

Aloitetaan tunnustuksella: tämä blogi on jo hieman jäljessä, sillä projektini on jo kolmisen päivää vanha ja siinä on noin 1000 riviä koodia.

Itse koodin, sekä muutamia kuvia, löytää täältä: http://koti.mbnet.fi/~deluxo/

Koodista voi puolestani vapaasti lainailla mitä haluaa. Olisi kuitenkin ystävällistä mikäli heittäisit viestillä ja kertoisit millaiseen tarkoitukseen. En myöskään pistä pahaksi vaikka varastaisit koko setin ja tekisit siitä omanlaisesi pelin, mutta tällöin odotan saavani nimeni vähintään lopputeksteihin. ;)

Kuten kuvista saattaa nähdä, grafiikka on vielä melko olematonta. Olen ajatellut hioa käyttöliittymän aluksi kasaan ja vasta tämän jälkeen alkaa miettimään graafista puolta, ellen sitten löydä jotakuta tekemään grafiikkaa puolestani, sillä itseäni kiinnostaa lähinnä tarina- ja ohjelmointipuoli. Itse asiassa yksi syistä miksi aloin tekemään pelistä Tapan Kaikki -henkisesti ylhäältä kuvattua on juuri se että grafiikan tuottaminen tuntui liian tuskalliselta.

Kuten grafiikka, myöskään pelin nimi - saati tarina - eivät ole vielä valmiita. Opettajani olisivat ylpeitä mikäli tietäisivät kuinka vähäisellä suunnittelulla olen alkanut tätä projektia väsäämään. =P

Mutta joka tapauksessa tarkoituksenani on toteuttaa pelin yhteyteen helppokäyttöinen velho, jonka avulla käyttäjä kykenee tekemään omia kenttiä ja mahdollisesti jopa tarinoita. Helpottaa omaakin työtä, jos kentän voi rakentaa klikkailemalla, eikä ainoastaan koodaamalla.

Ja mikäli se ketään kiinnostaa, käytän IDE:nä Netbeansia. Mutta sepä siitä. Taitaa olla vaihteeksi aika mennä koodaamaan itse peliä.
  • Paikkakunta

    Jyväskylä
  • Henkilötiedot

    Olen Jyvkylnen pelien tuottamisesta kiinnostunut mediatekniikan opiskelija. T blogin tarkoituksena on kertoa pelin tekemisen arjesta, itse koodaamisesta, sekomista oivalluksistani prosessin edetess Toivoakseni saan nllsivuilla kertypaitsi uteliaita katseita, my vinkkejkokeneemmilta koodareilta siit miten asiat tehtsiin paremmin. Ja lopuksi tietenkin itse pelistinnostuneen vijoukon. :)

    Pelin toteutan tlhetkellJava-ohjelmointikielell Valintaa voi kritisoida tsin vapaasti. ;)

    ---------------------

    I'm a student of media engineering from JyvkylUniversity of Applied Sciences in Finland. As you can probably figure out from the blog's heading, I'm interested in game making. The meaning of this blog is to tell about game making, of the coding process, and of my own insights. I hope this blog gathers not only curious bystanders, but also more seasoned, professional coders who could give me some tips how to make things work better. And of course I would like to see some enthusiastic gamers who are willing to play the final product. :)

    I'm currently making the game with Java. Criticize if you must. ;)

  • Tagipilvi