TJI: Jotain ohjelmointihöpinää

Mitäpä sitä muuta ihminen tekisi kuin alkaisi kirjoitella blogikirjoitusta silloin kun ei nukuta ja javascriptin muotoinen kyrpä alkaa sojottaa otsasta…

Tutkailin vaihtoehtoja pelin backendin toteuttamiseen ja totesin, että taitaapa sittenkin toiveet php:n käytöstä jäädä toteutumatta. Node.js vaikuttaisi paljon paremmalta tietojen synkkauksen kannalta kuin php-viritelmät, tietokannan käytöstä puhumattakaan. Täysin reaaliaikainen peli ei toki ole kyseessä, joten ehkä tietokannankin käyttö voisi olla mahdollista, mutta en ala leikkimään tuurini kanssa.

Node.js:sähän sitten on se hauskuus, että se nimensä mukaisesti on javascriptiä ja nyt kun puoli päivää on mennyt js:n parissa, ei kieli oikein maistu. Toivoin pääseväni php:n pariin hetkeksi, mutta ilmeisesti js-harjoitukset jatkuvat pitempäänkin. No, löytyy pelin ohessa olevalta sivustolta sitten php:llekin käyttöä, joten ihan kaikki toivo ei ole menetetty.

Sinänsä todella kiinnostavaa päästä tutkailemaan ihan uusia juttuja, kuten tuota palvelinpuolella käytettävää javascriptiä ja websocketeja joita ilmeisesti pelin toteutuksessa kannattaa käyttää. Törkeät määrät on tuollaisia jättimäisiä aukkoja sivistyksessä, mutta onneksi on tällainen projekti, niin tuleepahan niitä sitten täytettyä!

Ja ei se javascriptikään nyt oikeasti maailman kauhein asia ole, ärsyttää vaan asiat kuten useamman tiedoston käytön vaikeus. Joo, tiedän, että pitäisi käyttää jotain ohjelmaa yhdistämään tiedostot ja minimoimaan koodin, mutta ärsyttää että sellainen ylimääräinen askel pitää ottaa. Tai ehkä joku ohjelma voisi sen tehdä automaattisestikin, mene ja tiedä. Nyt kuitenkin tuo yksi kooditiedosto on kolmannella sadalla koodirivillään, joten jotain tuolle hirvitykselle on tehtävä.

Olen myös ajatellut koodin avoimuutta ja entistä enemmän tuntuu, että se olisi pistettävä esimerkiksi GitHubiin näkyviin. Ajatus on pelottava, mutta jos jotain kautta tulee kehitysehdotuksia, niin sieltä ja tulisipa tuurilla backendikin jonkun silmäilemäksi. Pitäisi vaan opetella sekin systeemi.

Share This:

TJI: Pelin pelaaminen

Okei, näillä näkymin random mudihtava peliprojekti näyttää jo joltain aivan muulta kuin mudilta. Olen koko ajan lämmennyt enemmän ja enemmän ajatukselle heksapohjaisesta pelistä jota pelataan pelkästään hiirellä. Jotain pikanäppäimiä voi tietysti olla ja en ole niin sadisti, etteikö kommunikointikin tapahtuisi näppäimistön välityksellä.

En saanut vielä tehtyä toimivaa prototyyppiä, mutta ihan kauhean kaukana ei olla Civilization V:ssä liikkumisesta. Jokainen heksa on askel ja sen ottamiseen menee tietyn verran aikaa. Käytettävä aikayksikkö on vielä täysin mysteeri ja se todennäköisesti selviää vasta pitkän testauksen jälkeen, onhan kyseessä pelaajat ja pelimaailman tahdistava asia. Veikkaisin, että perusyksikkö on luokkaa sekuntti tai pari ja tie, haastava maasto, loukkaantuminen tai muu vastaava sitten muuttaa sitä johonkin suuntaan.

Pelin synkkaaminen on vielä suuri mysteeri, sillä haluan maailman toimivan periaatteessa reaaliaikaisesti, mutta ilman reaaliaikaisuuden tuomia vaatimuksia nopeista reflekseistä. Sekuntti tai pari jokaisen vuoron välissä tuntuisi sopivalta pelin hidastajalta, mutta onko se riittävän suuri aika ikkuna jotta jossain kuvitteellisessa tilanteessa joku ei saisi epäreilua etua tai haittaa sen vuoksi? Ei ehkä pitäisi murehtia liikaa ongelmia joiden olemassa olemisesta ei ole tietoa, mutta jokin minua varoittaa olemasta liian luottavainen moninpelielementin toteutuksen suhteen…

