Keskustelut
Suomipelit.comin keskusteluarkisto. Arkistosta on poistettu ylläpitoalueilla käydyt keskustelut.
Päiväkirja: jmpyjmpy on aloittanut keskustelun. Viimeisimmän viestin on kirjoittanut jmpy 25.6.2006 14:52. |
Päiväkirja: jmpy.
Kilpailijan päiväkirjamerkinnät tulevat tähän aiheeseen.
– Ylläpitobotti 9.6.2006 22:00
Jes, elikkäs reilu kaksi tuntia vielä aikaa kisan alkuun. Itse aion vääntää jonkinlaisen pienen pelin Pythonilla ja SDL:llä Pygame-wrapperia käyttäen. Alunperin tarkoitus oli miettiä jotakin C++:lla mutta ajattelin että ehkä Pythonilla saisi nopeammin pelin kahdessa viikossa kasaan ja ehtisi lisätä enemmän ominaisuuksia ja keskittyä myös vähän grafiikkaan.
Muutama peligenre on ollut pyörinyt mielessä mutta en osaa vielä päättää millaisen pelin tekisi ennen kuin tietää tuon aiheen. Todennäköisesti kuitenkin jotakin 2-ulotteista.
Katselin tuota osallistujalistaa ja huomasin mukavan määrän Python-ohjelmoijia. Toivottavasti pojat pistävät myös sorsat jakoon, aina oppii jotakin uutta. ;) Itse laitan ainakin.
Työkaluista ja softista voisi kertoa vähäsen myös...
Kehitysalustana toimii Linux, tosin tietenkin lopullisen tuotoksen muunnan py2exe-ohjelmalla Windowsilla (toivottavasti) ajettavaan muotoon ettei ihmisten tarvitse ruveta tappelemaan Pythonin asennuksen kanssa. Linux-käyttäjillä tuskin tulee olemaan ongelmia.
Grafiikan tuottamiseen käytän varmasti GIMPiä, ehkä myös Inkscapea. Skanneri ja kamera löytyy myös mutta tuskin tulen niitä tarvitsemaan. Editorina toimii Vim tai Gedit, ääniä varten Audacity ja mikrofoni, musiikkia varten Soundtracker. Tosin musiikit saatan pyytää jotakin muuta tekemään tai nappaan jostakin valmiit (tietenkin luvan kanssa).
Kirjoittelenpa lisää sitten kun on teema julkistettu. :)
– jmpy 11.6.2006 21:32
Kilpailun teema on julkistettu ja vaikuttaa ihan hauskalta. Saa melko vapaat kädet ainakin toistaiseksi ja aloitin jo rakentamaan pientä pelimoottoria. Pythonissa on tarkoitus pysytellä ja etuna tässä onkin se että hieman isommatkin muutokset on aika nopea toteuttaa, joten hyvillä mielin jatketaan.
Omasta projektistani en vielä paljasta liikaa. Pelin lajityyppi on jo päätetty mutta pelin tarkoitusta en ole vielä paljoa miettinyt. Sen sanon että peli tulee olemaan 2-ulotteinen ja sisältää useita "huoneita". Mietin jo valmiiksi miten aion sisällyttää ensimmäiset kilpailun vaatimat komponentit. Saa nähdä mitä seuraavat komponentit tulevat olemaan... ehkä ääniefektejä tai musiikkia?
– jmpy 12.6.2006 1:37
Noniin, sammutinpas juuri valot kun aurinko nousee jo sitä vauhtia ettei niitä enää tarvitse... :)
Sitten asiaan. 4 tunnin koodausputken jälkeen kasassa on jo toimiva pelimoottori. Siihen kuuluu kuvanlatausmetodi, nopeasti väsätty huoneenlatausmetodi (lukee erillisestä tiedostosta ASCII-muodossa olevan kartan) joka myös generoi "huoneen" itse peliin mukavasti. Lisäksi on luokka pelaajalle, funktio joka piirtää tiled-taustan ja muutama muu pikku ominaisuus. Huoneiden rakenteista kerron sitten myöhemmin lisää.
Tietysti piti piirrellä myös väliaikaiset grafiikat. Lopulliset grafiikat tulevat todennäköisesti olemaan hieman retrotyylisiä. Seuraavaksi pienennän noita pakollisia komponentteja vähäsen peliin sopivaan kokoon ja sitten pitääkin miettiä miten sisällyttäisin ne tuohon peliin, kun en ole vielä keksinyt... aiemmin miettimäni idea oli nyt tarkemmin ajatellen vähän huono.
En ole vielä varma teenkö pelistä suomen- vai englanninkielisen. Luultavasti suomenkielisen. Mutta onpa tuota vielä aikaa miettiä...
EDIT: Huhhuh, lukaisinpa läpi ja huomasin miljoona typoa.
– jmpy 12.6.2006 4:21
Fonttien testailua... Suunnittelen pientä HUDia johon tulee infoa kerätyistä tavaroista tjsp. GIMPillä väänsin hienomman pelihahmon, ja kun en muuta keksinyt, katselin hieman löytyisikö koodista optimoimisen varaa. Python-koodareita saattaa kiinnostaa:
http://wiki.python.org/moin/PythonSpeed/...
Jonkinlaisia vihulaisia olisi tarkoitus jossain välissä tehdä. Seuraavaksi voisi kirjoittaa ainakin yhden luokan niille ja toisen kerättäville esineille. Jonkinlaista tarinaa pitäisi jossain välissä miettiä myös. Jospa vaikka päiväunen jälkeen keksisi jotakin kun ei tuota yötäkään enää ole jäljellä.
– jmpy 12.6.2006 5:24
Taidan jättää vihulaiset ja kerättävät esineet tuonnemmaksi. Nyt sitten aloitan vääntämään oman luokan pienelle valikkosysteemille. Valikko on siis perinteinen päävalikko jonne tulee "Aloita peli", "Lopeta peli", "Tietoja" ja/tai mahdollisesti muita nappuloita. Sen jälkeen voisi jo aloitella tekemään esineitä ja vihulaisia.
– jmpy 12.6.2006 14:19
Valikot toimivat, seuraavaksi vielä hieman hienosäätöä ja sen jälkeen örkkien suunnitteluun. Koodi on nyt jaettu kolmelle eri tiedostolle ja lisää on tulossa kunhan jaksan organisoida funktiot paremmin. Tärkeimmät asiat kuitenkin ensin, yritän saada pelistä mahdollisimman pelattavan niin pian kuin mahdollista.
Muuta räpellystä...
Kuvia löytyy tällä hetkellä 14 kappaletta joista 12 kuuluu pelaajalle, yksi seinäpalikka ja viimeisenä lattiasprite. Tähän tulee lisää vielä vihulaiset, erinäköiset seinät, ne ensimmäiset (vähintään) kolme komponenttia, kerättävät esineet ja vaikka mitä. Kunhan ehtisi vielä lisätä kaikki. Ai niin, ja lopullisen pelin tulen julkaisemaan GPL-lisenssin alla.
– jmpy 12.6.2006 19:42
Pienillä muutoksilla lisäsin peliin collectables-luokan eli kerättäviä esineitä (joista saa pisteitä tms.), joihin kuuluu toistaiseksi makkara. Viilasin myös hieman valikkoja ja fonttien piirtofunktiota ja nyt tekstit näyttävät hieman paremmilta.
Tässä melko varhaisessa vaiheessa oleva kuva päävalikosta:
http://img418.imageshack.us/img418/6268/...
"Päävalikko"-teksti korvataan pelin nimellä (josta en ole vielä varma) ja taustasta tulee erilainen. Tällä hetkellä ainut nappula joka ei toimi on "Tietoja", joka luultavasti muuttuu ohjeiksi tai joksikin muuksi. Itse pelistä voisin laittaa kuvia myöhemmin kunhan saan hiukkasen enemmän sisältöä kehiin.
– jmpy 12.6.2006 23:50
Kerättävät esineet toimivat nyt paljon paremmin. Nyt kun huoneesta kerää esineet, menee toiseen huoneeseen ja tulee takaisin, esineitä ei tarvitse kerätä uudestaan. Tämän toteutin yksinkertaisella listalla johon lisätään esinettä kerätessä huoneen nimi (numero) ja koordinaatit tuplena.
– jmpy 13.6.2006 1:01
Tein kaksi uutta valikkoruutua: tarinaruudun (vierivä teksti) joka näkyy ennen pelin alkamista, ja "Tietoja"/"Tekijät"-ruutu johon tulee jotakin infoa pelistä tms.
– jmpy 13.6.2006 1:43
Vähän enemmän tietoa pelistä.
Peli on pieni 2-ulotteinen ylhäältä kuvattu (tosin niin ei pelihahmon ulkonäöstä voisi päätellä ;-) seikkailu. Pelissä on huoneita joissa pelihahmo liikkuu. Pelimaailma perustuu kokonaan tällaisiin "huoneisiin". Kun pelihahmo esim. poistuu ruudulta pohjoisesta (ruudun yläreunasta), pelaaja siirtyy uuteen huoneeseen. Jokaisesta huoneesta pääsee siis teoriassa neljään eri huoneeseen.
Huoneet (tai kartat) ladataan erillisestä "world"-tiedostosta. Tämä tiedosto sisältää siis koko pelimaailman. Yhden kartan formaatti on jotakuinkin seuraava (ei lopullinen):
R=0;N=1;E=1;S=2;W=3 @@@@@@ @@@@@@ @ * @ @ x @ @ @ @@@@@ @ @ @ @ @ @ @@@@@@@@@ @ @ @ @@@@@@@@@@ @ x @ @ @ @ @ * @ * @ @ @ @ @@@@@@@@ @@@@@@@@@@
EDIT: Piti korvata risuaidat @-merkillä kun syntaksiväritys bugitti rivinvaihtoja väliin :/
Ensimmäistä riviä kutsun "headeriksi" ja sillä on tietoa huoneista:
R = Tämä huone (numero)
N = Pohjoisessa sijaitseva huone
E = Idässä sijaitseva huone
S = Etelässä sijaitseva huone
W = Lännessä sijaitseva huone
Risuaidat # ovat seiniä, tähdet * ovat kerättäviä makkaroita ja x:t ilkeitä vihulaisia (ei vielä valmiita).
Peli siis alkaa huoneesta 0. Jos pelaaja nyt poistuisi huoneesta ruudun yläreunasta, joutuisi hän huoneeseen 1, alhaalta huoneeseen 2, jne.. Näitä huoneita voi sijoitella world-tiedostoon allekkain niin monta kuin huvittaa. Huoneita voi myös linkittää toisiinsa niin kuin huvittaa, joten on mahdollista tehdä ikuisia sokkeloita ja vaikka minkälaisia salahuoneita. Tässä pieni esimerkki:
+------------+
+---+ +---------|------+ |
| | | +----|-+ | |
| v v | v | | |
| +-----+ | +-----+ | |
+-+-| |<-+->| |<-+-+ |
+-+-+>| | | | |--+-+-+ |
| | | +-----+ | +-----+ | | | |
| | | | ^ | ^ | | | | |
| | | | | | | | | | | |
| | +---+ +----+ | +----+ | | |
| +-----------------+--------+ | |
+-------------------+----------+ |
+------------+Lisäksi hyvä puoli on se että kentät voi suunnitella millä tahansa tekstieditorilla. Lisää myöhemmin...
– jmpy 13.6.2006 2:33
Tänään en ole ollut koneella paljoa joten on tullut mietittyä pelin tarinaa. Viilailin vähän vielä fontteja ja laitoin hudin näyttämään montako makkaraa pelaaja on kerännyt. :)
Aamulla tuli piirrettyä kiireessä tilesettiä seinille, tällä hetkellä kun jokainen seinä näyttää samalta: (tässä siis vanhat grafiikat, uusi tilesetti kun ei ole vielä valmis):
http://img152.imageshack.us/img152/472/s...
Pitäisi miettiä minkälaisia vihulaisia tekisi niin voisi koodata niille oman luokan. Eniten aikaa siinäkin menee todennäköisesti grafiikan tuottamiseen.
– jmpy 13.6.2006 17:12
Rotta:
http://img161.imageshack.us/img161/5743/...
Kirjoitin viimein luokan ilkeille jättiläismutanttirotille, tosin toistaiseksi ne eivät osaa muuta kuin pysyä paikallaan. Liikkuminen ei ole vaikea toteuttaa, täytyy vain laittaa rotta tunnistamaan missä on seinä ja vaihtaa suuntaa jos osuu sellaiseen. Ehkä kiihdyttää nopeutta jos pelaaja osuu sen kulkureitille. Kovin monimutkaista tekoälyä en ala koodaamaan, ainakaan vielä.
Pelin grafiikka tulee olemaan yksinkertaista ja hieman retrotyylistä. Aion käyttää kaikkien pelihahmojen piirtämiseen palettia joka muistuttaa hieman 8-bittisen aikakauden paletteja:
http://img158.imageshack.us/img158/1235/...
Ehkä pienillä muutoksilla spritekohtaisesti.
Jossain vaiheessa laitan kunnon screenshotteja, toistaiseksi kun en ole näyttänyt kuin pikku palasia sieltä täältä. Huomenna pitäisi ilmestyä uusi komponenttipaketti, luultavasti sitten saan taas uusia ideoita. Sain myös tuossa päivällä (omasta mielestäni) ihan hyvän idean miten lisään ensimmäiset komponentit peliin, ja miksi pelissä kerätään makkaroita. Sitä en kuitenkaan paljasta vielä, mutta aion näillä näkymin käyttää taikasauvaa, makkaraa ja plutoniumtikkua (vai mikä lie).
– jmpy 13.6.2006 21:33
Voih... vanha rutiseva kiintolevy poksahti juuri sopivasti, joten en ole pystynyt moneen päivään jatkamaan projektiani. Backupit oli onneksi toisella palvelimella joten ei työt ihan hukkaan kuitenkaan mennyt. Nyt on kuitenkin enää reilut pari päivää aikaa enkä ole ehtinyt sisällyttää vaadittavista komponenteista kuin kolme, joten pahalta näyttää. :(
Täytyy katsoa miten jos saisi nuo loput tungettua jotenkin tuohon peliin, mutta jos en ehdi määräaikaan mennessä, niin laitan vaan pelin sorsat pakettiin ja omalle nettisivulle jakoon ja linkkiä tähän päiväkirjaan, jos niistä vaikka olisi jollekin edes vähän iloa.
– jmpy 23.6.2006 20:21
Noniin, en saa millään peliä ajoissa valmiiksi, joten tässä lähdekoodit:
http://jmpy.org/files/sumbotti.tar.bz2
Pelin koodi GPLv2-lisenssin alainen (ks. COPYING), joten voit käyttää koodia omissa projekteissasi vapaasti, kunhan muistat laittaa lähdekoodin jakoon jos levität koodia eteenpäin. Kirjoittelin README-tiedostoon vähän enemmän.
– jmpy 25.6.2006 14:52