Loppuun vielä offtopicia: minua mietityttää näiden kirjoitusten otsikointi. Tuntuu, että jos teen pelkästään sisältöä kuvaavan otsikon, on tämä bloginkuvatus kohta täynnä miltei samalla otsikolla koristettuja kirjoituksia. Järjestysnumeroiden käyttö tuntuu vähän kömpelöltä, mutta ehkä se antaisi jotain lisäselvyyttä kirjoitusten keskenäisiin suhteisiin? Tosin on tuolla jo päivämäärä joka periaatteessa ajaa samaa asiaa.

Share This:

Jonkin sortin avautuminen asioiden mielekkyydestä

Tavallaan pakoilen parhaillaan velvollisuuksia ja tavallaan sitten taas lämmittelen niiden pariin siirtymistä varten. Opinnäytetyötä pitäisi edistää ihan hirveästi, erityisesti teoriaosuutta. Aihe on kiinnostava (eli käsittelee pelikehitystä) ja tykkään tekeillä olevista asioista niin paljon, että toivon jonain päivänä kehittäväni prototyypistä ihan oikean pelin. Motivaatiota ei siltikään ole, ei teoriaosuuteen eikä oikeastaan edes käytännön osuuteen.

Tärkein ongelma on oma suhtautuminen kouluun. Se ei ole positiivinen. En olekaan opiskelija. En kadu että tämän havainnon tekemiseen meni näin tolkuttoman kauan, mutta kyllähän sitä välillä pohtii, että mitä jos olisi viimeistään lukiossa hoksannut, että tämä ei ole minun juttu. Aikataulupaineet ja etenkin kotihommat pyyhkivät oppimisesta syntyvällä riemulla pöytiä ja jopa niistä sydäntä lähimpänä olevistakin aiheista tulee vastenmielisiä.

Tietysti kaiken taustalla on henkilökohtaiset ongelmat. Pitäisi vain ottaa opiskelu työnä ja muistuttaa joka välissä itseään, että työn ei tule olla hauskaa. Niinhän monet monet muut tuntuvat tekevän. Minusta vaan erityisesti työn kuuluu olla hauskaa. Tai ei ehkä nyt hauskaa hauskaa, mutta koko ajan palkitsevaa. Monesti palkkio syntyy siitä, että kulloisellakin askareella on todellinen merkitys. Koulun tehtävät ovat aivan liian usein täysin merkityksettömiä, pelkkiä jäänteitä ajalta jolloin koulunkäynti oli valmistautumista aikuisuuden ilottomuuteen.

Noh, nyt kun tämä on päästetty ulos systeemistä, on varmaan sopiva hetki palata kirjoittamaan opinnäytetyön raporttia.

Share This:

TJI: Testailua Javascriptilla

Opinnäytetyötilanteesta johtuen on pitänyt koettaa keskittyä muualle, mutta satunnaista testailua sentään on tapahtunut. Javascript ei tosiaan ole se tutuin juttu minulle ja sen nätisti sanottuna purkkamaiset ratkaisut  tuntuvat välillä hieman oudoilta. Testailusta on kuitenkin ollut paljon hyötyä ja eiköhän tuolla vielä pelin saa tehtyä.

Tämän kertaisessa testailussa oli kyse heksoista. Tein varmaan maailman yksinkertaisemmat viritykset kartan tallentamiseen ja kuvien näyttämiseen, mutta onpahan kuitenkin jotain toimivaa.

hexatestailuaNätit tilet ei tietenkään ole omaa tuotantoa vaan Kenneyn taidonnäyte OpenGameArtista.

Niin tämä ei toki ole vahvistus, että TJI olisi heksapohjainen, tutkin vain sen mahdollisuutta.

Heksoista tulikin mieleeni, että rendasin taannoin opinnäytetyön tekemisen ohessa tällaisen kuvan:

characterTuosta se heksapohjaisuus otti ehkä jopa lopullisesti tuulta alleen, pelkkä ajatus noin hienoista hahmografiikoista on aika houkutteleva. Sääli, että resurssit (= taidot AIKA) ei kuitenkaan riitä tuollaiseen grafiikan tasoon. Jotkut saattavatkin tunnistaa MakeHumanin perusvaatteet, joten kunniaa ei voi tästäkään graafisesta loistosta ottaa…

Offtopic, mutta oma osaamattomuus JavaScriptin ja vähän muunkin kanssa on muuten ollut epävarma aihe blogissa, tavallaan ei haluaisi näyttää kuinka vähän oikeasti osaa ettei vaan sotke työllistymismahdollisuuksia, mutta olen päässyt jonkinlaiseen yksimielisyyteen itseni kanssa. Ensinnäkin teen web-projektia, joten jos ne taidot eivät siinä ohessa kehity, niin jotain on mennyt pahemman kerran pieleen. Niin ja onnistuessani lopputuloksena on arvokas työnäyte. Toisekseen en haluaisi bluffata omalla osaamisella vaikka sitä kai pitäisi työnhakijan tehdä. Eipähän ainakaan pitäisi tulla pettymyksiä tällä tavalla. Kolmantena asiana pitää huomioida ihan potentiaalisen työnantajan kiireisyys: kukaan ei lähde penkomaan joka ikistä blogikirjoitusta mitä hakija on elämänsä aikana rustannut (Hei, tuleva pomo, olet perinpohjaisuudessasi harvinainen ihminen ja haluan tulla teille töihin kehittämään omaa perinpohjaisuuttani!). Eli pyrin jatkossa olemaan avoimempi testailujen sun muun suhteen, onpa sitten edes omat virheet dokumentoituna jos ei muuta!

Share This:

TJI: Kuoleminen

En muista onko pelissä kuolemisesta ollut tarkkaa mainintaa, joten tässäpä sellainen: kuolema on pysyvä. En halua heittäytyä täysin roguelikeksi, mutta uskoisin permadeathin olevan sopiva lisäkannuste hengissä pysymiseksi.

Kuoleman koittaessa pelaaja menettää kaiken ja joutuu tekemään uuden hahmon, mutta samalla ruumis omaisuuksineen jää maailmaan. Tietysti ongelmana pelaajalle on se, että ruumis voi olla niin pahassa paikassa, ettei sinne aivan heppoisin perustein mennäkään, joten tavaroiden noutamiseen saattaa vierähtää tovi.

Koska virheiden hinta on kova, nousee pitkin saarta tehtävien tutkimusretkien suunnittelu ensisijaisen tärkeään asemaan. Pitää miettiä reittiä, mukaan otettavia varusteita, säätilannetta, kommunikaatiota ja niin edelleen. Tietysti takin voi jättää auki suoraviivaisemmissa tehtävissä, ei tässä kuitenkaan aivan masokisteiksi olla heittäytymässä.

Share This:

TJI: Kommunikaatio

Värkkäilin huvin vuoksi aamutuimaan javascriptillä chat-hässäkkää ja siitä sitten päädyin pähkäilemään pelaajien välistä kommunikaatiota pelissä.

Keskustelu tapahtuu radiopuhelimen avulla. Oletuksena kantama kattaa vain osan saaresta, mutta jossain keskeisessä paikassa on toistin, jolla sitten voidaan tavoittaa miltei kaikki radiopuhelimet saarella. Katvealueita tietysti voi olla ja aina on mahdollista, että toistin menee syystä tai toisesta epäkuntoon, joten yleinen keskustelu saattaa silloin tällöin hävitä käytettävistä. Rikkoutumisia ei tietenkään saa tulla liian usein tai muuten epäluotettavuus ajaa pelaajat vaihtoehtoiseen keskustelutapaan.

Radiopuhelinten lisäksi äänellä on kantama. Puhe kuuluu vain n yksikön päähän selvästi ja sen jälkeen tekstiin ilmestyy randomkirjaimia alkuperäisten tilalle ja lopulta ei niitäkään. Ajatuksena on, että myös radio voi rikkoutua tai akut tyhjentyä ja sen jälkeen pelaaja on pelkän äänen varassa. Jos hätä tulee, ei apua voi pyytää muuten kuin toivomalla, että joku toinen hoksaa katoamisen ja tekee siitä ilmoituksen. Ilmoituksen avulla sitten halukkaat voivat lähteä etsimään kadonnutta kollegaa ja näin saada ekstrapisteitä.

Mutulla pelaajan satunnainen, mutta looginen eristäminen voisi auttaa luomaan selviytymistarinoita. Sinä olet joutunut pulaan: ensiksi hyökkäsi velociraptor  ja sitten ilmeni, että vara-akku jäi ottamatta matkaan ja pilvisen sään takia aurinkopaneeli ei ole toimiva ratkaisu. Pimeäkin alkaa tulla, eikä kukaan vastaa huutoihin. Ainoa kylmässä yössä lämmittävä asia on toivo siitä, että joku on huomannut sinun radion vaienneen. Aamuyöllä toivo alkaa jo olla mennyttä, mutta juuri silloin jostain kuuluu huuto. Siitä ei saa selvää, eikä huutajaa voi tunnistaa, mutta alat huutaa takaisin. Hetki hetkeltä äänet lähestyvät ja lopulta kasvuston lomasta ilmestyy huolestunut kollega vara-akun ja ensiapupakkauksen kanssa. Peli ei sittenkään ole menetetty. Tuollaisia selviytymistarinoita.

Share This: